![]() |
Boolesche Operatoren
Wie kann ich diese zwei Bedingungen mit AND verknüpfen
Delphi-Quellcode:
[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
while StrtoFloat(memo2.Lines[0])<0 and StrtoFloat(LStatus.Caption)<0 do
begin memo3.Clear; end; |
Re: Boolesche Operatoren
Delphi-Quellcode:
indem du sie vernünftig klammerst^^
while (StrtoFloat(memo2.Lines[0]) < 0) and (StrtoFloat(LStatus.Caption) < 0) do
|
Re: Boolesche Operatoren
Hallo Klaus, würdest Du künftig bitte die Delphi-Tags benutzen? Das kannst Du entweder über die Schaltfläche "Delphi-Code" oder mit den Tags [ delphi] und [ /delphi] (ohne Leerzeichen).
|
Re: Boolesche Operatoren
Ich habe es versucht und mein prozedur stürzt ab
ich muss es abbrechen |
Re: Boolesche Operatoren
stürzt ab? Was ist die genaue Fehlermeldung? Meist sagt diese schon aus welcher Fehler vorliegt.
|
Re: Boolesche Operatoren
Es sagt keine Fehlrmeldung aus sondern das ganze Programm stürzt ab, sodass ich nichts machen kann
|
Re: Boolesche Operatoren
Zeig doch mal den gesamten Quelltext der schuldigen Prozedur/Funktion.
|
Re: Boolesche Operatoren
Ich vermute mal, dass Du keine kopfgesteuerte Schleife sondern eine einfache Abfrage haben möchtest, probier es mal mit IF..THEN statt mit WHILE.
|
Re: Boolesche Operatoren
Es tut mir leid dass es so lang gedauert hat
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin while (Edit1.Text = '0') and (Edit1.Text= '0') do memo1.Visible:=false; end; procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:='0'; Edit2.Text:='0'; end; |
Re: Boolesche Operatoren
Wie mache ich das mit der if Schleife
|
Re: Boolesche Operatoren
Zeig mir zuerst das mit der while schleife
|
Re: Boolesche Operatoren
Delphi-Quellcode:
Das ist das Problem. Sobald er die while-schleife betritt hängt er dort bis sich was an Edit1.text ändert. Diese änderung bekommt er aber garnicht mit weil er eben in der Schleife hängt und deshalb nicht auf messages reagiert.
while (Edit1.Text = '0') and (Edit1.Text= '0') do
memo1.Visible:=false; Eine Lösungsmöglichkeit: Du machst das ganze mit einem Timer oder im OnKey*, OnChange-Ereigniss des Edits. (Btw: Es gibt keine "if-schleifen"...) |
Re: Boolesche Operatoren
kannst du mir ein Beispiel schicken ich hab keinen Plan wie ich das machen soll
|
Re: Boolesche Operatoren
IF..THEN-Abfrage, keine(!!!) Schleife:
Delphi-Quellcode:
WHILE..DO ist für Deine Zwecke nicht geeignet! Trotzdem mal ein Beispiel:
procedure TForm1.Button1Click(Sender: TObject);
begin if (Edit1.Text = '0') and (Edit1.Text= '0') then memo1.Visible:=false; end;
Delphi-Quellcode:
Ganz wichtig ist, dass sich die Bedingungen der kopfgesteuerten Schleife in der Schleife selber (oder in einer globalen Variable von außerhalb) ändern muss, ansonsten läuft diese Schleife bis zum Stack-Überlauf, was bei Deiner Version der Fall ist.
var
i: byte; begin i:= 0; while i< 10 do Inc(i); end; |
Re: Boolesche Operatoren
[OT]Warum sollte es bei einer Endlosschleife zu einem Stacküberlauf kommen? :gruebel:[/OT]
|
Re: Boolesche Operatoren
Wie würde es dann mit der if schleife aussehen
|
Re: Boolesche Operatoren
Zitat:
|
Re: Boolesche Operatoren
Zitat:
|
Re: Boolesche Operatoren
wie würde es dann mit der if schleife aussehen
|
Re: Boolesche Operatoren
Zitat:
Und die Lösung die du wohl eigentlich haben willst, wurde schon gepostet! |
Re: Boolesche Operatoren
Zitat:
Zitat:
Zitat:
<°)))o>< |
Re: Boolesche Operatoren
Schreib doch spaßeshalber mal ins OnChange der Edits
Delphi-Quellcode:
[edit] P.S.:
procedure TForm1.Edit1Change(Sender: TObject);
begin Memo1.Visible := (Edit1.Text <> '0') and (Edit2.Text <> '0'); end; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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