Avatar billede t-rexz Nybegynder
02. maj 2003 - 02:20 Der er 9 kommentarer og
1 løsning

Opdatering af tekstfelter

Hej!

Jeg er det de unge mennesker idag kalder for 'newbie' i Delphi, så mit spørgsmål virker måske lidt simpelt.

Mit problem er, at jeg ikke kan opdatere tekstfelterne i min form undervejs i en beregning. Jeg har en løkke hvori jeg foretager nogle beregning, imens computeren regner ville jeg gerne have stående i et tekstfelt, "Regner...". Når jeg tildeler tekstfeltet den tekst, opdateres den først efter beregnining er afsluttet, og så kan det jo være lidt ligemeget.

Jeg prøvede at lave en processbar, der voksede i takt med at udregningen blev færdig, den virker tilgengæld helt fint.

Håber nogen kan hjælpe.
Avatar billede razersedge Nybegynder
02. maj 2003 - 07:47 #1
indsæt dette i din løkke:

Application.ProcessMessages;

Simon Jensen
Avatar billede razersedge Nybegynder
02. maj 2003 - 07:48 #2
Det lader simpelthen dit program udføre de forskellige meddelser udervejs i din beregning.

Skulle have været et svar.
Avatar billede dkn Nybegynder
02. maj 2003 - 07:59 #3
Edit.Update skulle gøre det eller Edit1.Invalidate;

De skal self være med i løkken
Avatar billede pjotre Praktikant
02. maj 2003 - 08:28 #4
Prøv dette:
label1.caption 'Regner..';
Form1.refresh;
Mvh
Pjotre
Avatar billede pjotre Praktikant
02. maj 2003 - 08:30 #5
Der mangler et :=, så her kommer det igen:

label1.caption := 'Regner..';
Form1.refresh;

Mvh
Pjotre
Avatar billede borrisholt Novice
02. maj 2003 - 08:35 #6
razersedge har ret i et newbee spm, men på sigt skal du brug tråde.

Jens B
Avatar billede t-rexz Nybegynder
02. maj 2003 - 08:49 #7
Tak for forslagene. Jeg ser på det når jeg kommer hjem idag.
Avatar billede borrisholt Novice
02. maj 2003 - 08:57 #8
pas på du ikke får kaldt Application.ProcessMessages; for mange gange !

Forkert eksempel :

var
  i, j : Integer;
begin
  for i := 0 to 1000 do
    for j := 0 to 500 do
    begin
      Memo1.Lines.Add('Hest ' + IntToStr(i*j));
      Application.ProcessMessages;
    end;
end;

"Rigtigt" eksempel

var
  i, j : Integer;
begin
  for i := 0 to 1000 do
  begin
    for j := 0 to 500 do
      Memo1.Lines.Add('Hest ' + IntToStr(i*j));

    Application.ProcessMessages;
  end;
end;

Jens B
Avatar billede t-rexz Nybegynder
02. maj 2003 - 09:29 #9
razersedge kom først med en løsning der virkede, så han får pointene. Kan ikke lige huske hvordan man ellers plejer at gøre.
Avatar billede borrisholt Novice
02. maj 2003 - 10:02 #10
Fint for mig .... 

Jeg ville blot udybe hans svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester