Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Button Prozedur in anderer Prozedur aufrufen (https://www.delphipraxis.net/127104-button-prozedur-anderer-prozedur-aufrufen.html)

Hellraizer 7. Jan 2009 19:44


Button Prozedur in anderer Prozedur aufrufen
 
Der Titel ist Programm:

Wie rufe ich eine Button.Click Prozedur in einer anderen Procedur oder Function auf?
Wenn ich einfach nur den Namen der Prozedur in einer anderen Aufrufe kommt die Fehlermeldung

"Not enough actual Parameters"

das hab ich bis jetzt probiert:
--------------------
Prozedur Bla;
begin
tbutton2.click;
end;
--------------------
Prozedur Bla;
begin
button2.click;
end;
--------------------
Prozedur Bla;
begin
button2.click.execute;
end;

mkinzler 7. Jan 2009 19:46

Re: Button Prozedur in anderer Prozedur aufrufen
 
Es fehlt der Sender:
Delphi-Quellcode:
button2.click( Nil);

DeddyH 7. Jan 2009 19:47

Re: Button Prozedur in anderer Prozedur aufrufen
 
Delphi-Quellcode:
procedure TFormWuppdi.TuWas;
begin
  Button1.Click;
end;
Oder als reguläre Prozedur:
Delphi-Quellcode:
procedure TuWas;
begin
  FormWuppdi.Button1.Click;
end;
[edit]@Neu-Mod: stimmt nicht, das wäre der Fall bei
Delphi-Quellcode:
Button1Click(Sender); //ohne Punkt
[/edit]

mkinzler 7. Jan 2009 19:50

Re: Button Prozedur in anderer Prozedur aufrufen
 
Stimmt, hab das als Methodennamen angesehen

Hellraizer 7. Jan 2009 20:17

Re: Button Prozedur in anderer Prozedur aufrufen
 
Zitat:

button2.click( Nil);
hat funktioniert, danke sehr.

Welches tut empfehlt ihr mir für solche grundsatzfragen?

DeddyH 7. Jan 2009 20:20

Re: Button Prozedur in anderer Prozedur aufrufen
 
Zitat:

Zitat von Hellraizer
Zitat:

button2.click( Nil);
hat funktioniert, danke sehr.

Das kann ich nicht so recht glauben :gruebel:. Und Einsteigertuts findest Du unter anderem hier: http://www.delphi-treff.de/tutorials/grundlagen/

Hellraizer 7. Jan 2009 20:33

Re: Button Prozedur in anderer Prozedur aufrufen
 
dann probier es mal aus ;)
ich schreib nur eben das Programm zuende. Dann poste ich code und stell die Source als Download bereit.

DeddyH 7. Jan 2009 20:35

Re: Button Prozedur in anderer Prozedur aufrufen
 
Hab ich: "zu viele Parameter" wie erwartet.

Hellraizer 7. Jan 2009 20:52

Re: Button Prozedur in anderer Prozedur aufrufen
 
Liste der Anhänge anzeigen (Anzahl: 4)
Ich schwör es funktioniert hier:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    MainMenu1: TMainMenu;
    Starteclear1: TMenuItem;
    clear1: TMenuItem;
    procedure Button1Click(Sender: TObject);
    procedure clear1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.clear1Click (Nil);
end;


procedure TForm1.clear1Click(Sender: TObject);
begin
edit1.Clear;
end;

end.


source und exe im anhang als beweis :)


[edit] in meinem Programm verwende ich das genau so wie hier als beweis in miniprogramm.

DeddyH 7. Jan 2009 20:54

Re: Button Prozedur in anderer Prozedur aufrufen
 
Natürlich funktioniert das so, schau Dir mein Edit in #3 nochmal an und dann vergleiche mal ganz genau mit Deinem Code.

Valle 7. Jan 2009 20:55

Re: Button Prozedur in anderer Prozedur aufrufen
 
Ne, du hast ja was ganz anderes gemacht. :wink:

Entweder du rufst das hier auf: Button1.Click;
Oder das hier: Button1Click(Nil);

Man kann den Parameter aber nicht tauschen, also ein Button.Click(Nil) ist nicht möglich, wie DeddyH schon richtig sagte. Aber das hast du ja auch gar nicht gemacht, sondern Button1CLick(Nil);

(In diesem Beispiel wird davon ausgegangen, dass der Button "Button1" heißt)

@roter Kasten: Ich sende trotzdem ab, weil mein Post viel schöner ist. :stupid:

Mit freundlichen Grüßen,

Valle

Hellraizer 7. Jan 2009 20:57

Re: Button Prozedur in anderer Prozedur aufrufen
 
ups xD stimmt :D tut mir leid ;)
nja delphi neuling ;D


mein programm schiebt ne endlosschleife -.-'

Matze 7. Jan 2009 21:02

Re: Button Prozedur in anderer Prozedur aufrufen
 
Ich persönlich finde es schöner, den Code in eine eigene Prozedur auszulagern und die im jeweiligen OnClick aufzurufen. Wobei es meist auch nicht nötig ist, 2 Buttons zu haben, die das selbe bewirken.

Delphi-Quellcode:
procedure TForm1.ClearIt;
begin
  Edit1.Clear;
end;

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


procedure TForm1.Clear1Click(Sender: TObject);
begin
  ClearIt;
end;
Grüße, Matze


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