Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2009-04-26 15:12:58 ЛС | профиль | цитата

procedure THIColorDialogEx.onCanClose;
var dt:TData;
begin
_hi_OnEvent(_event_OnCanClose,ChooseColor.rgbResult);
if ReadInteger(dt,_data_Close,0) = 0 then ACanClose := true
else ACanClose := false;
end;


Вот здесь что-то не ладится, потому что когда комментирую:



procedure THIColorDialogEx.onCanClose;
var dt:TData;
begin
_hi_OnEvent(_event_OnCanClose,ChooseColor.rgbResult);
{if ReadInteger(dt,_data_Close,0) = 0 then ACanClose := true
else ACanClose := false;}
end;

, то всё в порядке, никаких ошибок.
Однако в SDialogEx я использовал точно такую же конструкцию, и всё работало!

Причём ошибка возникает тогда, когда к _data_Close ничего не подключено, но если подключить:

Add(ColorDialogEx,10603938,287,140)
{
Title="Диалог выбра цвета - 3042"
Color=12639424
HelpButton=1
Point(CustomColors)
Point(OnChangeColor)
Point(OnChangeCustomColors)
Point(doColor)
Point(Close)
link(Close,12264157:Value,[])
}
Add(Memory,12264157,287,84)
{
Default=Integer(1)
}
, то всё работает, ведь вышеприведённый код (где ничего не закоментировано)

[size=-2]------ Добавлено в 15:12
А если ещё точнее, то оршибка здесь:

ReadInteger(dt,_data_Close,0);[/code]
Если написать так:
[quote]procedure THIColorDialogEx.onCanClose;
var dt:TData;
begin
_hi_OnEvent(_event_OnCanClose,ChooseColor.rgbResult);
ReadInteger(dt,_data_Close,0);
{if ReadInteger(dt,_data_Close,0) = 0 then ACanClose := true
else ACanClose := false;}
end;[/quote],
то будет ошибка. Почему же число не хочет считываться?
карма: 9
0