![]() |
problem bei checkbox und bedingungen?ausführung falsch
Habe hier mein programm und wenn checkbox 1 aktiviert ist und die varable a über oder gleich 90 ist soll er ansatt ein item aus lisbox1 ein alle einfügen das tut er aber nicht
und bei der zweiten bedingung also wenn checkbox2 aktiviert ist soll er wen der wert der variable meh über 80 ist ein listbox1 item plus ein weiteres hinschreiben das tut er aber nur wenn der radiobutton1 ausgewählt wurde und nicht bei radiobutton 2 oder 3 bitte helft mir
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var mmh,meh,a:integer; begin meh:= Random(100) + 1; mmh:= Random(100) + 1; a:= Random (100)+1; If (checkbox1.Checked) and (a>=90) then If RadioButton1.Checked Then If (mmh <= 100) and (mmh >25) Then label17.Caption:='Wer muss Trinken? ' +'Alle'+ ' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton2.Checked Then If (mmh >= 50) Then label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton3.Checked Then If mmh > 75 Then label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + 'Alle' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If (checkbox2.Checked=false) or (meh < 80) then If RadioButton1.Checked Then If (mmh <= 100) and (mmh >25) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton2.Checked Then If (mmh >= 50) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton3.Checked Then If mmh > 75 Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If Checkbox2.Checked Then if meh >= 80 then If RadioButton1.Checked Then If (mmh <= 100) and (mmh >25) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton2.Checked Then If (mmh >= 50) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton3.Checked Then If mmh > 75 Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If (checkbox2.Checked=false) or (meh < 80) then If RadioButton1.Checked Then If (mmh <= 100) and (mmh >25) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton2.Checked Then If (mmh >= 50) Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; If RadioButton3.Checked Then If mmh > 75 Then label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' else label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end |
Re: problem bei checkbox und bedingungen?ausführung falsch
Hi, und herzlich willkommen in der Delphi Praxis :dp:
Was dein Problem angeht, so denke ich liegt es einfach in dem schlechten Codestil. Nimm es nicht böse / falsch auf, aber mit dem Code den du hier gepostet hast sind Fehler (auch in anderen Programmen) nicht unwahrscheinlich. Es gibt ein paar schöne Werke zum Thema guter Codestil und natürlich gibt es auch für Delphi eine gewisse Konvention (und auch bei Delphi wird das gerne ignoriert), die besagt dass einem if immer ein begin end folgen sollte. Ist gar nicht so viel arbeit und erspart eine Menge Ärger! Sorry, werde jetzt nicht deinen gesamten Code durchgehen, aber hier ein einfaches Beispiel wie du es umformen solltest, dann findest du bestimmt schnell deinen Fehler:
Delphi-Quellcode:
So ist immer ganz klar, wo welcher Block endet. Ansonsten würde ich dir dringend zu besseren Namen für die Variablen raten, auch dass macht es leichter Fehler zu entdecken. Aber wie gesagt, nicht falsch auffassen, sind nur Anregungen und (fast?) alle haben mal ähnlichen Code erzeugt.
var mmh,meh,a:integer;
begin meh:= Random(100) + 1; mmh:= Random(100) + 1; a:= Random (100)+1; If (checkbox1.Checked) and (a>=90) then begin // alles was hier folgt, wird nur geprüft wenn obere Bedingung erfüllt ist. // ohne das begin wird nur die nächste Bedingung geprüft If RadioButton1.Checked Then begin If (mmh <= 100) and (mmh >25) Then begin label17.Caption := ....; end // If (mmh <= 100) and (mmh >25) else begin label17.Caption := ....; end; // if not ((mmh <= 100) and (mmh >25)) end; // If RadioButton1.Checked // Wäre ohne erstes begin immer gecheckt worden, auch wenn Checkbox1.Checked = false If RadioButton2.Checked Then begin If mmh >= 50 Then begin label17.Caption := ...; end // If mmh >= 50 else begin end; // if not (mmh >= 50) end; // If RadioButton2.Checked .... end; // if (checkbox1.Checked) and (a>=90) Gruß Der Unwissende |
Re: problem bei checkbox und bedingungen?ausführung falsch
Hai delphineuling88,
wie der Unwissende schon sagte solltest Du als erstes einmal einen gutlesbaren ![]() Ausserdem würde ich nicht immer wieder die Text für das Label in einer Zeile setzen. Wenn Du das ganze auf Teilstrings (ts) aufteilst und dann ganz zumm schluss die Caption des Labels setzt ist das alles viel schlanker. Eine mögliche Lösung wäre zum Beispiel so:
Delphi-Quellcode:
var mmh, meh, a: integer;
ts1: string; ts2: string; ts3: string; ts4: string; ts5: string; begin meh := Random(100) + 1; mmh := Random(100) + 1; a := Random(100) + 1; ts1 := 'Alle '; ts2 := 'müssen '; ts3 := ''; ts4 := ''; ts5 := ' tinken!'; if (checkbox1.Checked) and (a >= 90) then begin if RadioButton1.Checked Then begin if (mmh <= 100) and (mmh > 25) then begin ts4 := listbox4.Items[random(listbox4.Items.Count)]; ts5 := listbox2.items[random(listbox2.Items.Count)]; end else begin ts2 := 'müssen einen Kurzen '; ts3 := listbox3.items[random(listbox3.Items.Count)]; end end; end; label17.Caption:= 'Wer muss Trinken? ' ts1 + ts2 + ts3 + ts4 + ts5; |
Re: problem bei checkbox und bedingungen?ausführung falsch
Juhu vielen vielen dank hab es hinbekommen falls die lösung interessiert danch fragen dann poste ich sie hier!
Jetzt hab ich nur noch zwei probleme kann mir jemand sagen wie die überprüfung dafür aussieht: und zwar ob das zufällig ausgewählte item der listbox1, gleich dem zweiten zufällig ausgewähltem itmem der listbox1 ist ist habe gerade voll kein plan wie ich das machen soll und dann noch da einbauen |
Re: problem bei checkbox und bedingungen?ausführung falsch
Zitat:
|
Re: problem bei checkbox und bedingungen?ausführung falsch
Ok Matze
und kannst du mir vielleicht noch bei der frage davor helfen?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var mmh,meh,a:integer; begin meh:= Random(100) + 1; mmh:= Random(100) + 1; a:= Random (100)+1; If (checkbox1.Checked) and (meh<=90) then begin If RadioButton1.Checked Then begin If (mmh <= 100) and (mmh >25) Then begin label17.Caption:='Wer muss Trinken? ' +'Alle'+ ' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton2.Checked Then begin If (mmh >= 50) Then begin label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton3.Checked Then begin If mmh > 75 Then begin label17.Caption:='Wer muss Trinken? ' + 'Alle'+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + 'Alle' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; end; If (checkbox1.Checked=false) or ((meh > 10)and(meh<80)) then begin If RadioButton1.Checked Then begin If (mmh <= 100) and (mmh >25) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton2.Checked Then begin If (mmh >= 50) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton3.Checked Then begin If mmh > 75 Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; end; If Checkbox2.Checked Then begin if meh >= 80 then begin If RadioButton1.Checked Then begin If (mmh <= 100) and (mmh >25) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton2.Checked Then begin If (mmh >= 50) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton3.Checked Then begin If mmh > 75 Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' und '+listbox1.Items[random(listbox1.items.count)]+' müssen einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; end; If (checkbox2.Checked=false) or ((meh < 80)and(meh>10)) then begin If RadioButton1.Checked Then begin If (mmh <= 100) and (mmh >25) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton2.Checked Then begin If (mmh >= 50) Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; If RadioButton3.Checked Then begin If mmh > 75 Then begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !' end else begin label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !'; end; end; end; end; end; |
Re: problem bei checkbox und bedingungen?ausführung falsch
Hi,
bitte pro Frage einen eigenen Thread erstellen (Kodex) ;) Mittels
Delphi-Quellcode:
bekommst du den Text des selektierten Eintrags der ersten Listbox, analog dazu natürlich auch den der zweiten und diese Strings musst du nur noch Vergleichen.
ListBox1.Items[ListBox1.ItemIndex;
Btw: Noch herzlich willkommen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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 by Thomas Breitkreuz