Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Sender in der prozedur ansprechen?


pyto - Mi 07.04.10 09:28
Titel: Sender in der prozedur ansprechen?
Hi,

Ich habe folgendes Problem:

Ich habe einen Quellcode, der zwei Listboxen füllt. Den Wert der einen, soll er sich aus der Caption des Senders ziehen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tbestellsystem.bestellen(Sender: TObject);
var name:string;
preis:integer;
begin;
name:=sender.caption;
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Add('SELECT Preis FROM Gerichte WHERE kurz=' + Quotedstr(name))
Preis:= ADOQuery1.fieldbyname('Preis').AsInteger
boxnam.Items.Add(name)
boxpreis.Items.Add(inttostr(preis))
end;


als Fehler meint er 'undefinierter bezeichner: Caption' und zeigt auf die Zeile name:=sender.caption;.

Wo ist das Problem???

Vielen Dank im Vorraus


Narses - Mi 07.04.10 09:30

Moin!

user profile iconpyto hat folgendes geschrieben Zum zitierten Posting springen:
als Fehler meint er 'undefinierter bezeichner: Caption' und zeigt auf die Zeile name:=sender.caption;.
Das liegt daran, dass Sender vom Typ TObject (dem Vorfahren aller Objekte in Delphi) ist. Dieses Ur-Objekt kennt diese Eigenschaft nicht.

user profile iconpyto hat folgendes geschrieben Zum zitierten Posting springen:
Wo ist das Problem???
Du musst einen Typecast auf den Typ (oder die Typenklasse als Vorfahr) machen, die diese Eigenschaft kennt. :idea:

cu
Narses


pyto - Mi 07.04.10 11:17

Vielen Dank,für die Antwort(etwas verwirrend aber gut :? )