![]() |
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:
Gibt es sowas ähnliches wie
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]:
Delphi-Quellcode:
?
TMemo(FindComponent.Tabsheet2.Memo
|
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:
Methode FillWithYourData muß natürlich deklariert sein.
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; Gruß Roderich [EDIT = Luckie]Delphi-Tags hinzugefügt. Beim nächsten mal bitte selber machen. Die Firma dankt. :wink:[/EDIT] |
vielen dank, habs nun so gelöst...
Delphi-Quellcode:
usw...
TMemo(FindComponent('Memo' + inttostr(j +3 ))).text := listbox2.items[j];
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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