Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: TImage Objekt als Sender nutzen

  Alt 1. Aug 2011, 22:07
Und wo ist Zeile 371?

Zitat:
Delphi-Quellcode:
procedure TLeitern.LeiterauswahlChange(Sender: TObject);
var ShowImageHideOther:timage;
begin
  if Sender is TImage(Controls[i]).Visible := Controls[i] = Image; then
BEGIN
ShowImageHideOther:= TImage(Controls[i]).Visible := Controls[i] = Image;(Sender);
END;
leiterauswahl.OnChange := ShowImageHideOther;
Ich weiß ja nicht in wie weit du mit der Delphi-Syntax zurecht kommst, aber hier sollte doch nahezu jeder sehn, daß es so nicht gehn kann?
Schon alleine der Zuweisungsoperator := ist in Booleanischen Abfragestatements (ala IF) nicht erlaubt.

Aber eigentlich was es so gemeint
TImage(Controls[i]).Visible := Controls[i] = Image; (Controls[i] ist sichtbar, wenn es ein der Image-Instanz entspricht)
oder eventuell
(Sender as TImage).Visible := Sender is TImage; (Sender ist sichtbar, wenn es ein TImage ist)
oder?
(Sender as TImage).Visible := False; (Sender sollte ein TImage sein und wird nun unsichtbar.


Für dich würde ich aber empfehlen, besser aus weiche Casts ala (Sender as TImage) zu setzen,
anstatt auf harte Casts ala TImage(Sender) , denn ersterer prüft den Typ und meldet sich, wenn etwas nicht stimmt.
> siehe IS und AS in der OH
$2B or not $2B
  Mit Zitat antworten Zitat