Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Tbutton(Sender) (https://www.delphipraxis.net/55251-tbutton-sender.html)

simonko 18. Okt 2005 16:50


Tbutton(Sender)
 
Das erreignis onclick bei den buttons gibt mir einen Sender zurück von Tobject.
Dann muss man Tbutton(Sender) schreiben und ich kann auf den button zugreifen.
Was ist das aber eine typ umwandlung? Kann man das in anderen fällen auch noch gebrauchen?
Und was ist eigentlich der typ Tobject?

Ich bitte um aufklärung :gruebel:

SirThornberry 18. Okt 2005 16:53

Re: Tbutton(Sender)
 
ja, man kann das noch in anderen Fällen gebrauchen. Der Typ TObject ist der vorfahre von allen anderen Objecten. Jedes Object was es in Delphi gibt wurde irgendwann davon abgeleitet, egal ob TButton, TListBox etc.

Oxmyx 18. Okt 2005 17:31

Re: Tbutton(Sender)
 
Das Ding nennt sich Typecast. Damit sagst du dem Compiler, als was er die Daten ansehen soll. Typecasts funktionieren mit allen Typen, nicht nur mit Zeigertypen.

Single(int_var) sagt dem Compiler z.B., dass er die Integer-Variable "int_var" als Single auffassen soll.

Ein Typecast ändert nicht die Daten im Speicher, sondern nur die Interpretation der Daten.

SirThornberry 18. Okt 2005 17:52

Re: Tbutton(Sender)
 
Zitat:

Zitat von Oxmyx
Das Ding nennt sich Typecast. Damit sagst du dem Compiler, als was er die Daten ansehen soll. Typecasts funktionieren mit allen Typen, nicht nur mit Zeigertypen.

Das stimmt so nicht, denn TObject und alle anderen Objecte sind letztendlich Zeigertypen. Ein Cast geht eigentlich immer wenn der Compiler eine Compatibilität zwischen dem Typ und dem Cast feststellt (compilermagic) oder der aktuelle Typ und der Typ wohin es gecastet werden soll die gleiche Größe haben (im Speicher)

Oxmyx 18. Okt 2005 18:09

Re: Tbutton(Sender)
 
Zitat:

Zitat von SirThornberry
Das stimmt so nicht, denn TObject und alle anderen Objecte sind letztendlich Zeigertypen.

Hä, genau das hab ich doch geschrieben.

Zitat:

Ein Cast geht eigentlich immer wenn der Compiler eine Compatibilität zwischen dem Typ und dem Cast feststellt (compilermagic) oder der aktuelle Typ und der Typ wohin es gecastet werden soll die gleiche Größe haben (im Speicher)
Ne, Typecasts gehen immer bei Ordinaltypen, egal ob die Typen die selbe Größe haben oder nicht. Dabei führt der Compiler keinerlei Prüfung durch, ob die Umwandlung Sinn ergibt. Bei Nichtordinaltypen muss die Größe übereinstimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz