Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.028 c
1-84342
Merfi
2003-06-16 10:49
2003.06.26
Завязка с разрешением


7-84794
Демонов Е.В.
2003-04-18 09:15
2003.06.26
Дата Соэдания каталога


1-84339
ghg
2003-06-16 09:57
2003.06.26
проблема с параметром-массивом в процедуре


4-84822
Андрейка
2003-04-23 21:50
2003.06.26
функция ShellExecute


14-84726
neuro
2003-06-05 19:20
2003.06.26
Tcl/Tk, Awk...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский