![]() |
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. |
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 |
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. |
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; |
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? |
Re: 1 button mehrere befehle nacheinander
Das musst Du selber als Variable des Formulars deklarieren.
z.B.
Delphi-Quellcode:
Im Create-Event des Formulars musst Du die dann initialisieren. Also FKlickAnzahl := 0;
private
FKlickAnzahl: Integer; Im ButtonClick-Event fragst Du dann ab:
Delphi-Quellcode:
Oder so ähnlich...
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; |
Re: 1 button mehrere befehle nacheinander
Ich habe mal eine Variable "WasClicked" eingeführt.
Delphi-Quellcode:
P.S.: WinExec sollte man nicht mehr benutzen, da veraltet.
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. |
Re: 1 button mehrere befehle nacheinander
Ich würde mal sagen, bevor du (wie angedroht) noch weitere solche Fragen stellst:
![]() |
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 |
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