AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variabeln Problem!

Ein Thema von Zwock · begonnen am 20. Sep 2005 · letzter Beitrag vom 21. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
Zwock

Registriert seit: 14. Sep 2005
Ort: Erlensee
20 Beiträge
 
#1

Variabeln Problem!

  Alt 20. Sep 2005, 19:36
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:
 if Vrunde := 1
then (...)
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)

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!)
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Variabeln Problem!

  Alt 20. Sep 2005, 19:51
Code:
if Vrunde = 1
then
um werte zu vergleichen, muss man ein = statt := verwenden
Oliver Hanappi
  Mit Zitat antworten Zitat
20. Sep 2005, 19:54
Dieses Thema wurde von "Sharky" von "Tutorials und Kurse" nach "Object-Pascal / Delphi-Language" verschoben.
In der Tutorialsparte bitte keine Fragen posten.
Danke
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Variabeln Problem!

  Alt 20. Sep 2005, 19:59
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:
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;
Dann ist sie "immer" verfügbar.

Die Ereignisse kannst du mit einer If-Then-Else - Abfrage machen. Einfacher ginge es mit case.

Bsp:

Delphi-Quellcode:
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;
mit Case:

Delphi-Quellcode:
case Vrunde of
  0:
      Aktion;
  1:
      Aktion;
  2:
      Aktion;
  3: begin
        Aktionen;
      end;
  4: begin
        Aktionen;
        Vrunde := 0;
     end;
end;
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Variabeln Problem!

  Alt 20. Sep 2005, 20:03
Zitat von Zwock:
Und wie kann ich es schaffen, dass die Variable "VRunde" sobald sie den Wert 4 erreicht hat, wieder auf 0 gesetzt wird?
Entweder
Delphi-Quellcode:
Inc(VRunde);
if VRunde = 4 then
  VRunde := 0;
oder (IMO "schöner"):VRunde := (VRunde + 1) mod 4;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Zwock

Registriert seit: 14. Sep 2005
Ort: Erlensee
20 Beiträge
 
#6

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:22
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:
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}
Ich bekomme als Fehlermeldung aber:

Zitat:
[Fehler] Unit1.pas(18): ',' oder ':' erwartet, aber ':=' gefunden
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#7

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:27
Du kannst der Variablen in dem Abschnitt keinen Wert zuweisen. Nur einen Typen. Also so:

Delphi-Quellcode:
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}
Und später, in einem Aufruf (z.B. OnCreate-Ereignis (Objektinspektor)) auf 0 setzen.

edit: Aus dem Var-Abschnitt muss das raus. Du solltest die Variable aus dem var-Abschnitt in den private-Abschnitt verlegen.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:28
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:29
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:
...
private
  VSchalten: Integer;
...
Erst jetzt kannst du ihr einen Wert zuweisen, jedoch musst du das in einer Prozedur oder Funktion machen. Also zB im OnCreate...

Das geht dann mit:
VSchalten := 0; Grüße
Faux

Tipp: http://www.dsdt.info/grundlagen/
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#10

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:30
Noch ein Nachtrag: www.dsdt.info/grundlagen oder www.dsdt.info/tutorials

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: Da hab ich glatt den Link im obigen Post überlesen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 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