Zitat von
webcss:
Zitat von
mkinzler:
Oder besser einen Softcast:
(fr[0].FindComponent('Label1') as TLabel).Caption := 'hi';
Wo ist da eigentlich der Unterschied?
Der direkte Cast schlägt niemals fehl, auch dann nicht, wenn die Typen eigentlich nicht kompatibel sind. Mit dem Softcast bekommt man dagegen im schlechtesten Fall einen Laufzeitfehler.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := IntToStr(TStrings(Button1).IndexOf('Not a Stringlist'));
end;
-> Compiler beschwert sich nicht, Caption wird (zufällig!) auf "0" gesetzt. Da kommt nicht mal eine
Exception
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := IntToStr((Button1 as TStrings).IndexOf('Not a Stringlist'));
end;
-> Compiler bemerkt den Fehler und bricht mit der Meldung "Inkompatible Typen" ab.
Dani H.
At Least I Can Say I Tried