Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

EInvalidOperation   Найти похожие ветки 

 
Makhanev A.S. ©   (2003-06-12 15:20) [0]

История следующая: при создании/отображении формы появляется сабж. Новая форма может быть как модальной, так и немодальной. Самое страшное - это то, что ошибка вылетает не всегда. Проект может 2-3 раза скомпилироваться нормально, а на 4-ый: сабж. Ошибка не критична, после сообщения всё работает нормально.

Привожу код:
//создание самой формы в главной форме
with TfrmOptions.Create(Application) do
try
ShowModal; //ошибка возникает при отображении
finally
Free;
end;


// формы frmOptions в auto-create нет.

procedure TfrmOptions.FormActivate(Sender: TObject);
begin
//в зависимости от того, есть нижеприведённые строки - или нет, ошибка может появляться, а может - и нет. Причём особой разницы куда их писать (OnCreate, OnShow) - нет.
//ошибка возникает при самых разнообразных сочетаниях данного кода, т.е. например, если закомментировать 1-ую часть, ошибка может исчезнуть, а через несколько перекомпиляций опять появиться - и наоборот. Всё достаточно хаотично. Пока ясно только одно - если закомментировать обе части - ошибка исчезает.
PageControl1.ActivePageIndex := 0; //1-ая часть
if ReadSep = "" then //ReadSep - строковая переменная
rgpRead.ItemIndex := 0 // if..else.. - 2-ая часть
else // rgp - RadioGroup
rgpRead.ItemIndex := 1;
end;


В чём я не прав? Привести более полный листинг? Или есть подводные камни?
Использую: D6 - update pack #2, кое-где (но не в этом модуле) JVCL, RxLib.
Пока пробовал только в WinXP.

Буду очень благодарен за помощь.


 
Sandman25 ©   (2003-06-12 15:36) [1]

Попробуйте добавить ActiveControl := rgpRead; перед второй частью. Если спросите: "Почему?", то у меня нет готового ответа.
Посмотрите вот это, может поможет.
http://delphimaster.net/view/15-1055403287/


 
Makhanev A.S. ©   (2003-06-12 15:57) [2]

Есть подозрение, что здесь замешан PageControl...
Без него проблем нет.
Все компоненты лежат на нём в трёх TabSheet"ах.


 
Makhanev A.S. ©   (2003-06-12 16:02) [3]

Кажется, я понял. в чём причина:
RadioGroup лежит на неактивном (индекс=1) TabSheet.
RadioGroup не имеет фокуса, как следствие своих особенностей(? имеется ввиду ссылка от Sandman25) - он глючит.


 
Sandman25 ©   (2003-06-12 16:10) [4]

То есть если переключать индекс у видимого RadioGroup, то EInvalidOperation не выскакивает? Хотя судя по сообщению об ошибке, этого следовало ожидать.


 
Makhanev A.S. ©   (2003-06-12 17:02) [5]


> Sandman25 © (12.06.03 16:10)

Да, так и есть. На невидимом TabSheet АйтемИндексом невидимого RadioGroup"а нельзя управлять. Остальные свойства вроде работают...

Теперь приходится специально менять ActiveTabsheetIndex... ("туда и обратно"). Неудобно, наверное, придётся юзать RadioButton...


 
Sandman25 ©   (2003-06-12 17:14) [6]

>Неудобно, наверное, придётся юзать RadioButton...

Так и с RadioButton"ом то же самое. Именно из-за него и RadioGroup не работает.


 
Makhanev A.S. ©   (2003-06-12 17:36) [7]


> Sandman25 © (12.06.03 17:14)

Жаль. А есть варианты? D7, или сторонний компонент... или может, кто посоветует как править этот?


 
Sandman25 ©   (2003-06-12 17:49) [8]

Посмотрите в исходниках, может и можно это исправить.



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
14-84588
Igor__
2003-06-08 12:19
2003.06.26
Стеганография


7-84770
velsi
2003-04-15 16:56
2003.06.26
СЕРВИС И TRAY


3-84032
Инна
2003-06-01 01:55
2003.06.26
FastReport


7-84807
Alkinoy
2003-04-15 16:56
2003.06.26
Научите, пожалуйста, обрабатывать прерывания.


3-83987
Ann
2003-05-30 10:36
2003.06.26
DBNavigator