![]() |
welche Informationen schickt eigentlich (Sender: TObject)
Hallo Leute
Hätte da ein bar fragen zu (Sender: TObject) wie kann ich feststellen welche Informationen von Sender an das onChange Ereignis weitergegeben werden? Oder besser noch von welcher Komponente sind die informationen. :gruebel: Kann man vielleicht auch eine Liste in ein Memo schreiben? Schöne Grüsse Tau |
Re: welche Informationen schickt eigentlich (Sender: TObject
In Sender wird dir eine Referenz auf das auslösende Objekt übergeben. Wenn also ein Button1 eine OnClick-Routine auslöst, so ist Sender vom Typ TButton und du kannst auf ihn zugreifen. Das ist praktisch wenn mehrere Komponenten ein und die selbe Ereignisbehandlungsprozedur erhalten. Du kannst dadurch also ermitteln wer genau das Ereignis ausgelöst hat, und auch gleich mit dem Objekt interagieren.
Es ist deswegen vom Typ TObject, da TObject Vorfahre aller Komponenten ist. Somit kann dort jeglicher Typ drin übergeben werden ohne die OOP zu treten. Bevor du jedoch die Methoden von z.B. TButton verwenden kannst, musst du casten.
Delphi-Quellcode:
Sollte Sender hier kein TButton sein gibt's eine Exception. Daher lässt sich das über den is-Operator auch im Vorfeld abprüfen.
procedure OnClick(Sender: TObject);
begin (Sender as TButton).Caption := 'Ich bin geklicked'; end; Gruss, Fabian |
Re: welche Informationen schickt eigentlich (Sender: TObject
Sender ist vom Typ Tobject (Steht ja auch schon da ;)) und beinhaltet das Objekt, von dem aus die Methode aufgerufen wird. Also in einer OnClick-Prozedur eines Buttons ist es der gedrückte Button. So kannst du zB eine Methode mehreren Komponenten zuordnen und per Typenüberprüfung trotzdem alles richtig zuordnen.
Zitat:
//Edit: Ich sollte öftes vor dem Abschicken mal unten im Fenster nachschauen :roll: |
Re: welche Informationen schickt eigentlich (Sender: TObject
'OnChange' ist ein TNotifyEvent und folgendermaßen deklariert:
Delphi-Quellcode:
Das einzige was du bekommst, ist das auslösende Objekt.
type
TNotifyEvent = procedure(Sender: TObject) of object; Zitat:
Delphi-Quellcode:
in ein TMemo-Objekt kopieren.
Memo1.Text:=StringList1.Text;
|
Re: welche Informationen schickt eigentlich (Sender: TObject
Hi
Zitat:
An diese Informationen möchte ich rankommen. Tau :hi: |
Re: welche Informationen schickt eigentlich (Sender: TObject
per "Sender.ClassName" (String) oder "Sender.ClassType" (TClass)!
|
Re: welche Informationen schickt eigentlich (Sender: TObject
Hi
D A N K E ! ! ! der tipp mit "Sender.ClassName" war genau das was ich gesucht hatte. :witch: :dancer2: :witch: Tau :hi: |
Re: welche Informationen schickt eigentlich (Sender: TObject
Hallo allerseits
Hab noch eine kleine Frage zu dem Sender : TObject. Kann man im Sender ausfinden von welchem Event aus diese Procedure aufgerufen wurde? z.B. wenn man in einem TEdit in dem OnChange und in dem OnExit die gleiche Procedure aufruft, kann man in der aufgerufenen Procedure rausfinden ob diese von OnChange oder von OnExit aufgerufen wurde?? Thx & Greetz |
Re: welche Informationen schickt eigentlich (Sender: TObject
TEdit(Sender) ist dein TEdit
du kannst es genauso wie die Variable verwenden ... z.B. TEdit(Sender).Text aber ob's nun von OnChange, oder OnExit kommt kannst du meines Wissens nicht rausbekommen. [add] ach ja, viele verwenden stadt TEdit(Sender) lieber (Sender as TEdit) es kommt aber etwa auf's selbe raus |
Re: welche Informationen schickt eigentlich (Sender: TObject
Gibt es irgend ein "work around" um doch rauszubekommen woher es kommt?
Greetz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz