Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Frage zu FindComponent
sebwa2k - So 02.05.04 14:19
Titel: Frage zu FindComponent
hallo
ich hab da eine Frage zu Findcomponent.
in meinem Programm, wird derden zur laufzeit auf einem Pagecontrol tabsheets mit einem Memo erzeugt, soweit kein Problem.
die memos wollte ich mit
Quelltext
1:
| TMemo(FindComponent('Testmemo')).Lines.Add('test'); |
ansprechen, allerdings erhalte ich dabei eine Zugriffsverletzung.#
das Problem ist glaube ich das
der Parent der memos das Tabsheet ist.
auf das memo1, auf form1 kann ich so
Quelltext
1:
| TMemo(FindComponent('memo1')).Lines.Add('test'); |
ohne Probleme zugreifen.
Aber wie klappt das, wenn ein Tabsheet der Parent ist???
Mit freundlichen Grüßen
Sebastian
toms - So 02.05.04 14:26
| Zitat: |
| Aber wie klappt das, wenn ein Tabsheet der Parent ist??? |
Hi,
Spielt keine Rolle, ob die Form oder das TabSheet das Parent ist.
Hab's kurz ausprobiert und funzt wunderbar:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); var Memo: TMemo; begin Memo := TMemo.Create(Self); Memo.Parent := TabSheet1; Memo.Name := 'Testmemo'; end;
procedure TForm1.Button2Click(Sender: TObject); begin TMemo(FindComponent('Testmemo')).Lines.Add('test'); end; |
sebwa2k - So 02.05.04 14:53
Ok danke,
der entscheidende Fehler bei mir war
memo := Tmemo.create(pagecontrol1); habs nun gegen self ersetzt und es klappt.
besten dank.
schönen tag noch
Sebastian
Motzi - So 02.05.04 15:44
| Delphi Hilfe hat folgendes geschrieben: |
Indicates whether a given component is owned by the component.
function FindComponent(const AName: string): TComponent;
Description
FindComponent returns the component in the Components property array with the name that matches the string in the AName parameter. Use FindComponent to determine whether a given component is owned by another. |
FindComponent ist eine Methode von TComponent und durchsucht das Array mit allen Komponenten die die aufrufende Instanz als Owner haben. Wenn du beim Aufruf von Create also PageControl1 angibst, dann musst du auch die FindComponent-Methode von PageControl1 aufrufen um das Memo zu finden:
Delphi-Quelltext
1:
| TMemo(PageControl1.FindComponent('Testmemo')).Lines.Add('test'); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!