/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Newbie: ProgressBar
Fra : Kasper Okkels


Dato : 07-04-03 22:04

Undskyld min uvidenhed og (dumme) spørgsmål. Men hvorfor virker nedenstående
ikke?

/Kasper

------------------
unit uProgressBar;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
progressbar1: Tprogressbar;

implementation

{$R *.DFM}

procedure procedure1;
var
i : integer;
begin
for i := 1 to 1000 do begin;
ProgressBar1.Position := i;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
progressbar1.Min := 1;
progressbar1.max := 1000;
procedure1;
end;

end.



 
 
Uffe Kousgaard (07-04-2003)
Kommentar
Fra : Uffe Kousgaard


Dato : 07-04-03 22:34

Procedure1 er defineret som en almindelig procedure og så har du selv
tilføjet yderligere en progressbar1 variabel, som ikke er den samme, som
den du har på skærmen (som del af TForm1). Evt. kan du få et crash med
den kode, du har her.

Tilføj "procedure procedure1;" lige efter "{ Public declarations }" og
slet så den globale progressbar1 variabel, du selv har tilføjet. Ved
implementeringen af procedure skal der også stå "procedure
Tform1.procedure1;"

Og uden en pause kan du selvfølgelig ikke se, at "baren" flytter sig, så
en Sleep(10) i dit loop ville også gøre underværker. Så ville den samlet
være 10*1000 ms = 10 sek. om at bevæge sig.


"Kasper Okkels" <okkelsFJERN_DETTE@wanadoo.dk> wrote in message
news:3e91e769$0$42583$edfadb0f@dread11.news.tele.dk...
> Undskyld min uvidenhed og (dumme) spørgsmål. Men hvorfor virker
nedenstående
> ikke?
>
> /Kasper
>
> ------------------
> unit uProgressBar;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
> ComCtrls, StdCtrls;
>
> type
> TForm1 = class(TForm)
> Button1: TButton;
> ProgressBar1: TProgressBar;
> procedure Button1Click(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
> progressbar1: Tprogressbar;
>
> implementation
>
> {$R *.DFM}
>
> procedure procedure1;
> var
> i : integer;
> begin
> for i := 1 to 1000 do begin;
> ProgressBar1.Position := i;
> end;
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> progressbar1.Min := 1;
> progressbar1.max := 1000;
> procedure1;
> end;
>
> end.
>
>


Kasper Okkels (08-04-2003)
Kommentar
Fra : Kasper Okkels


Dato : 08-04-03 21:11

"Uffe Kousgaard" <uffe@routeware.dk> skrev i en meddelelse
news:3e91eea7$0$148$edfadb0f@dtext01.news.tele.dk...
> Procedure1 er defineret som en almindelig procedure og så har du selv
> tilføjet yderligere en progressbar1 variabel, som ikke er den samme, som
> den du har på skærmen (som del af TForm1). Evt. kan du få et crash med
> den kode, du har her.
>
> Tilføj "procedure procedure1;" lige efter "{ Public declarations }" og
> slet så den globale progressbar1 variabel, du selv har tilføjet. Ved
> implementeringen af procedure skal der også stå "procedure
> Tform1.procedure1;"

Tusind tak for hjælpen. Det virker fint og har givet en anelse mere klarhed
over hvordan man bygger koden op i Delphi.

/Kasper



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste