Autor Beitrag
Fasi-Monster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 24.09.02 14:24 
: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: Di 24.09.02 14:29 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: 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?

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!
Fasi-Monster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Di 24.09.02 14:49 
Ist ein vereinfachtes Proggi um Primzahlen zu berechnen und abzuspeichern :

ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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...