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/)
-   -   Delphi Buttons (https://www.delphipraxis.net/133382-buttons.html)

gangs-taas 30. Apr 2009 21:50


Buttons
 
hey hab eine frage.
in meiner fiktiven frage idee habe ich 2 buttons.
kann man das machen, dass der button1, nachdem button gedrückt wurde, was andere macht als wenn button2 nicht vorher gedrückt wurde ?

also meine

Buton1 => Variable a + varibale b

Button2 => Edit1.text := 'ballalala'
Button1 löst jetzt die aktion 'reset' aus


wisst ihr was ich mein ? geht das ?

lg

Gargoyl 30. Apr 2009 21:56

Re: Buttons
 
Äh ja das sollte gehen, wenn ich es richtig verstanden habe.

Variable definieren auf die beide Button_Click Events Zugriff haben

Pseudocode:
Code:
var
  Button2gedrueckt : Boolean = false;


procedure Button1_Click();
  if Button2gedrueckt then
    rechne a + b;
  else
    reset;

  Button2gedrueckt := false;
end;


procedure Button2_click();
  Button2gedrueckt := true;
end;

Medium 30. Apr 2009 22:13

Re: Buttons
 
Das OnClick Event (wie alle Events) ist nichts weiter als ein Methodenzeiger. Du kannst aus dem Quelltext heraus durchaus Events neue Methoden zuweisen. Das heisst du hättest dann 2 Methoden für Button1, von der eine standardmäßig via OI verknurpselt ist. Bei Click auf Button2 klemmst du die 2. Methode an: "Button1.OnClick = Methode2;". Diese Methoden müssen lediglich die passende Signatur zum Event haben, in diesem Fall Delphi-Referenz durchsuchenTNotifyEvent.

mkinzler 1. Mai 2009 07:21

Re: Buttons
 
Oder durch Setzen von Button2.Tag, welchen du dann in dessen Click-Event auswerten kannst

DP-Maintenance 1. Mai 2009 07:21

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Eine Frage zur VCL

craash 1. Mai 2009 08:41

Re: Buttons
 
vll gehts auch über die caption

zB button2 wird geklickt
=> edit1.text:= 'deintext';
=> button1.caption:= 'reset';

und dann beim button1-klick mit
Delphi-Quellcode:
if caption = 'reset' then ....

mkinzler 1. Mai 2009 08:43

Re: Buttons
 
Würde auch gehen, aber .Tag ist da imo besser geeignet

gangs-taas 1. Mai 2009 09:57

Re: Buttons
 
hey, vielen dank für eure hilfe, könnt ihr mir aber einen link geben, oder kurz erklären was das mit den Button.Tag ist ? weil ich habe selbst mit google nichts vernünftiges gefunden .. und verstehe nicht so recht was das ist ...
lg ^^
danke schonmal ^^

mkinzler 1. Mai 2009 10:02

Re: Buttons
 
.Tag ist eine Integer-Eigenschaft einer Komponente, die man frei verwenden kannst. Du kannst also bei Anklickaken von Button2 den Wert von Button1.Tag von 0 (Standard) auf etwas anderes ändern und dann im onClick diese Eigenschaft auswerten
Delphi-Quellcode:
if (Sender as TButton).Tag = 0 //Button2 wurde nicht geklickt
begin
   ...
end
else //Button2 wurde vorher geklickt
begin
   ...
end;

gangs-taas 1. Mai 2009 10:04

Re: Buttons
 
cool danke

hadschi92 1. Mai 2009 10:12

Re: Buttons
 
Tipp: Wenn du im Objektinspektor Das Feld Tag ausgewählt hast und auf F1 drückst, dann wird normalerweise die Delphi-Hilfe aufgerufen, in der alles erklärt ist. Bei mir steht da:
Zitat:

Delphi-Quellcode:
property Tag: Longint;
Tag hat keine vordefinierte Bedeutung. Die Eigenschaft Tag steht zur freien Benutzung durch Entwickler zur Verfügung. Sie können in dieser Eigenschaft zusätzliche Informationen über die Komponente in Form einer Ganzzahl speichern oder die Eigenschaft in einen 32-Bit-Wert, wie z.B. in eine Komponentenreferenz oder einen Zeiger, umgewandelt werden.


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