![]() |
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] |
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. |
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. |
Re: 1 Button - mehrere anweißungen
Zitat:
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...) |
Re: 1 Button - mehrere anweißungen
Statt einer globalen Variable
Delphi-Quellcode:
ist es besser eine so genannte Feldvariabel zu nutzen
interface
... var MyGobalVariable: TIrgendEinTyp; ... implementation ...
Delphi-Quellcode:
Die globale Variable ist die ganze Zeit verfügbar, vom Start des Programs bis zum Beenden.
interface
... type TMeineKlasse = class private MeineFeldVariable: TIrgendEinTyp; public ... implementation ... 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. |
Re: 1 Button - mehrere anweißungen
Für Sharkys Variante c) in Verbindung mit einem selbst definierten Datentyp findest Du auch
![]() |
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... |
Re: 1 Button - mehrere anweißungen
Also mach es dir einfach indem du
Delphi-Quellcode:
Das sollte dir als ansatz reichen...
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; |
Re: 1 Button - mehrere anweißungen
Zitat:
|
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 01:31 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