![]() |
Sender???
Servus ich hab da mal ne frage
Problem (besser Unwissenheit): Was bedeutet z.B. With Sender as TFileListBox do dieses "Sender"? Bitte mal ne Erklärung auch wenns bestimmt ganz einfach ist. danke alex |
Re: Sender???
hi
willst du wissen was ein sender is oder was der befehl macht? |
Re: Sender???
wenn geht sender, denn ich weiß nciht was das sender bedeutet wenn ich es weiß kann ich mir den rest bestimmt selber erklären
|
Re: Sender???
Zitat:
|
Re: Sender???
Wenn ein Ergeignis ausgelöst wird, so ist es üblich, daß im Parameter Sender das Objekt übergeben wird, welches das Ereignis ausgelöst hat. Sender wird i.A. aber nur als TObjekt deklariert, damit ist nicht bekannt, über welche Eigenschaften dieses Objekt verfügt.
Mit der Anweisung With Sender as TFileListBox do geht man jetzt davon aus, daß der Sender vom Typ TFileListBox ist und kann somit auf die entsprechenden Eigenschaften und Methoden (z.B. ausgewählte Dateien) zugreifen. Das ganze nennt man auch "type-cast". ...:cat:... |
Re: Sender???
achso,muss ich das dann so verstehen das es im prinzip das gleiche ist wie with TLISTBOX do ? da greife ich ja auch auf die eigenschaften von der listbox zu oder?
|
Re: Sender???
Zitat:
mal sehen ob ich das richtig erklären kann. Du bekommst in den Verschiedenen Ereignissen (OnClick,OnActiv,OnKeyPress,usw.) immer als Sender das Objekt welches das ereigniss ausgelöst hat. Nun kannst Du damit z.B. erreichen das Du für alle Objekte deiner Form (Buttons,Labels,Edits,usw.) nur eine Ereigniss Routiene für z.B. OnClick schreibst. Über den Sender kannst Du jetzt ermitteln welcher Objekttyp das Ereigniss ausgelöst hat (TButton, TLabel,...) und / oder wie der Name des Objektes ist um dann entsprechend zu reagieren. z.B.: Du Hast auf deiner Form: Labels, Edit, Checkboxen. Jetzt weisst Du allen im OnClick die Procedure zu:
Delphi-Quellcode:
procedure TForm1.TestClick(Sender: TObject);
begin If (sender IS TLabel) then begin ShowMessage ('Du hast auf ein Label gecklickt'); end; If (sender IS TEdit) then begin ShowMessage ('Du hast auf ein Edit gecklickt'); end; If (sender IS TCheckBox) then begin ShowMessage ('Du hast auf eine Checkbox gecklickt'); end; end; |
Re: Sender???
achso, danke jetzt hats klickt bei mir gemacht. das ist also ne art quelltext verkürzung zum abfragen welche komponente welches ereignis ausgeführt hat und dann es behandeln?
|
Re: Sender???
Zitat:
hier noch mal ein OnClick zur verdeutlichung:
Delphi-Quellcode:
Wie Du siehst Prüfe ich mit Sender IS TEdit ob auf ein Edit geklckt wurde.
procedure TForm1.TestClick(Sender: TObject);
begin If (sender IS TEdit) then begin ShowMessage ('Du hast auf ein Edit mit dem Name: ' + (Sender As TEdit).Name + ' und dem Inhalt: ' + (Sender As TEdit).Text + ' gecklickt'); end; end; Jetzt greife ich mit Sender AS TEdit auf die Eigenschaften des Edits zu. Ein (Sender As TLabel).Text könnte z.B. nicht funktionieren da ein Label ja keine Eigenschaft Text besitzt. |
Re: Sender???
danke echt klasse von dir hat mir sehr geholfen da kann ich meine programme gleich so umschreiben.
mit label würde es dann (Sender As Label).caption heißen ge? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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