Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2012-03-29 12:35:17 ЛС | профиль | цитата
Не только обозвать. Хоть горшком, ато иногда такие перлы попадаются с переключениями, что мама не горюй.
Вот так (примерно без HiAsm-a и без проверки )
#pas
procedure THISwitchPages.SetCount;
begin
SetLength(onSelect, Value);
FOutCount := Value;
end;
procedure THISwitchPages._work_doSelect0; // для Visible
var i, n:integer;
val:cardinal;
begin
val := ReadInteger(_data,_data_Data,0);
n := 1 shl val;
for i := 0 to FOutCount-1 do begin
if ((n shr i) and 1) = 1 then
_hi_OnEvent(onSelect[i],1)
else
_hi_OnEvent(onSelect[i],0);
end;
end;

procedure THISwitchPages._work_doSelect1; // для doBringToFront
var i:integer;
begin
i:= ReadInteger(_data,_data_Data,0);
if(i >= 0)and(i< FOutCount) then
_hi_onEvent(onSelect[i]);
end;

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0