AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Auf die Befehle eines Buttons zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Auf die Befehle eines Buttons zugreifen

Ein Thema von ark4869 · begonnen am 16. Dez 2008 · letzter Beitrag vom 16. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
ark4869

Registriert seit: 23. Aug 2006
50 Beiträge
 
Delphi 6 Personal
 
#1

Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:18
Hi!
Ich wollte mal fragen, ob es möglich ist, die Befehle, die ich in einem ButtonClick Ereignis ausführe, weiter irgendwo zu verwenden, indem ich dann, wie bei einer Prozedur, auf den Button irgendwie zugreife?

Sonst muss ich daraus wohl oder übel ganz doll viele Prozeduren machen.

Ob das eine oder andere weniger/mehr OOP ist, ist mir relativ egal- hauptsache es funktioneirt Unser Lehrer mag eh kein OOP sagt er ständig- auch wenn er es uns trotzdem beibringen muss. Aber erstmal will ich dass es funktioniert.

Achja: Wann brauch ich Klammern um If / If Not abfragen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:22
Du kannst mehrere Bedienelemente(Button) mit der selben Eventmethode verbinden. Im Parameter Sender befindet sich dann eine Referenz auf das auslösenden Element
Markus Kinzler
  Mit Zitat antworten Zitat
ark4869

Registriert seit: 23. Aug 2006
50 Beiträge
 
Delphi 6 Personal
 
#3

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:23
...? Bahnhof
Wenn ich das auch nur etwas verstanden hab, hab ich mich unklar oben ausgedrückt: Die verschiedenen Buttons haben verschiedenen Befehler, aber ich möchte gerne in einer neuen "Prozedur" alle davon neu benutzen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:25
Du kannst bei mehreren Button die selbe Methode im OI auswählen. im Code verweist dann Sender auf den Button der angeklickt wurde
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:30
Delphi-Quellcode:
procedure T<Form>.Button1Click(Sender: TObject);
begin
    //Methode für mehrere Buttons
    if (Sender as TButton).Name = 'Button1'  then
    begin
      //Button1
    end
    else
    begin
      //Button2
    end;
end;
Miniaturansicht angehängter Grafiken
2buttonseinemethode_128.png  
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:31
Ich denke, Du meinst so etwas:
Delphi-Quellcode:
procedure TFormBla.ButtonWuppdiClick(Sender: TObject);
begin
  Button1Click(Button1);
  Button2Click(Button2);
  Button3Click(Button3);
end;
Damit werden die Events der Buttons nacheinander ausgeführt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
ark4869

Registriert seit: 23. Aug 2006
50 Beiträge
 
Delphi 6 Personal
 
#7

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:31
Tut mir Leid, aber ich glaub ich werd echt einfach eigene Prozeduren schreiben. Auch wenn ich zumindest zu Recht nicht schlecht in Informatik stehe versteh ich echt nicht, was mir das bringen soll, wennich im OI(WO im OI?) irgendeine Methode irgendwie reinschreibe und dass dann im Sender der Buttons steht. Ich will auf die verscheienden Aktionen(es geht darum, ähnlich den Türmen von Hanoi Sachen von einem Stack ins andere zu verschieben, und die Buttons haben wir da schon im Programm, mit den verschiedenen Sachen, von A nach B, von B nach C etc. pp, und ich möcht diese Sachen gerne weiterverwenden ohne jedes Mal die ganzen Befehle neu zu schreiben)

ED:

Deddy, danke! So funktioniert es! Aus welchem Grund muss man den Button als Sender in die Klammern schreiben, warum reicht nicht Button1Click?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:37
Das sind TNotifyEvents, die verlangen nunmal einen Sender-Parameter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Noedel

Registriert seit: 7. Aug 2008
204 Beiträge
 
Delphi 7 Professional
 
#9

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:41
Zitat von ark4869:
Achja: Wann brauch ich Klammern um If / If Not abfragen?
wie du schon sagtest, wenn du nen "zusatz" wie
Code:
and
or
not
usw.

in deine If abfrage brauchst, dann setz da klammern drum
Bsp

  if (not zahl1 = 1) and ( (zahl2 <> 3) or (zahl3 = 10) ) then...
-"Was studierst du eigentlich? Nerdologie?"
-"Informatik..."
-"Wusst ich´s doch!"
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Auf die Befehle eines Buttons zugreifen

  Alt 16. Dez 2008, 16:42
Weil du mit dem Befehl die Funktion aufrufst und diese nunmal einen Parameter erwartet.

Alternativen sind:

Button1.Click;

oder

Button1Click(nil);

Sauberer ist aber folgende Variante:
Delphi-Quellcode:
procedure TForm1.MoveAtoC
begin // Methode des Formulars. Oben muss unter private ein "procedure MoveAtoC;" (ohne die ")
  // Code
end;

procedure TForm1.Button1Click(Sender: TObject)
begin // Button Event ruft nur die Prozedur auf
  MoveAtoC;
end;

procedure Blablabla
begin
  MoveAtoC;
end;
Damit hast du den eigentlichen Zug (etwas von A nach C zu bewegen) in eine seperate Prozedur ausgelagert, und rufst diese dann auf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 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