Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 1 Button - mehrere anweisungen (https://www.delphipraxis.net/144680-1-button-mehrere-anweisungen.html)

sebiskus 14. Dez 2009 11:17


1 Button - mehrere anweisungen
 
Hallo

Ich hab einen Button und 3 Lampen, die in einer Reihe aufgestellt sind
(die Lampen sind Images)

Beim 1.Klick auf den Button sollen alle 3 Lampen leuchten.
Beim 2.Kilck nur die rechte und die Linke.
Beim 3.Klick soll nur die mittlere Lampe leuchten
Beim 4.Klick soll keine Lampe mehr leuchten
und dann wieder von vorn.

Das Problem: wir dürfen nur 1 Button benutzen!!!

Hab überhaupt keine Ahnung wie das gehen soll

Hoffe jemand kann mir helfen

gruß sebiskus

[edit=Phoenix]Rechtschreibfehler im Titel korrigiert. *brr* Mfg, Phoenix[/edit]

Tyrael Y. 14. Dez 2009 11:22

Re: 1 Button - mehrere anweißungen
 
Nicht gleich sagen, daß man es nicht kann.
Erst einmal überlegen was gewollt ist.

Du musst also dir merken, wie oft schon geklickt wurde.
Das heißt also du brauchst ne Variable die du bei jedem Klick um eins erhöhst.

Beim Klick guckst du dir diese Variable an und je nach Zutand zeigst du etwas an.

Geh langsam an die Aufgabe dran und dann wird es schon.
Poste deine Zwischenergebnisse hier und es wird dir dann auch wieder geholfen.

Sharky 14. Dez 2009 11:23

Re: 1 Button - mehrere anweißungen
 
Hai sebiskus,

erst einmal: "Herzlich Willkommen in der Delphi-PRAXiS" :hello:

Da gibt es verschiedene Ansätze.

a) In einer globalen Variablen (schlecht! sollte man immer vermeiden) zählst Du die "klicks" mit.
b) Du verwendest dafür die Eigenschaft Tag des Button.
c) Eine member Variable der Form (oder gleich ein Property) dafür verwenden.

Lumpiluk 14. Dez 2009 11:43

Re: 1 Button - mehrere anweißungen
 
Zitat:

a) In einer globalen Variablen (schlecht! sollte man immer vermeiden) zählst Du die "klicks" mit.
Warum? Ich hätte es genauso gemacht... :oops:
Ehrlich gesagt, habe ich schon oft mit globalen Variablen gearbeitet.


P.S.: Soweit ich weiß, haben normale Buttons nur einen Weiß- oder Grauton ;) (Sry, schlechter Witz...)

Tyrael Y. 14. Dez 2009 12:09

Re: 1 Button - mehrere anweißungen
 
Statt einer globalen Variable
Delphi-Quellcode:
interface
...
var MyGobalVariable: TIrgendEinTyp;
...
implementation
...
ist es besser eine so genannte Feldvariabel zu nutzen
Delphi-Quellcode:
interface
...
type
  TMeineKlasse = class
  private
    MeineFeldVariable: TIrgendEinTyp;
  public
...
implementation
...
Die globale Variable ist die ganze Zeit verfügbar, vom Start des Programs bis zum Beenden.
Die Feldvariable ist nur solange gültig und zugreifbar, solange es das Objekt zu dem es gehört existiert.
Dadurch ist diese Variable besser unter Kontrolle zu halten.

DeddyH 14. Dez 2009 12:10

Re: 1 Button - mehrere anweißungen
 
Für Sharkys Variante c) in Verbindung mit einem selbst definierten Datentyp findest Du auch hier ein Beispiel (da geht es um eine Ampel, das ist ja ganz ähnlich).

Die Muhkuh 14. Dez 2009 12:16

Re: 1 Button - mehrere anweißungen
 
:shock:

Jungens, er will hier keine Raketentechnik in sein Programm einbauen. Er will einfach nur was zählen und je nach Zahl ein paar Lämpchen ein- und ausschalten.

Für den Zweck reicht doch eine globale Variable, meinetwegen noch ein privates Feld. Aber eigener Datentyp etc. ist doch deutlich übertrieben an dieser Stelle. Er scheint ja mit der jetzigen Aufgabe total überfordert und ihr kommt mit sowas...

thepaine91 14. Dez 2009 12:26

Re: 1 Button - mehrere anweißungen
 
Also mach es dir einfach indem du

Delphi-Quellcode:
private
  modus: integer;

procedure form1.FormCreate(Sender: Tobject);
begin
  modus := 0;
end;

procedure form1.Button1Click(Sender: Tobject);
begin
  case modus of
    0:
    1:
    2:
    3:
  end;
end;
Das sollte dir als ansatz reichen...

Luckie 14. Dez 2009 13:07

Re: 1 Button - mehrere anweißungen
 
Zitat:

Zitat von thepaine91
Das sollte dir als ansatz reichen...

Also wenn das nur der Ansatz ist...

thepaine91 14. Dez 2009 14:24

Re: 1 Button - mehrere anweißungen
 
Naja Luckie bissel case und ne Variable sind für mich noch ein Ansatz. ^^ Wenn auch hart an der Grenze.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr.
Seite 1 von 2  1 2      

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