![]() |
Groupbox.Caption Problem
Hallo DPler!
Ich habe ein Problem.
Delphi-Quellcode:
Die editboxen 1+2 sowie 3+4 befinden sich in Groupboxen 1 bzw. 2.
procedure TForm1.speichernClick(Sender: TObject);
begin RichEdit1.Lines.LoadFromFile('WareA.txt'); RichEdit1.Lines.Append(DateToStr(DateTimePicker1.Date)+#9+Edit1.Text+#9+Edit2.Text); RichEdit1.Lines.SaveToFile('WareA.txt'); RichEdit1.Clear; RichEdit1.Lines.LoadFromFile('WareB.txt'); RichEdit1.Lines.Append(DateToStr(DateTimePicker1.Date)+#9+Edit3.Text+#9+Edit4.Text); RichEdit1.Lines.SaveToFile('WareB.txt'); RichEdit1.Clear; end; Die Caption Eigenschaft der jeweiligen Groupbox heißt WareA.txt bzw.WareB.txt. Mein Ziel ist: RichEdit1.Lines.LoadfromFile(Groupbox1.Caption) RichEdit1.Lines.Append..... RichEdit1.Lines.SaveToFile(Groupbox1.Caption) auf diese Weise erhoffe ich mir eine Vereinfachung(for i=1 to Groupbox(i).Caption). Bitte helft einem blutigen Anfänger!! |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Windows 9x / ME / 2000 / XP / 2003 / Vista" nach "VCL / WinForms / Controls" verschoben.
Auch einem blutigen Anfänger müsste klar sein das dies keine Frage zu Window ist ;-) |
Re: Groupbox.Caption Problem
Wenn du VCL-Komponenten indiziert ansprechen willst, bleibt dir meistens nix übrig als sie per Hand in ein Array zu packen. Man kann sie auch über Form.Components zusammensuchen, das ist aber weniger performant und meistens komplizierter.
So in der Art kann man es machen:
Delphi-Quellcode:
procedure UpdateRTF;
var GoupBoxes: array of TGroupBox; var i: Integer; begin Setlength(GroupBoxes, n); //n durch Anzahl deiner Groupboxen ersetzen GroupBoxes[0] = Groupbox1; GroupBoxes[1] = Groupbox2; ... GroupBoxes[n] = Groupbox/n+1/; for i := 0 to high(GroupBoxes) do begin RichEdit1.Lines.LoadFromFile(GroupBoxes[i].Caption); RichEdit1.Lines.Append(DateToStr(DateTimePicker1.Date)+#9+Edit3.Text+#9+Edit4.Text); RichEdit1.Lines.SaveToFile(GroupBoxes[i].Caption); end; end; |
Re: Groupbox.Caption Problem
Danke! Werd ich gleich mal ausprobieren.
|
Re: Groupbox.Caption Problem
HI,
warum so kompliziert?? Da du die Groupboxen höchstwarscheinlich mit dem Designer erzeugt hast, reicht ein einfacher Aufruf von FindComponent. Das ganze sieht dann etwa so aus:
Delphi-Quellcode:
Bernhard
procedure TForm1.Speichern;
var Text: String; i: Integer; begin for i := 1 to 2 do begin RichEdit.Lines.LoadFromFile((FindComponent('Groupbox' + IntToStr(i)) AS TGroupbox).Caption); //... RichEdit.Lines.SaveToFile((FindComponent('Groupbox' + IntToStr(i)) AS TGroupbox).Caption); RichEdit.Clear; end; end; EDIT: Clear vergessen, sonst gehts net |
Re: Groupbox.Caption Problem
o.O
In jedem Schleifenaufruf FindComponent... sowas sollte man sich garnicht angewöhnen. Das tötet die Performance. Wenn dann gleich Form.Components[] durchiterieren und alle gefundenen GroupBoxen in eine Liste schmeißen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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