Thema: Prism Zugriff auf Label.Tag

Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#5

Re: Zugriff auf Label.Tag

  Alt 22. Aug 2006, 08:43
Zitat von gfjs:
 := int(dummy.Tag) as Int 32; und n := int(dummy.tag); bringen folgende Fehlermeldung:

[Pascal Fehler] uSpielplan.pas(154): E2250 Es gibt keine überladene Version von 'Int', die man mit diesen Argumenten aufrufen kann
Ja, ein kleiner Ausritt nach C#, dort ist Int32 auch als int verwendbar. Ein Reines dummy.Tag as Int32 sollte funktionieren.

Zitat von gfjs:
n := Convert.ToInt32(dummy.Tag); bringt keine Fehlermedlung aber mit str := n.ToString; das falsche Ergebnis '0'.
Ja, ueberlege mal, was du machst: Du konvertierst ein object, das einen Int zugewiesen bekommen hat (und entsprechend auch ein solcher ist) in einen Integer. Kurz: Du konvertierst Int in Int. Bloss, dass die Methode nicht weiss, das dummy.Tag ein integer ist
Die Stichworte hier sind Boxen und Unboxen. Bei der zuweisungdummy.Tag := 1; "boxt" du die 1 (als Integer) in ein object. (Structs muessen erst auf objects geboxt werden, im Gegensatz zu Klassen). Und du musst nun dummy.Tag "unboxen", um aus dem object wieder einen Integer zu machen. Und dafuer reicht ein purer Typecast:
Delphi-Quellcode:
dummy.Tag as Int32
//oder
Int32(dummy.Tag)
greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat