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 27. Feb 2019
Antwort Antwort
Paat

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

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 15: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.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 16: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
 
#3

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 21: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
 
#4

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 22: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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.750 Beiträge
 
Delphi 12 Athens
 
#5

AW: ButtonClick Prozedur in eigene Methode definieren

  Alt 27. Feb 2019, 23:01
2) Falls, das nicht möglich ist, kann man wenigstens, die Prozedur Button1Click und Button2Click in der addiere Funktion aufrufen?
Kann man schon, sollte man aber nicht. In so einem Fall ist es lesbarer, wenn man die eigentliche Routine auslagert und sowohl im jeweiligen ButtonClick als auch in der addiere-Funktion aufruft. Der Name Button1Click signalisiert, daß diese Methode beim Click auf den Button1 ausgelöst wird und nicht durch einen Aufruf in addiere. Wenn später jemand noch mehr in diesem Button1Click tun will, rechnet er vielleicht nicht damit, daß diese Methode auch in addiere aufgerufen wird.

When, What, Why!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:36 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