Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Aktion Eigentschaft (https://www.delphipraxis.net/153045-aktion-eigentschaft.html)

JnZn558 19. Jul 2010 02:03

Aktion Eigentschaft
 
hallo, hab folgendes von delphi hilfen.
Delphi-Quellcode:
procedure TForm1.ChangeColor(Sender: TObject);
begin
  { randomly change the color of the form }
  Color := Random($FFFF);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  { allocate memory for the Action property }
  Action := TBasicAction.Create(Self);

  { set the OnExecute event handler }
  Action.OnExecute := ChangeColor;

  { initialize the random number generator }
  Randomize;
end;
ersten hier wird ChangeColor durch OnClick ausgeloest, OnClick sei default event, kann man diese default event auch OnMouseUp sein oder geht es nicht?

2. Frage ist die Aktion Eigentschaft, wie kann ich diese Eigenschaft in Objektinspektor setzen bzw aendern?

himitsu 19. Jul 2010 05:57

AW: Aktion Eigentschaft
 
1. Nur eine Frage pro Thread

2. Wenn die Komponente eine Action unterstützt, dann gibt es im OI unter den Eigenschaften eine Eigenschaft mit dem Namen "Action" ... z.B. beim Button (diese Action entspricht dort dann der Standardaktion, also dem OnClick)

Zitat:

diese default event auch OnMouseUp sein oder geht es nicht
Dieses Standardevent kann (meines Wisens nach) nicht geändert werden.
Standard ist halt Standard und nicht irgendwas. :stupid:

JnZn558 19. Jul 2010 22:51

AW: Aktion Eigentschaft
 
ok, vielen dank fuer antwort.
da alle eigentschaft in Objektinspektor setzen oder aendern kann, wollte ich wissen, wie man die action im OI das macht. muss ich da eine Methode setzen oder zuerst eine komponente aufs formular ziehen, damit in action eigentschaft die komponente auswaehlen kann oder wie ist das?

David Martens 20. Jul 2010 12:38

AW: Aktion Eigentschaft
 
Rechst neben der Eigenschaft ist ein Feld wo der Name steht. Nun gibt es drei Möglichkeiten:

1. Doppelklick in der leere Feld -> Delphi erstellt einen Prozedurrumpf mit dem Namen der Komponente plus dem Ereignis, und verknüpft diese mit der Komponente.
2. Name für die Prozedur hineinschreiben -> siehe oben (nur mit eigenem Namen)
3. Wenn die Prozedur schon korrekt eristiert -> Auswahl der Prozedur mit Hilfe der Combobox (leeres Feld)

Anmerkung: Wenn eine Prozedur schon im Feld steht und du den Namen änderst (nicht eine vorhande auswählst) dann wird der Name der Prozedur auch in Quelltext für dich geändert. (quasi wie 2.)

Gruß David

JnZn558 20. Jul 2010 15:12

AW: Aktion Eigentschaft
 
kannst du bitte mal auch ein bisschen code beispiel zeigen.

hab jez, doppelclick auf onshow von form1 gemacht. darin dann showmessage('test');

bei action eigentschaft von form1 kann ich aber trotzdem nix auswaehlen.

David Martens 20. Jul 2010 16:02

AW: Aktion Eigentschaft
 
Jetzt versteh' ich was du meinst.

Das ist kein richtiges Ereignis. Hier was in der Hilfe (F1) steht:

Zitat:

Enthält die dem Steuerelement zugeordnete Aktion.

Klasse
TControl

Syntax

[Delphi] property Action: TBasicAction read GetAction write SetAction;

Beschreibung
Action ist das dem Steuerelement zugeordnete Aktionsobjekt. Aktionen ermöglichen, dass Reaktionen auf Benutzerbefehle zentralisiert werden. Wenn einem Steuerelement eine Aktion zugeordnet wird, bestimmt diese die entsprechenden Eigenschaften und Ereignisse der Komponente (z.B. ob das Steuerelement aktiviert ist oder wie es auf ein OnClick-Ereigniss reagiert).

Platzieren Sie zum Erstellen von Aktionen während des Entwurfs eine Aktionslistenkomponente im Formular oder Datenmodul. Doppelklicken Sie dann auf die Aktionsliste, um den Aktionslisten-Editor zu öffnen. Mit Hilfe des lokalen Menüs im Editor können Sie Aktionen hinzufügen. Diese werden anschließend im Objektinspektor in der Dropdown-Liste der Eigenschaft Action angezeigt.
Wichtig ist der letzte Absatz.

Also, TActionList aufs Formular knallen. Darin eine Action erstellen, mit Leben füllen (OnExecute, OnHint, OnUpdate) und im Formular der Eigenschaft Action dieser Action zuweisen.

JnZn558 20. Jul 2010 16:25

AW: Aktion Eigentschaft
 
achso, vielen dank, dieser tip ist genau sehr hilfreich, werde ich mal ausprobieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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