AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi ButtonClick Prozedur in eigene Methode definieren
Thema durchsuchen
Ansicht
Themen-Optionen

ButtonClick Prozedur in eigene Methode definieren

Ein Thema von delphicoder123 · begonnen am 27. Feb 2019 · letzter Beitrag vom 28. Feb 2019
Antwort Antwort
Seite 1 von 2  1 2      
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#1

ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 15:47
Hallo,
ist es möglich, in eine eigene definierte Funktion, einen ButtonClick Event zu definieren?

Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 15:50
Was hast du vor?
So wie du das geschrieben hast macht der Satz nämlich keinen Sinn.
Daher schätze ich bist du Anfänger (?), hast irgendwas vor und versuchst etwas zu tun was nicht geht bzw. keinen Sinn macht.
Von daher: Was ist dein Ziel?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#3

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 15:52
Was meinst Du damit? Möchtest du Deine eigene Methode durch einen ButtonClick auslösen lassen?

Delphi-Quellcode:
procedure TForm1.MeineMethode;
begin
  ShowMessage('Tadaa');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MeineMethode;
end;
Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (27. Feb 2019 um 15:57 Uhr)
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#4

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 15:55
Ich brauche eine Funktion x. In dieser Funktion sind die ganzen Button Click Ereignisse und der dazugehörige Code.
Ich möchte
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#5

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 16:01
Du kannst die gleiche Ereignisbehandlungsmethode mehreren OnClicks zuweisen. Das geht entweder über den Objektinspektor oder eben im Code zur Laufzeit:

Delphi-Quellcode:
...
Button1.OnClick := MultiClicker;
Button2.OnClick := MultiClicker;
...
Wichtig ist dabei eigentlich nur, daß im obigen Beispiel MultiClicker die korrekte Signatur hat also eine procedure ist und als Parameter Sender:TObject hat. Innen drin sollte sie natürlich unterschiedlich auf die verschiedenen Buttons reagieren, aber dafür ist ja der Sender da.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 16:02
Was meinst Du?

Möchtest Du aus einer Prozedur heraus einen ButtonClick auslösen? Dann rufe in der Prozedur die Routine auf, die Du dem ButtonClick-Ereignis zugeordnet hast.

Oder willst Du innerhalb einer Prozedure einem Button eine Routine zuweisen, die er beim Click ausführen soll? Auch das geht.

Delphi-Quellcode:
procedure TForm1.button1Click(Sender: TObject);
begin
  ShowMessage('Button1Click');
end;

procedure TForm1.irgendwas;
begin
...
  button1Click(Sender);
// oder
  button1Click(Nil);
// oder
  button1Click(Self);
...
end;

procedure TForm1.IrgendwasZumClickenClick(Sender: TObject);
begin
  ShowMessage('IrgendwasZumClickenClick');
end;

procedure TForm1.irgendwas;
begin
...
  Button1.OnClick := IrgendwasZumClickenClick;
...
end;

procedure TForm1.IrgendwasZumClickenFuerVieleButtonsClick(Sender: TObject);
begin
  if Sender is TButton then begin
    if Sender = Button1 then ShowMessage(Format('Button.Name = %s',[TButton(Sender).Name]))
    else if Sender = Button2 then FormatC
    else if Sender = Button3 then ...;
  end;
end;

procedure TForm1.irgendwas;
begin
...
  Button1.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button2.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button3.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button4.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button5.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button6.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
  Button7.OnClick := IrgendwasZumClickenFuerVieleButtonsClick;
...
end;
  Mit Zitat antworten Zitat
Paat

Registriert seit: 27. Feb 2019
Ort: Baden-Württemberg
8 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 16:58
Willst du innerhalb einer Prozedur/Funktion ein Ereignis (onClick, o.ä.) deklarieren und auch quasi auch dort handeln?
Code:
procedure IchBinEineProzedur;
  procedure btnTest.onButtonClick;
  begin
    macheEtwas();
  end;
begin
  if btnTest.Clicked then
    btnTest.onButtonClick;
end;
Denke nicht das soetwas möglich ist. Vielleicht weiß da ja jemand was
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 17:04
Hallo,
Zitat:
Ich brauche eine Funktion x. In dieser Funktion sind die ganzen Button Click Ereignisse und der dazugehörige Code.
Das würde ich anders lösen.
Definiere dir für jeden Button eine eigene Methode,

Bsp:
Du hast 2 Buttons.
BtnNeu, BtnAendern

Das ergibt 2 Methoden:
Delphi-Quellcode:
procedure TForm1.ArbeiteNeuAb;
begin
end;
procedure TForm1.ArbeiteAendernAb;
begin
end;

Und in die BtnNeuClick kommt der Aufruf:
procedure TForm1.BtnNeuClick();
begin
  ArbeiteNeuAb;
end;
Und jetzt kannst du auch den den Button "Neu" im Code klicken lassen (naja, so in etwa),
indem Du in der Procedure XYZ einfach ArbeiteNeuAb aufrufst.
Heiko
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#9

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 22:51
Ich meine das so.

1) Kann man die Prozedur Button1Click und Button2Click auch innerhalb der addiere Funktion definieren. Auch, wenn es an dieser Stelle keinen Sinn macht, würde es mich interessieren, ob sowas überhaupt möglich ist?
2) Falls, das nicht möglich ist, kann man wenigstens, die Prozedur Button1Click und Button2Click in der addiere Funktion aufrufen?

Anstatt das hier:

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Message 1');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('Message 2');
end;

function TForm1.addiere(z1,z2:Integer): Integer;
begin
   result:=z1+z2;
end;
Sowas hier(Compiler gibt hier Fehler aus)

Code:
function TForm1.addiere(z1,z2:Integer): Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Message 1');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('Message 2');
end;

begin
   result:=z1+z2;
end;
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#10

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 23:10
Du kannst lokale Proceduren/Funktionen definieren, die haben aber auch nur eine lokale Sichtbarkeit und du kannst diese somit auch nur lokal verwenden.
Delphi-Quellcode:
procedure MyProcedure();
// lokale procedure/function
procedure MyLocalProc();
begin
end;

function MyLocalFunc() : Integer;
begin
  Result := 10;
end;

var
  r : Integer;
begin
  MyLocalProc();
  r := MyLocalFunc();
end;
  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 16:04 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