Ik ben zelf bezig met een unit die een event afgeeft als er een cd wordt gewisseld, en die werkt ook. (gelukkig)
Maar ik merk iets geks op, wat zich ook voordoet in TTimer:
In de definitie van TTimer: (exctrls.pas)
staat aan het einde default True
En in de 'create'-code:
Staat FEnabled:=True. Ik heb zitten experimenteren, en het maakt niet uit, wat er in de property-definitie staat, het werkt zodra hij in Create ook wordt genoemd. Dus of er nou staat:
of
of maakt niet uit wat, het werkt altijd. De enige manier wanneer het niet werkt is als die laatste regel 'FEnabled:=...' wordt weggelaten.
Kan iemand mij de logica uitleggen, want ik snap de reden niet dat het steeds werkt.
* jvdmeer is tijden aan het debuggen geweest van zijn TCdChange, omdat ik de onderste regel niet had staan.
Maar ik merk iets geks op, wat zich ook voordoet in TTimer:
In de definitie van TTimer: (exctrls.pas)
Delphi:
1
2
3
4
| ... published property Enabled: Boolean read FEnabled write SetEnabled default True; ... |
staat aan het einde default True
En in de 'create'-code:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
| constructor TTimer.Create(AOwner: TComponent); begin inherited Create(AOwner); FEnabled := True; FInterval := 1000; {$IFDEF MSWINDOWS} FWindowHandle := Classes.AllocateHWnd(WndProc); {$ENDIF} {$IFDEF LINUX} FWindowHandle := WinUtils.AllocateHWnd(WndProc); {$ENDIF} end; |
Staat FEnabled:=True. Ik heb zitten experimenteren, en het maakt niet uit, wat er in de property-definitie staat, het werkt zodra hij in Create ook wordt genoemd. Dus of er nou staat:
Delphi:
1
2
3
| property Enabled: Boolean read FEnabled write SetEnabled default True; ... FEnabled := True; |
of
Delphi:
1
2
3
| property Enabled: Boolean read FEnabled write SetEnabled default False; ... FEnabled := True; |
of maakt niet uit wat, het werkt altijd. De enige manier wanneer het niet werkt is als die laatste regel 'FEnabled:=...' wordt weggelaten.
Kan iemand mij de logica uitleggen, want ik snap de reden niet dat het steeds werkt.
* jvdmeer is tijden aan het debuggen geweest van zijn TCdChange, omdat ik de onderste regel niet had staan.