Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe bei If then else (https://www.delphipraxis.net/133978-hilfe-bei-if-then-else.html)

Asatru 13. Mai 2009 09:11


Hilfe bei If then else
 
Ich habe folgendes Problem. Ich habe in einer schleife extra noch eine If then else abfrage drin. Nur komisch ist, wenn die Aussage unwahr ist macht er alles wie er sollte, aber im nächsten Loop ist die Aussage dann Wahr, aber trotzdem werden die Befehle von Else ausgeführt!

Habsch irgendwie ein Denkfehler?

Delphi-Quellcode:
  if RadioButton2.Checked then
    begin
      for i := 1 to 2 do
        begin
          {anweisung}

          if xxx and xxy then
                begin
                  if xxx = Text then
                    begin
                     {Anweisung}
                    end
                  else
                      PostMessage(handle4, WM_KEYUP, Integer('P'), 0);
                     {Selbe Anweisung wie bei wahr}
                end;
        end;
    end;
[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
[edit=mkinzler] Mfg, mkinzler[/edit]

DeddyH 13. Mai 2009 09:13

Re: Hilfe bei If then else
 
Zitat:

Zitat von Asatru
aber im nächsten Loop ist die Aussage dann Wahr

Bist Du Dir da ganz sicher?

mkinzler 13. Mai 2009 09:15

Re: Hilfe bei If then else
 
Da ich nich weiss, was genau gemacht wird, kann ich zum eigentlichen Problem nichts sagen aber schreibe besser

Delphi-Quellcode:
if xxx <> Text then
    PostMessage(handle4, WM_KEYUP, Integer('P'), 0);
{Anweisung}

quendolineDD 13. Mai 2009 09:17

Re: Hilfe bei If then else
 
Dann hättest du die Abfrage lediglich negiert und müsstest dann deinen vorherigen Else-Block mit dem obigen vertauschen.
Edit:
und wenn bei Wahr und Falsch jeweils selbiger Code steht, kannst du diesen auch aus den Blöcken der IF-Abfrage herausnehmen.

Asatru 13. Mai 2009 09:27

Re: Hilfe bei If then else
 
Ok, dann geh ich mal näher ins Detail

Am Anfang werden handles und texte von einer Anwendung geholt Es wird geprüft ob eine Combobox ein bestimmten text hat

Sollte der Text der Combobox eben grad xxx soll er eben seine anweisungen machen

wenn nicht, kommt dann else ins spiel und drückt die taste P um das bestimmte wort zu bekommen und dann weiterzumachen.
Am Anfang ist der Wert immer unwahr und er macht im ersten zug ihm eben war aber bei der wiederholung nutz er wieder else


selbe ist wenn

Delphi-Quellcode:
if xxx and xxy then
                begin
                  if xxx = Text then
                    begin
                     {Anweisung}
                    end
                  if xxx <> Text then
                    begin
                     PostMessage(handle4, WM_KEYUP, Integer('P'), 0);
                     {Anweisung}
                    end;
drückt er jedesmal P obwohl der text eigentlich wahr ist!

mkinzler 13. Mai 2009 09:32

Re: Hilfe bei If then else
 
Gut dass du die Verbesserungsvorschläge ( auch wenn mehrmals der selbe komtt, einfach ignorierst).
Da wir nicht wissen, was der Code im Detail macht, wäre eine hilfreiche Antwort Zufall oder Glück

Asatru 13. Mai 2009 09:39

Re: Hilfe bei If then else
 
lÖL hab doch gesagt das er am anfang eben Handles (combobox und textbox) von einer anwendung holt. wennn er diese Handles findet soll er eben Abgleichen ob der text von der bsp Combobox wahr ist. Wenn ja dann soll er eben sagen wir nun angeben. Wenn unwahr ist drückt er eben den Buchstaben P in der Combobox.

In der Combobox gibt es 2 wörter die mit P anfangen

Private und Party am anfang steht meistens die Combobox auf normal, deshalb ist der erste was das prog macht P drücken und er kommt uff private (Else anweisung)

im nächsten loop hingegen musste er ja feststellen das Combobox auf privat stehen und somit die Anweisung vor else ablaufen, das macht er aber nicht, er erkennt sie immer als unwahr an!

DeddyH 13. Mai 2009 09:42

Re: Hilfe bei If then else
 
Prüfe doch Deine Aussage ("im 2. Durchlauf ist das immer wahr") erst einmal nach, ich glaube das nämlich nicht.

Asatru 13. Mai 2009 09:46

Re: Hilfe bei If then else
 
Ich glaube du hast recht, da er ja vom ersten lauf den Getwintext noch im string selbst drin hat meinst du das damit?

Tyrael Y. 13. Mai 2009 09:47

Re: Hilfe bei If then else
 
Wahrscheinlich ein Problem mit case-sensitiv...rate ich mal so in den Raum rein

Delphi-Quellcode:
if SameText(ComboBox999.Text, meinVergleichstext) then
begin
  ...
end
else
begin
  ...
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Seite 1 von 3  1 23      

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