Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 1 button mehrere befehle nacheinander (https://www.delphipraxis.net/97859-1-button-mehrere-befehle-nacheinander.html)

Hereafter 17. Aug 2007 12:36


1 button mehrere befehle nacheinander
 
hi leute

bin wie gesagt noch n blutiger anfänger :wall: und deshalb sry dass ich euch mit solchen fragen nerven muss(wird vermutlich öfter vorkommen weil unserer lehrer net erklären kann :roll: ).

naja hab folgende kleines problem(die ergebniss zur suche hier im forum betrugen immer ca.500-3000^^):
ich wollte einem button beim ersten klicken eine funktion zuweisen(einen anderen text anzeigen).hat geklappt , läuft prima.
nun soll bei einem 2. klicken der text stehen bleiben und ein externes programm ausgeführt werden(wie das geht weiss ich).
aber ich weiß net wie ich den 2. befehl einfügen soll.

könnt euch den code ja mal anschauen.ich benutze delphi 2005 personal.

würde mich über antwrten sehr freuen.
thx im vorraus

mfg Hereafter

code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);

    private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Visible:=false;
memo2.Visible:=true;

winexec('C:\WINDOWS\explorer.exe', SW_SHOWNORMAL);
end;
end.

sirius 17. Aug 2007 12:39

Re: 1 button mehrere befehle nacheinander
 
Schau dir nochmal den Inhalt der geposteten Datei an! Wir bräuchten schon die entpsrechende Unit.

Edit: Laut der DPR wäre es dann Unit1.pas

Nikolas 17. Aug 2007 12:41

Re: 1 button mehrere befehle nacheinander
 
es würde helfen, wenn du den fraglichen Code hier postest. Die Arbeit das Projekt runterzuladen und zu suchen, ist wohl deutlich größer, als dir den Fehler zu sagen.

eine Möglichkeit wäre z.B. eine Zählervariable zu nehmen und damit zu zählen, wie oft der Button geklickt wurde und dann eine einfache If-Abfrage einbauen.

DeddyH 17. Aug 2007 12:41

Re: 1 button mehrere befehle nacheinander
 
Wenn ich das richtig verstanden habe, ist das doch eine einfache Verzweigung. Alles was Du noch brauchst, ist ein Kriterium zur Unterscheidung, ob der Button bereits einmal angeklickt wurde. Das kann eine Bool' sche Variable sein oder etwa der geänderte Text, sofern dieser eindeutig ist. Mal in Pseudo-Delphi:
Delphi-Quellcode:
if Kriterium then
  Machwas1
else
  Machwas2;

Hereafter 17. Aug 2007 13:01

Re: 1 button mehrere befehle nacheinander
 
so hba nu rausbekommen wie man den code postet sry^^.
hab aba ken plan wie ich an dieses kriterium herankommen soll oder wie das aussehen muss...
und wie zähle ich wie oft der button geklickt wurde?

Phoenix 17. Aug 2007 13:05

Re: 1 button mehrere befehle nacheinander
 
Das musst Du selber als Variable des Formulars deklarieren.

z.B.
Delphi-Quellcode:
private
  FKlickAnzahl: Integer;
Im Create-Event des Formulars musst Du die dann initialisieren. Also FKlickAnzahl := 0;

Im ButtonClick-Event fragst Du dann ab:
Delphi-Quellcode:
if FKlickAnzahl = 0 then
begin
  // tu was beim ersten Klick
  Inc(FKlickAnzahl); // Erhöhe Klickanzahl
end
else if KlickAnzahl = 1 then
begin
  // tu was beim zweiten Klick
  Inc(FKlickAnzahl); // Erhöhe Klickanzahl
end
else
begin
  // tu was beim letzten klick
  FKlickAnzahl := 0; // wieder zurücksetzen
end;
Oder so ähnlich...

DeddyH 17. Aug 2007 13:06

Re: 1 button mehrere befehle nacheinander
 
Ich habe mal eine Variable "WasClicked" eingeführt.
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private-Deklarationen }
    WasClicked: Boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WasClicked := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if WasClicked then
    winexec('C:\WINDOWS\explorer.exe', SW_SHOWNORMAL)
  else
    begin
      memo1.Visible:=false;
      memo2.Visible:=true;
    end;
  WasClicked := true;
end;

end.
P.S.: WinExec sollte man nicht mehr benutzen, da veraltet.

sirius 17. Aug 2007 13:15

Re: 1 button mehrere befehle nacheinander
 
Ich würde mal sagen, bevor du (wie angedroht) noch weitere solche Fragen stellst: Hier gibts ein paar Crashcourse. :zwinker:

Hereafter 17. Aug 2007 13:40

Re: 1 button mehrere befehle nacheinander
 
nu werfen sich mir neue fragen auf :wie benutze ich denn dann sachen wie shellexec oder createprogres?
wie bekomme ich den/das create-event des formulars in den quellcode(bei buttons un so geht das ja mit doppelklick)?

und von den tutorials hab ich mir schon n paar angeschaut war aba nich das richtige drin

trotzdem schonmal vielen dank an alle

Angel4585 17. Aug 2007 13:43

Re: 1 button mehrere befehle nacheinander
 
neue Frage => Neuer Thread ;)


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