Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TNotifyEvent - Eigenschaft, Aktion, oder was? (https://www.delphipraxis.net/38787-tnotifyevent-eigenschaft-aktion-oder.html)

Der_Unwissende 24. Jul 2006 09:29

Re: TNotifyEvent - Eigenschaft, Aktion, oder was?
 
Hi,
ich möchte hier nur mal anmerken, dass wenn man über eigene Ereignisse die man Auslösen möchte nachdenkt dann aber nicht unbedingt zu diesem Weg mit Methodenzeigern greifen sollte/muss.
Besser eignen tut sich da das Observer-Pattern zu verwenden. Hier ist es einfach möglich, mehr als einen Empfänger (in dem Fall natürlich Beobachter) über Änderungen zu benachrichtigen. Beim einfachen Property ist das so nicht vorgesehen.

Gruß Der Unwissende

jensw_2000 24. Jul 2006 09:42

Re: TNotifyEvent - Eigenschaft, Aktion, oder was?
 
@xaromz
Danke, das funktioniert. Da war ich ja auf dem völlig falschen Weg :roll:

@Der_Unwissende
Das hört sich interessant an. Damit werde ich mich auf jeden Fall beschäftigen.
Danke für den Hinweis.

ajmbarros 27. Dez 2011 13:01

AW: TNotifyEvent - Eigenschaft, Aktion, oder was?
 
Ich habe das gleiche versucht mit TMenuItem. Leider brauche ich aber als Sender für meine procedure die Instanz der Klasse die die procedure aufgerufen hat. Momentan kommt als Sender immer der Formularname zurück.

Delphi-Quellcode:
while not q_tmp.Eof do begin
      NewItem[i] := TMenuItem.Create(Self);
      NewItem[i].OnClick := Open;
      NewItem[i].Name := 'ietm' + IntToStr(i);
      NewItem[i].Caption := q_tmp.Fieldbyname('NAME').AsString;
      popup.Items.Add(NewItem[i]);
      inc(i);
      q_tmp.Next;
end;
Delphi-Quellcode:
procedure Tform.Open(Sender: TObject);
var s: ShortString;
begin
  with Sender as TMenuItem do begin
    s:= Text;
  end;
  ShowMessage(s);
end;
Wie ist das möglich?

himitsu 27. Dez 2011 13:14

AW: TNotifyEvent - Eigenschaft, Aktion, oder was?
 
Zitat:

Zitat von ajmbarros (Beitrag 1143294)
Wie ist das möglich?

Hat TMenuItem überhaupt ein Property Namens "Text"?

Versuch mal
Delphi-Quellcode:
s := (Sender as TMenuItem).Text;
.


PS: Warum ShortString und nicht String?

ajmbarros 27. Dez 2011 13:32

AW: TNotifyEvent - Eigenschaft, Aktion, oder was?
 
Danke, so hat's funktioniert.
.Text gibt es natürlich nicht (copy&paste Fehler).

Ich habe ShortString genommen weil ich weiß das ich nie mehr als die 255 Zeichen brauchen werde. Mir kahm es daher sinniger vor als String. Wäre den etwas dagegen einzuwenden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.
Seite 2 von 2     12   

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