Thema: TabControl

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 25. Jun 2003, 18:38
Moin Lillebrohr,

dann will ich's mal versuchen näher zu erklären:

Mit FindComponent kannst Du, wie der Name schon vermuten lässt Komponenten finden, die einer anderen Komponente untergeordnet sind.

Wenn Du z.b. ein Formular Form1 hast, und darauf zwei Button (Button1 und Button2), kannst Du diese auch finden, indem Du
Form1.FindComponent('Button1'); verwendest.

Da FindComponent, für den Fall, dass die gesuchte Komponente gefunden wurde einen Zeiger auf die Kompo zurückliefert, kannst Du sie auch zwischenspeichern

Delphi-Quellcode:
var
  btnDyn : TButton;

begin
  btnDyn := Form1.FindComponent('Button1') as TButton;
  if Assigned(btnDyn) then begin
  // nur falls der Button auch gefunden wurde kann damit weitergearbeitet werden
  end;
end;
und anschliessend mit btnDyn alles verwenden, was Du auch direkt mit Button1 hättest machen können.

In der Regel sucht man natürlich nach dynamisch erzeugten Komponenten, deshalb ist es wichtig, diesen beim Erzeugen auch (eindeutige!) Namen zu geben, damit man sie wiederfinden kann. (Es gäbe zwar auch einen Weg dies mit unbenannten Controls zu machen, aber das würde hier jetzt wohl zu weit führen).

Würde der Button jetzt aber z.B. auf einem Panel (Panel1) liegen, welches wiederum auf dem Formular liegt, könnte es auf diesem Wege nicht gefunden werden, da es diesem nicht untergeordnet ist.
Um den Button nun auf dem Panel zu suchen müsste man

  btnDyn := Panel1.FindComponent('Button1') as TButton; schreiben.

Welcher Komponente als übergeordnete gilt, wird durch die Eigenschaft Parent festgelegt.
Wird Parent geändert, ändert sich auch die Position.
Liegt der Button z.B. links oben auf dem Panel, und die Eigenschaft Parent wird auf Form1 geändert, findet man den Button anschliessend links oben auf dem Formular wieder.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat