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 2 von 3     12 3      
Benutzerbild von faux
faux

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:31
Zitat von malo:
allerdings imho sehr viel Theorie.
Äähmmm... Wie willst du sonst jemanden erklären, wie man Variablen Deklariert, etc?
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
 
#12

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:34
Zitat von faux:
Zitat von malo:
allerdings imho sehr viel Theorie.
Äähmmm... Wie willst du sonst jemanden erklären, wie man Variablen Deklariert, etc?
Naja, in einem Tutorial lernt man das imho schöner an einem praktischen Beispiel. Jedenfalls meistens... manche Dinge müssen allerdings theoretisch durchgenommen werden, aber die Grundlagen gehen nach einiger Zeit doch schon etwas tiefer, und da könnte man sich das Wissen ein wenig geschickter (imho) durch praktische Beispiele aneignen, bzw. besser einprägen. Reine Theorie ist halt auch nicht schön
  Mit Zitat antworten Zitat
Zwock

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:39
O.k! Habe das soweit verstanden, werde mich auch mit der empfohlenen "Lektüre" beschäftigen.
Nun, da das Programm läuft, ist mir jedoch aufgefallen, dass ich einen grundlegenden Denkfehler gemacht haben muss.

Ich erkläre schnell die Aufgabenstellung:

Wir sollten mit Shapes 3 Kreise machen, die als Ampel fungieren. Daneben >EIN< Button, der das Umschalten der Ampel steuert. Also wenn man das erste Mal klickt soll sie Rot werden, beim Zweiten mal dann Rot + Gelb, dann Grün, schließlich Gelb und zuletzt wieder Rot. Pro Klick soll die Änderung auftreten.

Mein Gedankengang: Ich lasse Pro Klick die Variable VSchalten um 1 Steigen, bei 0 wird Rot angezeigt, bei 1 Rot+Gelb, bei 2 dann Grün, bei 3 soll nur Gelb angezeigt werden, und schliesslich soll die Variable wieder auf 0 gesetzt werden, sie würde dann wieder Rot erscheinen und alles würde von vorne beginnen. Hier mein Code:

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;


implementation

{$R *.dfm}



procedure TForm1.BSchaltenClick(Sender: TObject);


 begin
 VSchalten:= 0;
 inc(VSchalten);

  if VSchalten= 0 then
   begin
    SRot.Brush.Color := clred;
    SGelb.Brush.Color := clblack;
    SGruen.Brush.Color := clblack;
   end

  else if VSchalten= 1 then
   begin
    SRot.Brush.Color := clred;
    SGelb.Brush.Color := clyellow;
    SGruen.Brush.Color := clblack;
   end

 else if VSchalten= 2 then
  begin
   SRot.Brush.Color:= clblack;
   SGelb.Brush.Color:= clblack;
   SGruen.Brush.Color:= clgreen;
  end

  else if VSchalten= 3 then
   begin
    SRot.Brush.Color:= clblack;
    SGelb.Brush.Color:= clyellow;
    SGruen.Brush.Color:= clblack;
   end

   else if VSchalten= 4 then
    VSchalten := 0;
end;

end.
Jedoch zeigt er mir beim ersten klick Rot, dann blitzschnell RotGelb an, und bei weiteren Klicks geschieht garnichtsmehr... Vielleicht ist es ein bisschen sehr viel verlangt, aber kann mir da jemand weiterhelfeb?
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:49
Hai Zwock,

zum einen: Die ganzen else im Code brauchst Du nicht. Dann: Du darfst deine Variable in dem OnClick des Buttons nich immer auf 0 setzen! Sonst kann sie ja nie über den Wert 1 kommen. Und zu guter letzt: Setze die Abfrage ob die Variable den Wert 4 hat ganz an den Anfang (unter das INC(VSchalten)).

[Edit]Sorry, das mit dem "es fehlt ein End; war für etwas anderes als diesen Thread bestimmt
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
 
#15

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:49
Bist du dir bewusst, dass wenn die Variable 4 ist, du zwei Klickst brauchst, bis du eine Verändernung sehen kannst?
Denn erst wird sie auf 0 gesetzt, und erst beim nächsten Klick, wird dann die Aktion durchgeführt.

Du solltest nicht mit if vschlaten = 0 sondern mit = 1 beginnen, da du ja den Wert 0 mit inc() auf 1 erhöhst.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Zwock

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:52
JA!
Genau das meinte ich ja vorhind mit dem "Sie darf nicht in der Onclick Procedure stehen", direkt in meinem ersten Post, denn genau davon ging ich aus. Nur wo soll ich die Definiton stattdessen hinsetzen?
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:54
Zitat von Zwock:
JA!
Genau das meinte ich ja vorhind mit dem "Sie darf nicht in der Onclick Procedure stehen", direkt in meinem ersten Post, denn genau davon ging ich aus. Nur wo soll ich die Definiton stattdessen hinsetzen?
Ins OnCreate (Doppelklick in die Form). Das wird aufgerufen, wenn die Form erzeugt wird.
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 Sharky
Sharky

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 21:54
Hai Zwock.

Immer schön alle Antworten lesen die Du bekommst!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Zwock

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 22:00
Vielen Dank!
Ich habs endlich auf die Reihe bekommen!
Ich werd mich direkt mit der empfohlenen Lektüre beschäftigen, um euch nicht weiter mit solchen Anfänger-Fragen belästigen zu müssen

EDIT:

Und ich habe das Problem mit dem 2x Klicken, um die Ampel wieder auf Rot zu stellen in den Griff bekommen. Anstatt die Variable nach erreichen des Wertes von 5 zurückzusetzen, setze ich sie nun einfach direkt zurück nachdem sie den Wert 4 erreicht hat, also in der Else-If Schleife von Gelb. (1=rot, 2= rot + gelb, 3=grün, 4=gelb + zurücksetzen der Variable)
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

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

Re: Variabeln Problem!

  Alt 20. Sep 2005, 22:10
An deiner Stelle, würde ich das mit den Ampeln lieber sein lassen, das artet nur in Arbeit aus...
Ich hab auch sowas "nur aus Spass" gemacht. Daraus ist ein Programm geworden, dass vom Benutzer eingestellte Ampelreihen abarbeitet und anzeigen kann. Mit Zeit-Leiste, etc...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:26 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