Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Android: Switch vom vorherigen Formular zurücksetzen

  Alt 19. Aug 2015, 17:15
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)
  Mit Zitat antworten Zitat