Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   if Schleife? (https://www.delphipraxis.net/148974-if-schleife.html)

Sanguis 11. Mär 2010 19:05


if Schleife?
 
Hallo,

ich wurde gebeten, zu dem Thema einen neuen Thread zu eröffnen.
Code ist folgender:
Delphi-Quellcode:
Ini := TIniFile.Create(form1.programmdirectory.Caption+'..\game.ini');
Ausgelesen := Ini.ReadString('Global','LangFile','' ); //1
stream := Ini.ReadString('Global', 'Stream', '');
music := Ini.ReadInteger('Global', 'Music', 0);
slot := Ini.ReadString('Global', 'Slot', '');
musik := Ini.ReadString('Global', 'Musik', '');
firststart := ini.ReadInteger('Global', 'firststart', 0);

form1.Caption := IntToStr(firststart);
firststart := 0;
if(firststart = 0) then begin
if MessageDlg('Do you want to play Backgroundmusic ?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then
begin
 Musik :='1';
 ini.WriteString('Global', 'Musik', '1');
 ini.WriteString('Global', 'firststart', '0');
 end
 else begin
 Musik:='0';
  ini.WriteString('Global', 'Musik', '0');
  ini.WriteString('Global', 'firststart', '0');
 end;
end;
 Ini.Free;
Das Problem ist, die Variable "firststart" wird einfach übergangen. Die dazugehörige if Schleife, macht einfach nichts und ich weiß nicht wieso. Haltepunkte in der if Schleife, funzen nicht.

Gruß,
Andreas

Wolfgang Mix 11. Mär 2010 19:08

Re: if Schleife?
 
If-Schleifen gibt es nicht!

DeddyH 11. Mär 2010 19:09

Re: if Schleife?
 
Setz doch mal den Haltepunkt VOR die If-Schleife :mrgreen:. Wo geht es dann lang? Wird evtl. noch ein Ereignis ausgelöst?

haentschman 11. Mär 2010 19:17

Re: if Schleife?
 
[OT]
Zitat:

If-Schleife...
...war das nicht :cheers: für alle ?

:cheer:
[/OT]

wo und wie hast du firststart deklariert ?

fatalerror 11. Mär 2010 19:33

Re: if Schleife?
 
Bitte formatiere deinen Quelltext korrekt!

Hier dein Problem:
du liest firststart aus der Ini-Datei aus und definierst anschliessend firststart:= 0


Delphi-Quellcode:
  firststart := ini.ReadInteger('Global', 'firststart', 0);
  form1.Caption := IntToStr(firststart);
  firststart := 0; // diese Zeile entfernen

haentschman 11. Mär 2010 19:36

Re: if Schleife?
 
:gruebel: trotzdem sollte firststart 0 sein und die Bedingung erfüllt sein.

Sanguis 11. Mär 2010 19:37

Re: if Schleife?
 
Hallo,

firststart ist in einer ini Datei definiert. Vor der if Schleife (ich bleib dabei, das ist ne Schleife fg) steht aber auch noch firststart:=0;... ist ein Integer Feld. Der Haltepunkt auf dieser Zeile funktioniert, das Programm hält an.

Gruß,
Andreas

Sanguis 11. Mär 2010 19:40

Re: if Schleife?
 
Zitat:

Zitat von haentschman
:gruebel: trotzdem sollte firststart 0 sein und die Bedingung erfüllt sein.

Eben... das ist das, was ich nicht kapiere. firstart := 0; hab ich nur zum testen reingesetzt.

omata 11. Mär 2010 19:43

Re: if Schleife?
 
Zitat:

Zitat von Sanguis
...ich bleib dabei, das ist ne Schleife...

lernresistent?

Du willst also gar nichts dazulernen? Dann brauchen wir dir ja eigentlich auch nicht weiterhelfen.

haentschman 11. Mär 2010 19:43

Re: if Schleife?
 
Vermutung:
In deinem restlichen Quelltext fehlt irgendwo ein "end". Dadurch kommen machmal komische Programmabläufe zustande.
Formatiere deinen gesamten Quelltext mal etwas übersichtlicher und kontrolliere die begin/end Blöcke.

:hi:

Beispiel um die Zusammengehörigkeit der begin/end besser zu sehen, da untereinander
Delphi-Quellcode:
form1.Caption := IntToStr(firststart);
firststart := 0;
if(firststart = 0) then
  begin
    if MessageDlg('Do you want to play Backgroundmusic ?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then
      begin
        Musik :='1';
        ini.WriteString('Global', 'Musik', '1');
        ini.WriteString('Global', 'firststart', '0');
      end
        else
          begin
            Musik:='0';
            ini.WriteString('Global', 'Musik', '0');
            ini.WriteString('Global', 'firststart', '0');
          end;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 Uhr.
Seite 1 von 5  1 23     Letzte »    

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