Hallo,
Hab nochmal eine Verständnisfrage zu Events. Lustiger Weise funktionieren sie irgendwann genau immer so, wie ich das will aber hab hier zum x.ten mal Anfangschwierigkeiten bei dem Einfügen eines neuen Events. Folgender Maßen führe ich in eine meiner Komponenten die Events ein:
Delphi-Quellcode:
Type TOnTischChange = procedure of Object;
Type TTischsteuerung = class(TWinControl)
private
...
// Variablen für Events
FOnTischChange: TOnTischChange;
published
// OnTischChange soll dem Programm die Möglichkeit geben alle Eigenschaften auf den
// ausgewählten Tisch auszurichten.
property OnTischChange: TOnTischChange read FOnTischChange write FOnTischChange;
...
end;
...
// irgendwo in der createwnd-Procedure
FCombBoxTischauswahl := CreateComboBox(17,35, 200);
FCombBoxTischauswahl.Items.Add('Test1');
FCombBoxTischauswahl.Items.Add('Test2');
FCombBoxTischauswahl.Items.Add('Test3');
FCombBoxTischauswahl.ItemIndex := 0;
FCombBoxTischauswahl.OnChange := Tischaenderung;
// Die Procedure Tischaenderung
procedure TTischsteuerung.Tischaenderung(Sender: TObject);
begin
case FCombBoxTischauswahl.ItemIndex of
0: Komponentenanpassung(1);
1: Komponentenanpassung(2);
2: Komponentenanpassung(3);
end;
if assigned(OnTischChange) then OnTischChange;
end;
Also ich habe sicherlich in der Art und Weise schon mehrfach Events eingeführt und irgendwie funktioniert das am Anfang immer überhaupt nicht (so wie jetzt) und irgendwann ohne für mich ersichtlichen Grund (derzeit) funktioniert es. Ich habe schon das OnTischChange := nil gesetzt und trotzdem bleibt assigned(OnTischChange) = false.
Der Sinn hinter dem Event ist eigentlich, dass ich in meinem Composite Control das onChange-Event der Combonox weitergeben will.
Dafür habe ich auch schon die Komponente deinstalliert und neu installiert (verwende hier auf Arbeit Rad2007, nicht wie in Profil TD2006).
Kann mir jemand vieleicht sagen, warum das anscheinend derart flüchtig ist, was aus assigned(On...) herauskommt?
Vielen Dank BAMatze
2. Account Sero