E
Hallo, hier bin ich mal wieder, so kurz vor Weihnachten :xmas1:
In meinem Programm habe ich ein TPageControl eingebaut damit man Tabs für mehrere Dateien erstellen kann. Wenn nun ein neuer Tab erstellt wird, werden auch die Objekte dafür erstellt - damit dieser Tab auch ein paar Objekte hat bzw. man die Datei ja auch bearbeiten kann...
Ich kann ja selber Funktionen erstellen, die ein Ereignis ausführt.
TEdit->OnClick = OnTEditClick;
void __fastcall OnSynEditClick(TObject *Sender);
void __fastcall Tpcleditmain::OnSynEditClick(TObject *Sender)
{
//Aktionen
}
Ich hatte vor, auf diese Objekte mit einem Zeiger zu zeigen.
Am besten wäre für das Schreiben das Ereignis OnChange (Tabwechsel) des PageControls geeignet. Alternativ auch das OnEnter oder OnShow des TabSheets, dann muss aber immer ein Ereignis für jedes TabSheet erstellt werden, mit dynamischen Inhalt.
Die Objekte werden erst zur Laufzeit erstellt und deshalb kann ich den Zeiger auch erst zur Laufzeit (über)schreiben lassen
Ich hatte mir folgendes überlegt:
Ich weiß ja wie ich die erstellen Objekte benenne, also kenne ich auch den Namen, also könnte ich theoretisch mit FindComponent(AnsiString) das Objekt finden, doch ich weiß nicht, wie ich das erhaltene TComponent in einem TObject "konvertieren" kann, falls es überhaupt geht...
Eine weitere Möglichkeit wäre auch noch, mit dem Komponenteninhalts-Index des Tabs zu arbeiten (jede Komponente hat ja eine Nummer...), die Objekte werden ja immer in der selben Reihenfolge erstellt, also haben die Objekte der gleichen Klasse wahrscheinlich immer die selbe Nummer, womit ich dann auch arbeiten könnte. Doch ich schaffe es nicht, mit der Nummer bzw. mit dem Index zu arbeiten. Falls, wie ich eben schon gesagt hatte, es überhaupt geht :D.
Ein OnClick bei den Objekten mit Hilfe von dynamic_cast bringt in diesr Hinsicht auch nichts, da man Aktionen ausführen kann, ohne so ein Objekt anzuklicken.
Hat da jemand eine Lösung für oder eine andere Idee?