Just as I expected, "Ulrik Vadstrup" <vadstrup@post12.tele.dk> came up
with this:
>Er der en der gider sådan på forståligt dansk (Hjælpen er nemlig lidt
>uforstålig på det punkt i D4) hvordan og hvad tanken er bag events, og
>eksempelvis give et eks. på et par stykker.
"Event" betyder jo hændelse, som du nok allerede ved! En event kan så
være mange ting, f.eks. Click eventen for en TButton. Den bliver kaldt
når knappen modtager en WM_CLICK message fra Windows. Et andet
eksempel kunne være TServerSocket komponenten fra Delphi 4. Når der er
en klient der opretter en forbindelse til serveren så bliver der fyret
en event af. En event kan også bare blive fyret af når f.eks. en
property bliver ændret. Her er et lille eksempel:
- - - start kode
type
TIntChangeEvent = procedure(Sender: TObject; Value: integer);
TIntWithEvent = class(TObject) // events er jo ikke specifikke
private // for komponenter!
FOnValChange: TIntChangeEvent
FVal: integer;
procedure SetVal(Value: integer);
public
property Val: integer
read FVal;
write SetVal;
property OnValChange: TIntChangeEvent
read FOnValChange
write FOnValChange;
end;
procedure TIntWithEvent.SetVal(Value: integer);
begin
if FVal <> Value then
begin
FVal := Value;
if Assigned(FOnValChange) then
FOnValChange(Self, Value);
end;
end;
- - - slut kode
Det er så en klasse der holder en integer-værdi og har en event der
bliver fyret af når man ændrer værdien! Jeg kan ikke lige komme på et
eksempel nu, men der *er* tilfælde hvor sådan en klasse kunne være
brugbar. Det er bare meget sjældent!
Niels (aka. niLLer)
--
e-mail: nmartin at iname dot com ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages (My programs, in English)
http://whitehat.dk/g4s/ - The G4S Page (Personlig side, på dansk)
-- No longer Windozed!