![]() |
Dynamisches erstellen von Tabsheets und Memos
Hallo zusammen,
Ich habe eine Anwendung, die ihre Logdateien über mehrere Verzeichnisse verteilt. Also schnell ein Form mit einem Pagecontrol erstellt. Für jede gefundene Logdatei soll jetzt auf dem Pagecontrol ein Tabsheet erstellt werden und auf jedem Tabsheet ein Memo. Ich hab mir aus mehreren Beispielen meinen Source zusammengeklöppelt, aber ich werde das Gefühl nicht los, das er etwas suboptimal ist, vor allem was Parent und Owner angeht. Könntet Ihr bitte einmal darüber schauen und mich korrigieren:
Delphi-Quellcode:
Das "Aufräumen" fehlt noch, da hab ich mir etwas in dieser Art vorgestellt:
var
marr : array of tmemo; ll : tstringlist; ..... { ll enthält Dateinamen } if ll.count>0 then setlength(marr,ll.count-1); for i:=0 to ll.count-1 do begin with TTabSheet.Create(pagecontrol1) do begin PageControl := PageControl1; Caption := ll[i]; end; marr[i]:=tMemo.Create(self); marr[i].parent:=pagecontrol1.pages[i]; marr[i].Align:=alClient; marr[i].ScrollBars:=ssBoth; try marr[i].Lines.loadfromfile(ll[i]); except marr[i].text:='**** '+#13#10+ ll[i]+#13#10+ ' konnte nicht geöffnet werden'+#13#10+ ' **** ' ; end; end;
Delphi-Quellcode:
Vielen Dank
for i:=0 to Pagecontrol1.pages.count-1 do
Pagekontrol1.Pages[i].free; {mit automatischer Freigabe der Memos !? } K-H |
AW: Dynamisches erstellen von Tabsheets und Memos
Kann es sein, dass marr um 1 Element zu klein ist? Ansonsten ist mir nichts weiter aufgefallen.
|
AW: Dynamisches erstellen von Tabsheets und Memos
Jupp, marr ist zu klein.
Und beim Löschen die Forschleife rückwärts laufen lassen oder
Delphi-Quellcode:
verwenden.
Pages[0].Free;
Das Memo wird freigegeben, wenn dessen Owner freigegeben wird. Also für das Memo das TabSheet als Owner angeben.
Delphi-Quellcode:
tMemo.Create(pagecontrol1.pages[i]);
|
AW: Dynamisches erstellen von Tabsheets und Memos
Vielen Dank!
Fluppt wie gewünscht! dieses ..count-1 hab ich glatt übersehen und in die Downtofalle wär ich wohl auch getappt K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz