Typhon v.5.7 + fpc 3.1.1 + Windows 10 (64 bity)
Stworzyłem sobie nowy komponencik (TNumberEdit
) dziedziczący po standardowym TEdit
mający za zadanie obsługę danych numerycznych według zadanych parametrów. Jedną z właściwości jest właściwość Value
, która jest typu Variant
(może być NULL
). Obsługuję (oczywiści między innymi) zdarzenia :
var
Settings : TFormatSettings;
procedure TNumberEdit.DoEnter;
begin
inherited;
if (FValue <> Null) then
begin
Text := FormatFloat(<FORMAT>, FValue);
SelectAll;
end
else
Clear;
end;
procedure TNumberEdit.DoExit;
begin
inherited;
if (FValue <> Null) then
Text := FormatFloat(<FORMAT>, FValue, Settings);
else
Clear;
end;
Wartość FValue
jest na bieżąco ustawiana podczas obsługi KeyPress
;
var
NE_1, NE_2 : TNumberEdit;
Umieszczam na formie NE_1
oraz NE_2
.
Jeżeli NE_1.Value <> null
to podczas przechodzenia z NE_1
do NE_2
wykonuje się prawidłowo (NE_2)DoEnter
. Jeżeli NE_1.Value = null
to podczas przechodzenia z NE_1
do NE_2
(NE_2)DoEnter
się nie wykonuje !
Podobnie jest w drugą stronę. Taka konstrukcja w Delphi wykonuje się bezproblemowo.
Gdzie może być "pies pogrzebany" ? Dopiero zaczynam się bawić Lazarusem i po prostu nie mogę się z tym problemem uporać.
Będę wdzięczny za każdą sugestię !