Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi prozedur soll eine Button-Click prozedur aufrufen (https://www.delphipraxis.net/82213-prozedur-soll-eine-button-click-prozedur-aufrufen.html)

Spyx 8. Dez 2006 17:51


prozedur soll eine Button-Click prozedur aufrufen
 
Ich schätze mal die Antwort ist richtig simple, aber ich suche schon seit einer Stunde und hab noch nichts gefunden.

So soll es funktionieren:
Wenn man im Edit1 Feld etwas geschrieben hat und Enter drückt, soll TForm1.Button1Click ausgeführt werden:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(13)
  then TForm1.Button1Click([color=#ff0000]?[/color]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;
Könnte mir da bitte jemand helfen?

EDatabaseError 8. Dez 2006 17:56

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Zitat:

Zitat von Spyx
Ich schätze mal die Antwort ist richtig simple, aber ich suche schon seit einer Stunde und hab noch nichts gefunden.

So soll es funktionieren:
Wenn man im Edit1 Feld etwas geschrieben hat und Enter drückt, soll TForm1.Button1Click ausgeführt werden:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(13)
  then TForm1.Button1Click(Sender);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;
Könnte mir da bitte jemand helfen?


jfheins 8. Dez 2006 17:59

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Oder einfach Button1.Click; ;)

3_of_8 8. Dez 2006 18:01

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Ist allerdings kein sonderlich guter Stil.

Spyx 8. Dez 2006 18:06

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Danke. War mir doch beinahe klar, das ich irgendeinen kleinen Fehler gemacht hatte.

inherited 8. Dez 2006 20:17

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Tu deinen Button1.Click-Code dann lieber in eine extra procedure packen und rufe an beiden Orten einfach diese procedure auf.

marabu 8. Dez 2006 20:20

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Hi,

manchmal genügt es bereits, wenn man Button1.Default im OI auf True setzt.

Gute Nacht

radekj 17. Dez 2006 15:34

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(13)
  then self.Button1Click([color=#ff0000]?[/color]); //<- self und nicht TForm, man braucht ein Objekt und nicht Klasse !!!
  //es geht auch so:
  //then Button1Click([color=#ff0000]?[/color]); //aber mit self. ist der code lesbarer ! 
end;

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

inherited 17. Dez 2006 20:38

Re: prozedur soll eine Button-Click prozedur aufrufen
 
mensch, lies doch mal. Das Thema ist schon längst durch :roll:

Nils_13 17. Dez 2006 20:43

Re: prozedur soll eine Button-Click prozedur aufrufen
 
Zitat:

Zitat von inherited
mensch, lies doch mal. Das Thema ist schon längst durch :roll:

Er wollte doch nur andeuten, dass man Form1 nicht benutzen sollte. Ich persönlich habe, wenn ich mit mehreren Formen arbeite, auch nur Probleme mit TForm und bin Benutzer von Self.

kenshin3672 23. Okt 2016 08:44

AW: prozedur soll eine Button-Click prozedur aufrufen
 
Um das hier mal gleich weiter zu führen.
ich habe folgendes Problem:
Programmiere gerade einen Spielautomaten bei dem ich eine procedure außerhalb stehen habe und in Button1.Click aufrufen will.

procedure ist folgende:

procedure TForm1.nGewinn (parameter : integer);
begin
//viele codezeilen
end;

Diese soll wenn Button1 ausgeführt wird aufgerufen werden.

Danke schon mal im voraus für schnelle Antworten :)



kenshin

'In der Theorie gibt es keinen Unterschied zwischen Theorie und Praxis. In der Praxis schon.

Daniel 23. Okt 2016 08:56

AW: prozedur soll eine Button-Click prozedur aufrufen
 
hm.
Was hast Du denn bisher versucht, um
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender : TObject);
begin
///
end;
und Deine Prozedur
Delphi-Quellcode:
procedure TForm1.nGewinn( parameter : integer );
begin
///
end;
zusammen zu bringen?

Wenn Dir nicht klar ist, wie eine Prozedur eine andere aufrufen kann, dann ist das gewiss nicht schlimm. Dann scheinen Dir aber derart viele Grundlagen zu fehlen, dass Du vielleicht mal einen Blick in ein Tutorial wie den Delphi-Crashkurs (https://www.delphi-treff.de/tutorial...phi-crashkurs/) werfen solltest. Dort werden die ersten Schritte schön erklärt. Danach kannst Du Deine Frage selbst beantworten.

kenshin3672 23. Okt 2016 09:26

AW: prozedur soll eine Button-Click prozedur aufrufen
 
Das bereits auf Seite 1 stehende und folgendes:

procedure TForm1.Button1Click(Sender: TObject);
begin
if Tform1.Button1Click(Sender)
then TForm1.nGewinn(parameter : integer) : integer;
end;


procedure TForm1.Button1Click;
begin
nGewinn;
end;

joa hat nicht wirklich was gebracht

Daniel 23. Okt 2016 09:31

AW: prozedur soll eine Button-Click prozedur aufrufen
 
Du warst dicht dran, hast aber offenbar die Meldungen des Compilers nicht gelesen, warum er Deinen Code ablehnt.
Deine Prozedur "nGewinn" erwartet einen Parameter - offenbar eine Zahl. Die musst Du ihr schon gönnen.

Delphi-Quellcode:
procedure TForm1.Button1Click;
begin
nGewinn( 42 );
end;

kenshin3672 23. Okt 2016 09:32

AW: prozedur soll eine Button-Click prozedur aufrufen
 
oh..jo stimmt :) danke

DeddyH 23. Okt 2016 09:34

AW: prozedur soll eine Button-Click prozedur aufrufen
 
Zitat:

Delphi-Quellcode:
if Tform1.Button1Click(Sender) then

Button1Click ist eine Prozedur und keine Boolean-Funktion. Außerdem ist es eine Instanzmethode und keine Klassenmethode, daher wird TForm1 nicht funktionieren, wenn schon Form1 (auch wie die aktuelle Instanzvariable auch heißen mag).

kenshin3672 23. Okt 2016 09:42

AW: prozedur soll eine Button-Click prozedur aufrufen
 
procedure TForm1.Button1Click(Sender: TObject);
begin
//anderes Zeugs;
begin
nGewinn(Zahl1,Zahl2,Zahl3,Zahl4);
end;
//noch mehr anderes Zeugs
end;

Hab es genauso übernommen und es funktioniert einwandfrei.


Das die erste Methode die ich versuchte nicht funktioniert hab ich dann auch gemerkt ;) bzw es war nur eine Überlegung meinerseits


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