|
Antwort |
Registriert seit: 18. Mär 2006 23 Beiträge |
#1
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 |
Zitat |
delphineuling88 |
Öffentliches Profil ansehen |
Mehr Beiträge von delphineuling88 finden |
Registriert seit: 13. Dez 2003 Ort: Berlin 1.756 Beiträge |
#2
Hi, und herzlich willkommen in der Delphi Praxis
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 |
Zitat |
Registriert seit: 29. Mai 2002 Ort: Frankfurt 8.252 Beiträge Delphi 2006 Professional |
#3
Hai delphineuling88,
wie der Unwissende schon sagte solltest Du als erstes einmal einen gutlesbaren Codestyle verwenden. Dadurch wirst Du Fehler viel schneller finden und dein Programm bleibt auch wartbar. 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;
Stephan B.
"Lasst den Gänsen ihre Füßchen" |
Zitat |
Registriert seit: 18. Mär 2006 23 Beiträge |
#4
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 |
Zitat |
delphineuling88 |
Öffentliches Profil ansehen |
Mehr Beiträge von delphineuling88 finden |
(Co-Admin)
Registriert seit: 7. Jul 2003 Ort: Schwabenländle 14.929 Beiträge Turbo Delphi für Win32 |
#5
Zitat von delphineuling88:
Juhu vielen vielen dank hab es hinbekommen falls die lösung interessiert danch fragen dann poste ich sie hier!
|
Zitat |
Registriert seit: 18. Mär 2006 23 Beiträge |
#6
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; |
Zitat |
delphineuling88 |
Öffentliches Profil ansehen |
Mehr Beiträge von delphineuling88 finden |
(Co-Admin)
Registriert seit: 7. Jul 2003 Ort: Schwabenländle 14.929 Beiträge Turbo Delphi für Win32 |
#7
Hi,
bitte pro Frage einen eigenen Thread erstellen (Kodex) Mittels ListBox1.Items[ListBox1.ItemIndex; 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. Btw: Noch herzlich willkommen! |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |