AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Unter einer Procedure eine andere Procedur aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Unter einer Procedure eine andere Procedur aufrufen

Ein Thema von EMS · begonnen am 30. Dez 2012 · letzter Beitrag vom 1. Jan 2013
Antwort Antwort
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#1

Unter einer Procedure eine andere Procedur aufrufen

  Alt 30. Dez 2012, 15:13
Delphi-Version: 5
Hallo
Wie oben schon geschrieben.
Ich habe nun eine Prozedure fertig die funktioniert.
Diese möchte ich nun zusätzlich in einer anderen aufrufen.
wie muss ich das programmieren?

procedure TForm1.Button2Click(Sender: TObject);
begin
...
...
procedure TForm1.Button3Click(Sender: TObject);
...
...
...
end;

funktioniert nicht?
Was mach ich hier falsch?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 30. Dez 2012, 15:16
Die Methode heißt Button3Click und hat einen TObject-Parameter, und so muss sie auch aufgerufen werden.
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
Popov
(Gast)

n/a Beiträge
 
#3

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 30. Dez 2012, 15:19
Da gibt es zwei Möglichkeiten.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
...
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Button2Click(nil);
end;
oder

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
...
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Button2Click(Sender);
end;
Sender ist das Objekt von der die Prozedur aufgerufen hat. Bei Button3Click wahrscheinlich Button3. Das kann man ganz sicher erkennen mit

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  if Sender = Button3 then ShowMessage('Button3 wurde geklickt');
Somit ist die zweite Methode allgemein nicht falsch. Wenn es aber keine Rolle spielt, dann einfach nil als Parameter mitschicken.
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#4

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 30. Dez 2012, 15:30
Ich verwende folgende Möglichkeiten:

Delphi-Quellcode:

procedure TForm1._procedure1(Sender: TObject);
begin
// mach was
end;

procedure TForm1._procedure2;
begin
//mach was
end;

procedure _procedure3;
begin
//mach was
end;

procedure TForm1.bButton1Click(Sender: TObject);
begin
_procedure1(Sender);

_procedure2;

_procedure3;
end;
MfG,
terence
  Mit Zitat antworten Zitat
delnu
(Gast)

n/a Beiträge
 
#5

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 30. Dez 2012, 20:19
Zitat:
procedure TForm1.Button2Click(Sender: TObject);
begin
...
...
procedure TForm1.Button3Click(Sender: TObject);
...
...
...
end;
Was daran falsch ist ? Nun, vor der zweiten Prozedur fehlt das "end" der ersten, und zu Beginn der zweiten das "begin" !

Um lokale Funktionen/Prozeduren innnerhalb einer anderen unterzubringen, kann dies z.B. so aussehen :
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);

procedure local_proc;
begin
end;

fuction local_func: boolean;
begin
 local_func:=true;
end;

begin { Hier beginnt Button2Click }
 if local_func then local_proc; // Wenn das Ergebnis von "local_func" true ist, "local_proc" aufrufen
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 31. Dez 2012, 01:56
Da jetzt die Lösung klar ist, noch etwas zum Programmierstil. Ich halte das für schlechten Programmierstil. Zum einem wird da etwas in die GUI gewurschtelt, was da nicht hingehört und zum anderen leidet dabei die Übersichtlichkeit. Besser wäre es die Routine auszulagern in eine separate Routine und diese dann von beiden Ereignissen aufzurufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Unter einer Procedure eine andere Procedur aufrufen

  Alt 31. Dez 2012, 09:37
Ob schlechter Programmierstil, das ist eine Sache für sich, aber es wird irgendwann unpraktisch. Denn nicht selten überlegt man es sich anders und was mal in Prozedur für Button1 lag, ist plötzlich etwas fehl am Platz, wenn man es sich anders überlegt und den Button entfernt, weil man z. B. den Aufruf jetzt über Menü durchführt. Und plötzlich steht da Button1Click und es gibt keinen Button.
Delphi-Quellcode:
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure ButtonClick(Sender: TObject);
  end;

...

procedure TForm1.ButtonClick(Sender: TObject);
begin
  if Sender = Button1 then
    ShowMessage('Hallo Welt!');

  if Sender = Button2 then
    ShowMessage('Hallo Galaxis!');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ButtonClick(Sender);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ButtonClick(Sender);
end;
  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 19:10 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