Entwickler-Ecke
Sonstiges (Delphi) - Formfelder werden nicht aktualisiert
Fasi-Monster - Di 24.09.02 14:24
Titel: Formfelder werden nicht aktualisiert
:roll:
Moin
als Anfänger hätte ich da mal eine einfache Frage: Ich lasse mit einem Buttonclick viele Proceduren starten, die etwas berechnen. Jetzt habe ich sozusagen Ausgabefelder, die "so" Zwischenergebnisse anzeigen sollen. Machen´se aber nicht, die werden sogar noch weiß...
Hat einer´nen Tip ? :oops:
Hagbard Celine - Di 24.09.02 14:29
Titel: Re: Formfelder werden nicht aktualisiert
| Fasi-Monster hat folgendes geschrieben: |
:roll:
Moin
als Anfänger hätte ich da mal eine einfache Frage: Ich lasse mit einem Buttonclick viele Proceduren starten, die etwas berechnen. Jetzt habe ich sozusagen Ausgabefelder, die "so" Zwischenergebnisse anzeigen sollen. Machen´se aber nicht, die werden sogar noch weiß...
Hat einer´nen Tip ? :oops: |
Tip 1 : Poste deinen Code
Tip 2 : Beschreibe kurz deinen Formular-Aufbau und benenne die Verwendeten(relevanten) komponenten!
JeanvanHees - Di 24.09.02 14:32
Nicht rot werden; jeder hier war mal anfänger.
Deine frage ist aber nicht so deutlich, könntest du vielleicht etwas code sehen lassen, oder etwas mehr erzählen?
Fasi-Monster - Di 24.09.02 14:49
Ist ein vereinfachtes Proggi um Primzahlen zu berechnen und abzuspeichern :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106:
| Procedure TForm2.fuenfamende; begin funf:=StrToInt(editt.Text[jkl]); if funf = 5 then Grund := false else checkbox2.Checked:=true; end; Procedure TForm2.Quersumme; var lang,a,wert,zwsu:Integer; Begin REPEAT lang:=LENGTH(Quer.Caption); wert:=0; FOR a:=1 TO lang DO BEGIN zwsu:=StrToInt(Quer.caption[a]); wert:=wert+zwsu; END; Quer.caption:=IntToStr(wert); UNTIL lang < 2 ; IF wert mod 3 = 0 then begin grund:=false; end else checkbox1.Checked:=true End; procedure TForm2.FormActivate(Sender: TObject); begin table1.last; Pruefzahl:=strtoint(dbedit1.text); Table2.First; Table2.MoveBy(5); End; procedure TForm2.Button2Click(Sender: TObject); VAR i:integer; BEGIN IF CheckBox5.Checked = True then //für´n Langsam-Modus BEGIN langsam:=true; END; FOR i:=0 to StrToInt(wiederh.text) do begin checkbox1.Checked:=false; //Boxen löschen checkbox2.Checked:=false; checkbox3.Checked:=false; checkbox4.Checked:=false; grund:=true; Pruefzahl:=Pruefzahl+2; IF Langsam = true then effelo; //für´n Langsam-Modus editt.text:=IntToStr(pruefzahl); Quer.caption:=Editt.text; Quer2.caption:=Editt.text; Label9.Caption:=Editt.Text; jkl:=LENGTH(editt.text); IF Langsam = true then effelo; //für´n Langsam-Modus edit1.Text:=IntToStr(i);
funf:=StrToInt(editt.Text[jkl]); //Ist eine Fünf am Ende?; if funf = 5 then Grund := false else checkbox2.Checked:=true; IF Langsam = true then effelo; // Ende Fünfprüfung
IF Grund = true then Quersumme; IF Langsam = true then effelo; //für´n Langsam-Modus IF Grund = true then begin Siebtel:=Pruefzahl div 7 ; sub:=Pruefzahl div 7 ; Label10.Caption:=IntToStr(Siebtel); IF Langsam = true then effelo; //für´n Langsam-Modus Label7.caption:=Editt.Text; IF Pruefzahl mod 7 = 0 then grund:=false else if Pruefzahl mod 7 <> 0 then checkbox3.Checked:=true; END; IF Langsam = true then effelo; //für´n Langsam-Modus If grund = true then checkbox4.checked:=true; IF Grund = true then //Durch Primzahlen teilen BEGIN //abc Table2.First; Table2.MoveBy(5); REPEAT bed := false; Vergl:=StrToInt(DBEdit2.Text); Vergl2:=StrToInt(DBEdit2.Text); IF Pruefzahl mod Vergl = 0 then bed := true else Table2.Next; IF Langsam = true then effe; //für´n Langsam-Modus Until (Vergl2 > Sub) or (bed=true); END; //abc IF (grund = true) and (bed = false) then Begin Table2.Append; Table2.fieldByName('Zahl').AsInteger:= Pruefzahl; Table2.Post; Table2.Refresh; END; grund:=false; end; //FOR end; //Proz end. |
:lol: Bin eben Anfänger?!?
Code-Tag eingefügt. Marc
Hagbard Celine - Di 24.09.02 15:04
| Fasi-Monster hat folgendes geschrieben: |
| Ist ein vereinfachtes Proggi um Primzahlen zu berechnen und abzuspeichern : |
Hab deinen Quelltext jetzt mal leserlich gemacht!
So wo ist jetzt der Fehler?
Wo tritt er auf?
Welche Funktion rufst Du auf??
Was geschieht da überhaupt, ist etwas mühsam das auseinanderzufriehmeln!
Fasi-Monster - Di 24.09.02 15:12
also, das problem das mir widerfährt ist, dass wenn´s läuft, in den Edit- und Labelfeldern die Daten nicht aktualisiert werden. Ich kann die Zwischensummen nicht sehen(vor allem wenn ich die Bremsen"procedure effe&effelo" mitlaufen lasse).
Ex0rzist - Di 24.09.02 15:28
Hallo Fasi-Monster,
ich habe jetzt zwar nicht deinen Code durchgesehen, aber ich denke du benötigst: Application.ProcessMessages
Das baust du an das Ende einer Berechnungsschleife. Damit aktualisiert Windows alle anstehenden Messages (u.a. das Aktualisieren von Labels usw.) auch während einer Schleife.
Ich hoffe ich habe dein Problem erkannt. :roll:
_____________
Ex0rzist
Hagbard Celine - Di 24.09.02 15:30
| Fasi-Monster hat folgendes geschrieben: |
| also, das problem das mir widerfährt ist, dass wenn´s läuft, in den Edit- und Labelfeldern die Daten nicht aktualisiert werden. Ich kann die Zwischensummen nicht sehen(vor allem wenn ich die Bremsen"procedure effe&effelo" mitlaufen lasse). |
Also auf den ersten blick würde ich keinen fehler sehen!
Geh zuerst mal hin und ersetze die Zuweisungen zu editfeldern.txt durch ein memo-feld.lines.add() dann hast Du wohl einige Anzeigen, kannst aber vor allem sehen wie sich die Werte verändern!
Alle Werte stehen dann zwar in einem Memo-Feld, aber zur kontrolle ist das wohl besser!
Fasi-Monster - Mi 25.09.02 07:54
:D
Goil, dat lübt!!!
Danke an:
Ex0rzist & Hagbard Celine & JeanvanHees
Application.ProcessMessages
hat´s gebracht
Mit den Memo-Feldern habe ich noch nicht probiert aber ich mach mir eine Notiz
Bis zum nächsten mal...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!