Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hilfe - Probleme mit Booleansch´n Variablen und Schleifen (https://www.delphipraxis.net/110206-hilfe-probleme-mit-booleansch%B4n-variablen-und-schleifen.html)

Marcel L. 14. Mär 2008 18:22


Hilfe - Probleme mit Booleansch´n Variablen und Schleifen
 
Hallo Liebe Gemeinde,
ich hab ne dringende Frage und ich weiß auch nicht warum es einfach nicht funzen will. Also folgendes Problem auf unserer Unit2 läuftn Männchen rum, sprich auf dem feld wo er steht is z.b. imag1.visible:=true. So wir brauchen bei 6 best. Feldern das eine boolsche Variable auf true gestezt wird, was heißen würde die Person steht jetz auf dem Feld:

Delphi-Quellcode:
if form2.image14.Visible=true then zimmer1:=true else zimmer1:=false;
if form2.image17.Visible=true then zimmer2:=true else zimmer2:=false;
if form2.image20.visible=true then zimmer3:=true else zimmer3:=false;
if form2.image23.visible=true then zimmer4:=true else zimmer4:=false;
if form2.image26.visible=true then zimmer5:=true else zimmer5:=false;
if form2.image31.visible=true then zimmer6:=true else zimmer6:=false;

So nun wird EIGENTLICH nur wenn die Person auf dem Feld steht das true aber iwie wills nich, also weiter gehts.

Delphi-Quellcode:
if (checkbox20.checked=true) and('Speisezimmer'=mordort) then
  begin if (checkbox20.checked=true) and (zimmer5=true) then drei:=true; end else begin showmessage('Du Stehst nicht im Speisezimmer!'); zimmer5:=false;abort; end;
  end
ISt verständlich wenn ihr den zusammmenhang nicht versteht also: Wir haben eine Checkbox und man darf eben nur das Feld mit dem Raum ankreuzen in dem die Person steht. SO nun is das Problem manchmal gehts, aber meist machts einfach normal weiter, was ja bedeutet in der schleife war die Boolsche auf True. Aber es kann ja eigentlich nicht sein...

Am Ende der Prozdur hab ich dann einfach wieder alles auf false..

ich weiß nciht ob es vertändlich genug geschildert wurde, da es doch ziemlich Komplex ist. Bei Fragen steh ich gerne zur Verfügung nur wir haben es recht eilig und ich weiß einfach nicht weiter, da es für mcih eigentlich korrekt ist...
Plz Help :wall: :wall:

DeddyH 14. Mär 2008 18:33

Re: Hilfe - Probleme mit Booleansch´n Variablen und Schleife
 
Zitat:

Delphi-Quellcode:
if form2.image14.Visible=true then zimmer1:=true else zimmer1:=false;
if form2.image17.Visible=true then zimmer2:=true else zimmer2:=false;
if form2.image20.visible=true then zimmer3:=true else zimmer3:=false;
if form2.image23.visible=true then zimmer4:=true else zimmer4:=false;
if form2.image26.visible=true then zimmer5:=true else zimmer5:=false;
if form2.image31.visible=true then zimmer6:=true else zimmer6:=false;

Dascha man gruuselich :-D
Das kann man auch kürzen (dadurch wird es IMHO leserlicher):
Delphi-Quellcode:
zimmer1 := form2.image14.Visible;
zimmer2 := form2.image17.Visible;
...
Und Eure Logik hab ich auch nach der ausschweifenden Beschreibung noch nicht verstanden. :gruebel:

mkinzler 14. Mär 2008 18:34

Re: Hilfe - Probleme mit Booleansch´n Variablen und Schleife
 
Man prüft eine Boolean-Variable nier auf True oder False sondern:
Delphi-Quellcode:
if Variable then
in deinem Fall kannst du auf die If-Abfrage verzichten:
Delphi-Quellcode:
zimmer1:=form2.image14.Visible;
Delphi-Quellcode:
drei := (checkbox20.checked) and (zimmer5);


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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