Главная страница
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.021 c
14-84646
Janus
2003-05-28 17:43
2003.06.26
Дизассемблер


1-84332
Andrey02
2003-06-15 22:59
2003.06.26
Правильное прерывание потоков


14-84592
Empleado
2003-05-27 18:06
2003.06.26
У атеистов могут !


3-83996
YuN
2003-05-28 15:59
2003.06.26
Проблема с кодировками (BDE)


1-84430
Vulko
2003-06-07 16:05
2003.06.26
Как узнать положение курсора в RichEdit