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 Programm macht nicht was es soll!!! (https://www.delphipraxis.net/10344-programm-macht-nicht-es-soll.html)

SimOr 16. Okt 2003 14:28


Programm macht nicht was es soll!!!
 
Hi Leute, ich bins wieder, und...richtig, ich habe wieder ein neues problem für euch mitgebracht!!!
ich wollte ein prog machen, das je nach bedingung wieder mal images sichtbar macht.....
Die Bedingungen dafür sind, dass die kriterien mit and verknüpft seien sollen....

hier mal mein bisheriger Source Code.....es funzt fast alles, keine fehlermeldungen usw....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ImSun.visible=True And ImMoon.visible=False then // Falls Sonne
   begin                       //sichtbar und Mond unsichtbar
   ImSun.Visible:=False;       //Sonne unsichtbar und
   ImMoon.Visible:=true;       //Mond sichtbar machen
   end
else                           //Falls nicht
   begin
   if ImMoon.visible=True And ImSun.visible=False then //mond Sichtbar
      begin                    //und Sonne unsichtbar
      ImSun.Visible:=True;     //Sonne wird sichtbar
                                //Mond bleibt sichtbar
      end
   else                        //Falls nicht
      begin
      if ImMoon.visible=True And ImSun.visible=True then //Mond UND
         begin                 //Sonne sichtbar
         ImMoon.Visible:=False; //mond wird unsichtbar
                                //Sonne bleibt sichtbar
         end
      end
    end
end;

end.
Und jetzt kommt das Aber.......
Wenn der mond sichtbar und die sonne unsichtbar geworden sind sollten ja beide "scheinen"*g*...das bleibt aber aus! :(
Ich habe darüber nachgedacht und zur hilfe sogar diese schönen comments dahinter geschrieben, aber irgendwo in dem Source verweigert was seinen dienst....
Bitte postet was, falls ihr was wisst!!!
Simor

Christian Seehase 16. Okt 2003 14:39

Re: Programm macht nicht was es soll!!!
 
Moin Simor,

trenn' Dich mal davon boolsche Werte mit = zu prüfen.

Mach' mal aus visible = true einfach ein visible, und aus visible = false ein not visible.

z.B.

Delphi-Quellcode:
// aus
if ImSun.visible=True And ImMoon.visible=False then
// wird
if ImSun.visible And not ImMoon.visible then

SimOr 16. Okt 2003 14:46

Re: Programm macht nicht was es soll!!!
 
Danke für den Tipp, werd mich dran halten....
Ne lösung hat noch keiner oder wird erstmal copy & waste gemacht und ausprobiert 8)
Nadenn, bis nachher!

sakura 16. Okt 2003 14:58

Re: Programm macht nicht was es soll!!!
 
Hm, versuche mal folgenden Code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ImSun.visible and ImMoon.visible then
  begin                   //Sonne und Mond sind sichtbar
    ImMoon.Visible:=False; //mond wird unsichtbar
                           //Sonne bleibt sichtbar
  end
  else if ImSun.visible then
  begin                   //Sonne ist sichtbar
    ImSun.Visible:=False; //Sonne unsichtbar
    ImMoon.Visible:=true; //Mond sichtbar
  end
  else if ImMoon.visible then
  begin                   //Mond ist sichtbar
    ImSun.Visible:=True;  //Sonne wird sichtbar
                           //Mond bleibt sichtbar
  end
  else
  begin                   //Sonne und Mond sind unsichtbar
    ImSun.Visible:=True;  //Sonne sichtbar
    ImMoon.Visible:=true; //Mond sichtbar
  end
end;

end.
...:cat:...

Darty 16. Okt 2003 15:03

Re: Programm macht nicht was es soll!!!
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ImSun.Visible And not ImMoon.visible then // Wemm Sonne aber kein Mond
  begin                      
  ImSun.Visible:=False; // dann Sonne aus und Mond an    
  ImMoon.Visible:=true;      
  end
else
  begin
  if ImMoon.visible And Not ImSun.visible then // Wenn Mond aber kein Sonne
    begin
    ImSun.Visible:=True; // dann Sonne an und Mond bleibt an  
    end
  else                        
     begin
     if ImMoon.visible And ImSun.visible then // Wenn beide sichtbar
       begin                
       ImMoon.Visible:=False; // Dann Mond aus
       end
  end
end
end;

end.
So wie Du es gemacht hast passiert folgendes:
1. Wenn Sonne an und Mond aus, dann Sonne aus und Mond an.
2. Wenn Mond an und Sonne aus, dann Sonne an und Mond bleibt an.
3. Wenn Mond an und Sonne an, dann Mond aus und Sonne bleibt an.

Was ist jetzt genau Dein Problem ?

johny 16. Okt 2003 15:39

Re: Programm macht nicht was es soll!!!
 
Zitat:

"Programm macht nicht was es soll!!!"
Das haben Programme so an sich. Die machen nie das was sie SOLLEN, sondern was der Programmierer VORGIEBT ;)

Sehr aussagekräftig ist der Titel nicht. Ich würde dir ja gerne helfen, aber aus der Problembeschreibung werde ich auch nicht schlauer, als aus dem Titel.

Zitat:

Wenn der mond sichtbar und die sonne unsichtbar geworden sind sollten ja beide "scheinen"
Wie Darty bereits gesagt hat:

Zitat:

So wie Du es gemacht hast passiert folgendes:
1. Wenn Sonne an und Mond aus, dann Sonne aus und Mond an.
2. Wenn Mond an und Sonne aus, dann Sonne an und Mond bleibt an.
3. Wenn Mond an und Sonne an, dann Mond aus und Sonne bleibt an.

Was ist jetzt genau Dein Problem ?

himitsu 16. Okt 2003 16:26

Re: Programm macht nicht was es soll!!!
 
Das Prog macht genau das was du ihm gesagt hast.

den so hast du's geschrieben:
Delphi-Quellcode:
if ImSun.visible = True and ImMoon.visible = False then
if ImMoon.visible = True and ImSun.visible = False then
if ImMoon.visible = True and ImSun.visible = True then
und so setzt Delphi die Klammern:
Delphi-Quellcode:
if ((ImSun.visible = True) and ImMoon.visible) = False then
if ((ImMoon.visible = True) and ImSun.visible) = False then
if ((ImMoon.visible = True) and ImSun.visible) = TruE then

wenn du schon auf diese Weise schreiben willst, solltest du die Klammern nicht vergessen:
Delphi-Quellcode:
if (ImSun.visible = True) and (ImMoon.visible = False) then
if (ImMoon.visible = True) and (ImSun.visible = False) then
if (ImMoon.visible = True) and (ImSun.visible = True) then

Christian Seehase 16. Okt 2003 19:39

Re: Programm macht nicht was es soll!!!
 
Moin Simor,

die von mir vorgeschlagenen Änderungen führen ja dazu, dass es funktioniert ;-)

Luckie 16. Okt 2003 19:42

Re: Programm macht nicht was es soll!!!
 
Jetzt posten schon zwei Moderatoren in diesem Thread und erst dem dritten (ein aufgewecktes Kerlechen übrigens 8) ), fällt auf, dass die Überschrift nicht sehr aussagekräftig ist. :roll:

Also SimOr, beim nächsten mal bitte eine etwas aussagekräftigere Überschrift wählen, danke.

SimOr 16. Okt 2003 20:44

Re: Programm macht nicht was es soll!!!
 
Ok luckie, ich werd mich dran halten....
So, zu sllen anderen die mein problem nicht verstanden haben......

1. wenn die sonne scheint ist der mond aus...
2. danach wird die sonne unsichtbar und der Mond sichtbar.
3. danach SOLLTEN beide sichtbar sein, aber das war eben in meinem ersten source nicht der Fall...
der mod blieb sichtbar und die sonne wurde nicht sichtbar....und egal wie oft ich geklickt habe, der
mond blieb beharlich sichtbar und die sonne verweigerte ihren "dienst"!


Heute komm ich nicht mehr dazu das ganze zu compiliern, aber ich werde morgen posten obs bei mir gefunzt hat....sollte aber :!:

Bis dann, g8


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