Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FindComponent (https://www.delphipraxis.net/4012-findcomponent.html)

aaron 11. Apr 2003 08:07


FindComponent
 
Hallo,

ich habe eine Form auf der ist ein Pagecontrol mit drei TabSheets,
auf jeden TabSheet sind 3 Memos und 2 Listboxen.
Mein Problem ist, dass mit dem Code unten beim klick auf Listbox1,
die ersten 3 Memos auf Tabsheet1 gefüllt werden...
soweit ja noch in Ordnung,
nur wenn ich z.b. dann beim Tabsheet2 auf Listbox2 klicke, füllen sich nicht die Memos auf Tabsheet 2 sondern die Memos auf Tabsheet 1. Wie kann ich das lösen?

Delphi-Quellcode:
var
  s: string;
  i, j: Integer;
begin
  ListBox2.Items.Clear;
  for i := 0 to listbox1.items.count - 1 do
  begin
    s := listbox1.items[i];
    while pos('|', s) > 0 do
    begin
      if ListBox1.Selected[i] then
      begin
        if pos('|', s) = 1 then
        begin
          listbox2.items.add('');
        end else begin
          listbox2.items.add(copy(s, 1, pos('|', s) - 1));
        end;
      end;
      delete(s, 1, pos('|', s));
      for j := 0 to listbox2.items.count - 1 do
      begin
        TMemo(FindComponent('Memo' + inttostr(j))).text := listbox2.items[j]:
Gibt es sowas ähnliches wie
Delphi-Quellcode:
TMemo(FindComponent.Tabsheet2.Memo
?

roderich 11. Apr 2003 11:14

mit ListBox2.Parent bekommst Du das 2. TabSheet, auf dem ListBox2 draufsitzt.
Gehe in einer Schleife durch dessen Controls, wenn das Control ein TMemo ist, dann fülle es.

Als Code:
Delphi-Quellcode:
var
  aParent: TControl;
  i: integer;
begin
  aParent := ListBox2.Parent;
  for i := 0 to aParent.ControlCount-1 do
    if (aParent.Controls[i] is TMemo) then
      FillWithYourData(ListBox2, aParent.Controls[i] as TMemo);
end;
Methode FillWithYourData muß natürlich deklariert sein.

Gruß
Roderich
[EDIT = Luckie]Delphi-Tags hinzugefügt. Beim nächsten mal bitte selber machen. Die Firma dankt. :wink:[/EDIT]

aaron 11. Apr 2003 11:18

vielen dank, habs nun so gelöst...
Delphi-Quellcode:
TMemo(FindComponent('Memo' + inttostr(j +3 ))).text := listbox2.items[j];
usw...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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