Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Groupbox.Caption Problem (https://www.delphipraxis.net/118853-groupbox-caption-problem.html)

fl63 16. Aug 2008 12:26


Groupbox.Caption Problem
 
Hallo DPler!

Ich habe ein Problem.

Delphi-Quellcode:
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 editboxen 1+2 sowie 3+4 befinden sich in Groupboxen 1 bzw. 2.
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 16. Aug 2008 12:28

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 ;-)

DGL-luke 16. Aug 2008 13:49

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;

fl63 17. Aug 2008 11:32

Re: Groupbox.Caption Problem
 
Danke! Werd ich gleich mal ausprobieren.

rollstuhlfahrer 17. Aug 2008 12:36

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:
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;
Bernhard

EDIT: Clear vergessen, sonst gehts net

DGL-luke 17. Aug 2008 13:34

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 00:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz