|
| Er det mugligt ? Fra : Henning Madsen |
Dato : 10-12-00 20:04 |
|
Jeg har en form hvorpå der blandt andet er 10 knapper, som hver gør
forskellige ting.
Er det mugligt f.eks. med Timer komponenten at få disse knapper aktiveret.
Knap 5 efter f.eks. 1 min. knap7 efter f.eks10 min og så videre.
Er der en løsning vel jeg være glad for et svar i nynybegynder sprog
med venlig hilsen
Henning.
| |
Thomas P (10-12-2000)
| Kommentar Fra : Thomas P |
Dato : 10-12-00 21:19 |
|
Dette eksempel jeg har lavet her er nok det grimmeste stykke kode I har set
her på newsgroupen og ville få Anders (I ved hvem) til at vende sig i
graven, hvis han havde været død. Nåeh, men du skal i hvert fald sætte
timerens interval til 60.000 og implementere dette stykke kode :)
---klip---
var
Form1 : TForm1;
Minutter : integer;
implementation
{$R *.DFM}
procedure TForm1.knap5Click(Sender: TObject);
begin
showmessage('Knap5');
end;
procedure TForm1.knap7Click(Sender: TObject);
begin
showmessage('Knap7');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Minutter:=Minutter+1;
case minutter of
1: Knap5.OnClick(Sender);
7: Knap7.OnClick(Sender);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Minutter:=0;
end;
- Thomas
| |
René Jensen (11-12-2000)
| Kommentar Fra : René Jensen |
Dato : 11-12-00 11:52 |
|
Thomas P wrote:
> Dette eksempel jeg har lavet her er nok det grimmeste stykke kode I har set
> her på newsgroupen og ville få Anders (I ved hvem) til at vende sig i
> graven, hvis han havde været død. Nåeh, men du skal i hvert fald sætte
> timerens interval til 60.000 og implementere dette stykke kode :)
>
> ---klip---
>
> var
> Form1 : TForm1;
> Minutter : integer;
>
> implementation
>
> {$R *.DFM}
>
> procedure TForm1.knap5Click(Sender: TObject);
> begin
> showmessage('Knap5');
> end;
>
> procedure TForm1.knap7Click(Sender: TObject);
> begin
> showmessage('Knap7');
> end;
>
> procedure TForm1.Timer1Timer(Sender: TObject);
> begin
> Minutter:=Minutter+1;
> case minutter of
> 1: Knap5.OnClick(Sender);
> 7: Knap7.OnClick(Sender);
> end;
> end;
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> Minutter:=0;
> end;
Ovenstående kode vil *IKKE* virke ... grunden er at den vil kun virke
første iteration, og derefter vil der ikke blive opfyldt nogle af de
conditions, som bliver sat i case-sætningen.
Jeg har således tilladt mig at skrive en ny kode-stump, som virker efter
x-antal minutter (dog max. 65535 min. -- hvilket svarer til ca. 45
døgn). Husk at erklære konstanterne og den globale variabel før nogle af
metoderne.
// erklæring af konstanter; de enkelte knappers interval i hele antal
min.
const
button5Interval = 1; // 1 min
button7Interval = 10; // 10 min
// erklæring af global varibel
var
elapsedTime: Word;
// nulstiller den globale variabel elapsedTime
procedure TForm1.FormCreate(Sender: TObject);
begin
elapsedTime := 0;
end;
// tjek for evt. udførelse af buttonclicks
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if elapsedTime mod button5Interval = 0 then
Button5.OnClick(Sender);
if elapsedTime mod button7Interval = 0 then
Button5.OnClick(Sender);
Inc(elapsedTime);
end;
--
Med venlig hilsen,
René Jensen
100% Certified Nerd -- YEAH, AND I'M F*CKING PROUD OF IT :P
| |
|
|