![]() |
Variabeln Problem!
Hallo Leute!
Also, ich habe folgendes Problem: Ich möchte, dass mein Programm, das aus einem Button und 3 Kreisen(Shapes die die Farbe wechseln sollen) besteht, immer wenn man auf den Button klickt ,1 zur Variable "VRunde" hinzurechnet. Desweiteren soll bei einem Klick auf den Button der Wert der "VRunde" überprüft werden, und wenn er 0,1,2,3 o.4 entspricht sollen je andere Dinge ausgeführt werden. Meine Fragen sind nun: -Wie weise ich der der Variable "VRunde", die ich im "var" Bereich als Integer bestimmt habe, einen Wert zu? Dieser Wert muss ausserhalb der Onclick Procedure stehen! - Wenn ich die Variable vergleichen will:
Delphi-Quellcode:
Wird mir angezeigt, dass ein Bolean Ausdruck in dieser Zeile erwartet wurde. Wie kann ich dieses Problem lösen? (Ja ich habe 2 Tutorials dazu gelesen, es aber nicht verstanden)
if Vrunde := 1
then (...) Und wie kann ich es schaffen, dass die Variable "VRunde" sobald sie den Wert 4 erreicht hat, wieder auf 0 gesetzt wird? Vielen Dank im Voraus! (Bin mir nicht sicher ob es das richtige Forum war, wenn nicht dann sorry!) |
Re: Variabeln Problem!
Code:
um werte zu vergleichen, muss man ein = statt := verwenden
if Vrunde = 1
then |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Tutorials und Kurse" nach "Object-Pascal / Delphi-Language" verschoben.
In der Tutorialsparte bitte keine Fragen posten. Danke :-D |
Re: Variabeln Problem!
Hallo!
Du solltest die Variable nicht in der procedure sondern in der Klasse deklarieren. Also einfach oben bei der Form nach private schreiben (im Interface):
Delphi-Quellcode:
Dann ist sie "immer" verfügbar.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, XPMan; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure Paint(Sender: TObject); private //*** HIER DIE VARIABLE DEKLARIEREN ***// Vrunde: Integer; public { Public declarations } end; var Form1: TForm1; Die Ereignisse kannst du mit einer If-Then-Else - Abfrage machen. Einfacher ginge es mit case. Bsp:
Delphi-Quellcode:
mit Case:
if Vrunde = 0 then
Aktion else if Vrunde = 1 then Aktion else if Vrunde = 2 then Aktion else if Vrunde = 3 then begin Aktionen; end else if Vrunde = 4 then begin Aktionen; Vrunde := 0; end;
Delphi-Quellcode:
Grüße
case Vrunde of
0: Aktion; 1: Aktion; 2: Aktion; 3: begin Aktionen; end; 4: begin Aktionen; Vrunde := 0; end; end; Faux |
Re: Variabeln Problem!
Zitat:
Delphi-Quellcode:
oder (IMO "schöner"):
Inc(VRunde);
if VRunde = 4 then VRunde := 0;
Delphi-Quellcode:
VRunde := (VRunde + 1) mod 4;
|
Re: Variabeln Problem!
Danke schonmal für die kompetente Hilfe!
Ihr seid echt klasse, das muss mal gesagt werden. Nun habe ich aber ein Problem: Ich kann ja den Typ der Variable unter "var" deklarieren. Nur den WERT der Variable, der 0 entsprechen soll, wo und wie deklariere ich den? Ich habe nun folgendes gemacht:
Delphi-Quellcode:
Ich bekomme als Fehlermeldung aber:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; SRot: TShape; SGruen: TShape; SGelb: TShape; BSchalten: TButton; procedure BSchaltenClick(Sender: TObject); private VSchalten:= 0; public { Public-Deklarationen } end; var Form1: TForm1; VSchalten: Integer; implementation {$R *.dfm} Zitat:
|
Re: Variabeln Problem!
Du kannst der Variablen in dem Abschnitt keinen Wert zuweisen. Nur einen Typen. Also so:
Delphi-Quellcode:
Und später, in einem Aufruf (z.B. OnCreate-Ereignis (Objektinspektor)) auf 0 setzen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; SRot: TShape; SGruen: TShape; SGelb: TShape; BSchalten: TButton; procedure BSchaltenClick(Sender: TObject); private VSchalten: integer; public { Public-Deklarationen } end; var Form1: TForm1; //VSchalten: Integer; <-- da nicht mehr implementation {$R *.dfm} edit: Aus dem Var-Abschnitt muss das raus. Du solltest die Variable aus dem var-Abschnitt in den private-Abschnitt verlegen. |
Re: Variabeln Problem!
Hai Zwocke,
malo hat es ja schon beschrieben. Ich würde das ganze dann so mache:
Delphi-Quellcode:
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } VSchalten: integer; procedure FormInit; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FormInit; end; procedure TForm1.FormInit; begin VSchalten:= 0; end; |
Re: Variabeln Problem!
Als Deklarieren bezeichnet man das definieren einer Variable. Also man legt fest, welchen Dateityp sie bekommt. Was du willst, ist ihr ein Wert zuweisen. Aber bevor du ihr einen Wert zuweisen kannst, solltest du sie vorher Deklarieren, damit Delphi auch weiß, ob das jetzt ein Integer, ein Real, oder was auch immer ist.
Also:
Delphi-Quellcode:
Erst jetzt kannst du ihr einen Wert zuweisen, jedoch musst du das in einer Prozedur oder Funktion machen. Also zB im OnCreate...
...
private VSchalten: Integer; ... Das geht dann mit:
Delphi-Quellcode:
Grüße
VSchalten := 0;
Faux Tipp: ![]() |
Re: Variabeln Problem!
Noch ein Nachtrag:
![]() ![]() Ersteres ist zum Lernen leichter, allerdings imho sehr viel Theorie. Nach den ersten Seiten der Grundlagen kannst du auch mal das eine oder andere Tutorial anschauen (Einsteigertutorials) ;) edit: :wall: Da hab ich glatt den Link im obigen Post überlesen :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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