Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
4. Feb 2010
Darum meinte ich ja, daß dieses nicht unbedingt ein optimaler Weg ist, um eventuelle Fehler abzuprüfen.
hmmmm, sowas geht leider nicht, da man hierfür ja den Typ vom Check-Parameter als Result bräuchte.
Function OCheck(O: TObject; Check: TClass): {TObject}; Inline;
Begin
Assert(O is Check);
Result := O;
End;
Function OCheck(O: TObject; Check: TClass): {TObject}; Inline;
...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
4. Feb 2010
if (Sender is TButton) then
showmessage((Sender as TButton).Name);
ist vollkommen unnötig, denn wenn IS meinte es wäre OK, dann ist AS an dieser Stelle unnüzt, da es eh nie anschlagen kann.
if (Sender is TButton) then
showmessage(TButton(Sender).Name);
Dieses reicht also aus und ist sogar kürzer und, für mich zumindestens, "übersichtlicher".
PS: statt des Castes vor Ort nutze...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
4. Feb 2010
Toll, schalltet man die Assertions ab, gibt es keine Prüfung mehr und es kommt womöglich zu undurchsichtigen Folgefehlern.
Fazit:
- wenn du nicht sicherstellen kannst, daß dort ein passendes Objekt vorliegt,
dann nutze (Sender as TButton).Caption
- wenn du die Prüfung nur wärend der Programmierphase möchtest, dann stell halt dein Assert(Sender is TButton) davor