FMX 記憶體管理的疑問 |
答題得分者是:P.D.
|
stacker_liew
中階會員 ![]() ![]() ![]() 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
請問一下,我用FMX的TTreeView做了一個遞迴顯示階層的Form,但有個問題是第一次顯示時,結果是正確的,但退出Form後,再進入該Form,程式就當掉,懷疑是記憶體管理的問題。
環境:XE8 Update 1 [code cpp] procedure TAMZAgentShowHierachyForm.FormShow(Sender: TObject); begin AMZAgentShowHierachyUserName := AMZAgentLoginForm.AMZAgentLoginUserName; AMZAgentShowHierachyTreeView.Clear; with AMZAgentShowHierachyRootTreeViewItem do begin Text := AMZAgentShowHierachyUserName; Parent := AMZAgentShowHierachyTreeView; end; AMZAgentShowHierachyDoAddTreeViewItem(AMZAgentShowHierachyRootTreeViewItem, AMZAgentShowHierachyUserName); end; procedure TAMZAgentShowHierachyForm.AMZAgentShowHierachyDoAddTreeViewItem(ParentTreeViewItem: TTreeViewItem; aRefUsername: string); var AddTreeViewItemTreeViewItem: TTreeViewItem; AddTreeViewItemUniQuery: TUniQuery; aUsername, aName: string; begin AddTreeViewItemUniQuery := TUniQuery.Create(Self); try with AddTreeViewItemUniQuery do begin Connection := AMZAgentLoginDataModule.AMZAgentLoginUniConnection; Close; SQL.Clear; SQL.Add('SELECT Username, Name FROM jk_members WHERE RefUsername = :RefUsername'); ParamByName('RefUsername').AsString := aRefUsername; Open; if RecordCount > 0 then begin with AMZAgentShowHierachyProgressBar do begin Min := 0; Max := RecordCount; end; First; while not Eof do begin aUsername := FieldByName('Username').AsString; aName := FieldByName('Name').AsString; AddTreeViewItemTreeViewItem := TTreeViewItem.Create(Self); with AddTreeViewItemTreeViewItem do begin Text := aUsername '(' aName ')'; Parent := ParentTreeViewItem; end; AMZAgentShowHierachyDoAddTreeViewItem(AddTreeViewItemTreeViewItem, aUsername); AMZAgentShowHierachyProgressBar.Value := RecNo 1; AddTreeViewItemTreeViewItem.Free; Next; Application.ProcessMessages; end; end; end; finally AddTreeViewItemUniQuery.DisposeOf; end; end; [/code] |
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
stacker_liew
中階會員 ![]() ![]() ![]() 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
|
pcplayer99
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |