Neu für mich war auch: Switch : TSwitch absolute Sender;
Lese ich das richtig, dass bei der Definition immer davon ausgegangen werden kann, dass es sich um TSwitch handelt? Bisher habe ich TSwitch(Sender) verwendet...
Nein, kann man nicht, genausowenig, wie du bei
TSwitch(Sender)
davon ausgehen kannst, denn hier handelt es sich um einem
harten Cast.
Wenn man aber eh einen harten Cast vornimmt, dann kann man das auch gleich so deklarieren und spart sich das ständige casten ... was einfach nur viel Schreibarbeit ist.
Wenn du es sicher haben möchtest, dann so
Delphi-Quellcode:
procedure TForm1.Switch1Switch(Sender: TObject);
var
Dlg: TForm2;
Switch : TSwitch absolute Sender;
begin
// Wir prüfen, ob der Sender auch wirklich vom Typ TSwitch ist
if not ( Sender is TSwitch ) then
Exit; // ist nicht, dann z.B. raus hier
showmessage(Switch.Name); // kann dann irgendwann raus ;o)
if Switch.isChecked then
begin
Dlg := TForm2.Create(Self);
Dlg.ShowModal(
procedure ( ModalResult : TModalResult )
begin
Switch.IsChecked := False;
end );
end
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)