Newsgroups : Borland : borland.public.delphi.rtl.win32 : 2006 Aug : TQueue problem
| Subject: | TQueue problem |
| Posted by: | "Johan Anderlund" (joh..@anderlund.net) |
| Date: | Fri, 1 Sep 2006 00:46:31 |
I'm pushing items into a TQueue like this:
type
PRefreshItem = ^TRefreshItem;
TRefreshItem = record
refr_table: String[35];
refr_type: Integer; // 1-insert, 2-update, 3-delete
refr_record: Integer;
end;
procedure TfrmMain.tmrRefreshTimer(Sender: TObject);
var
refreshItem: PRefreshItem;
begin
...
while not DM.qryRefresh.EOF do
begin
New(refreshItem);
refreshItem^.refr_table :=
DM.qryRefresh.FieldByName('TABLE_NAME').AsString;
refreshItem^.refr_type :=
DM.qryRefresh.FieldByName('REFR_TYPE').AsInteger;
refreshItem^.refr_record :=
DM.qryRefresh.FieldByName('ID_RECORD').AsInteger;
qRefresh.Push(refreshItem);
DM.qryRefresh.Next;
end;
...
end;
When I close the program, I must dispose my items pushed and I do it
like below. The problem is that Count returns nothing and no items will
be disposed. What am I doing wrong?
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
i: Integer;
refreshItem: PRefreshItem;
begin
...
while not qRefresh.Count = 0 do
begin
refreshItem := qRefresh.Pop;
Dispose(refreshItem);
end;
qRefresh.Free;
...
end;
// Johan