![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
По поводу формы
novice_al © (2002-07-25 14:29:00)Уважаемые мастера! Вопрос в следующим.
Главная форма F1 из неё через меню вызываю другую форму F2. Она вызывается, но с ошибкой
procedure TF1.ssMenu1Click(Sender: TObject);
begin
F2:=TF2.Create(Application);
F2.Visible:=True;
F2.Show;
F1.Hide;
end;
Access violation at address ... in module Mainform.exe
novice_al (2002-07-25 15:38:00) [1]YES! Это именно CBTehnologName.SetFocus; Спасибо огромное!!!
TTCustomDelphiMaster (2002-07-25 15:36:00) [2]novice_al © (25.07.02 15:20)
Поставь точку останова, нажимай F7 и смотри на какой строке выскочит ошибка.
saxon (2002-07-25 15:27:00) [3]CBTehnologName.SetFocus; - проблемма
Skier (2002-07-25 15:25:00) [4]>novice_al
попробуй заремить CBTehnologName.SetFocus (?)
Внук (2002-07-25 15:24:00) [5]CBTehnologName.SetFocus; - на OnCreate???
novice_al (2002-07-25 15:20:00) [6]Этот код идёт на событие OnCreate
Остальные события уже не обрабатываются,но результат прежний
novice_al (2002-07-25 15:17:00) [7]//Закрытие доступа к некоторым пунктам меню
NMenuZagolovokTP.Visible:=False; //заголовок ТП
NMenuOperatsii.Visible:=False; //Доступ к меню создания ТП
NMenuPrint.Visible:=False; //Печать
//получение фокуса в первое поле выбора технолога;
CBTehnologName.Text:="";
CBTehnologName.SetFocus;
{Разрешение табуляции на объекты, при открытии формы разрешается табуляция
только на следующий объект после объекта с фокусом, и присвоение первона-
чальных значений полям}
CBYear.Text:="";
CBYear.Enabled:=True;
CBMonth.Enabled:=False;
CBMonth.Text:="";
CBDay.Enabled:=False;
CBDay.Text:="";
Edit1.Enabled:=False; //заказ
Edit1.Text:="";
Edit2.Enabled:=False; //чертёж
Edit2.Text:="";
Edit3.Enabled:=False; //сб.чертёж
Edit3.Text:="";
ComboBox1.Enabled:=False; //деталь
ComboBox1.Text:="";
MEKolichestvo.Enabled:=False;
MEKolichestvo.Text:="1";
CBZagotovka.Enabled:=False;
CBZagotovka.Text:="";
MEDlinaDiametr.Enabled:=False;
MEDlinaDiametr.Text:="0";
MEShirinaVnDiametr.Enabled:=False;
MEShirinaVnDiametr.Text:="0";
MEVisota.Enabled:=False;
MEVisota.Text:="0";
CBMaterial.Enabled:=False;
CBMaterial.Text:="";
EUdPlotnost.Enabled:=False;
EUdPlotnost.Text:="0";
CBUdPlotnost1.Enabled:=False;
CBUdPlotnost1.Text:="0";
CBUdPlotnost2.Enabled:=False;
CBUdPlotnost2.Text:="0";
CBUdPlotnost3.Enabled:=False;
CBUdPlotnost3.Text:="0";
CBUdPlotnost4.Enabled:=False;
CBUdPlotnost4.Text:="0";
EMassa.Enabled:=False;
EMassa.Text:="";
//Определяем временно невидимые объекты
LVveditePlotnost.Visible:=False;
CBUdPlotnost1.Visible:=False;
CBUdPlotnost2.Visible:=False;
CBUdPlotnost3.Visible:=False;
CBUdPlotnost4.Visible:=False;
LUdPlotnostZap.Visible:=False;//запятая
LPlotnost.Visible:=False;
LMassa.Visible:=False;
EMassa.Visible:=False;
LDlinaDiametr.Visible:=False;
LShirinaVnDiametr.Visible:=False;
LVisota.Visible:=False;
{ При создании формы поле День получает текущее значение из даты}
TekData:=DateToStr(Date); //Вытаскиваем текущую дату
TekDay:=Copy(TekData,1,2); //Выбираем день из даты
CBDay.Text:=TekDay;
{ При создании формы поле Месяц получает текущее значение из даты}
TekMonth:=Copy(TekData,4,2);
CBMonth.Text:=TekMonth;
{ При создании формы поле Год получает текущее значение из даты}
TekYear:=Copy(TekData,7,4);
CBYear.Text:=TekYear;
{Выборка справочника из таблицы и перенесение его в комбо бох с вызовом
процедуры выбора ViborVComboBoxIzTabvlitsi для деталей}
Tbl:=Table1; DBCB:=dbComboBox1; CB:=ComboBox1;
ViborVComboBoxIzTabvlitsi;
//Это повтор предыдущего только для таблицы технологов
Tbl:=Table2; DBCB:=dbComboBox2; CB:=cbTehnologName;
ViborVComboBoxIzTabvlitsi;
//Это повтор предыдущего только для таблицы заготовок
Tbl:=Table3; DBCB:=DBCBZagotovka; CB:=CBZagotovka;
ViborVComboBoxIzTabvlitsi;
//Это повтор предыдущего только для таблицы материалов
Tbl:=Table4; DBCB:=DBCBMaterial; CB:=CBMaterial;
ViborVComboBoxIzTabvlitsi;
Skier (2002-07-25 15:09:00) [8]>novice_al
Код событий второй формы в студию !
novice_al (2002-07-25 15:07:00) [9]To TTCustomDelphiMaster ошибка которую указал Внук Can not focus to disabled or invisible window
To Skier уже попробовал без OnShow результат такой же
Skier (2002-07-25 14:56:00) [10]>TTCustomDelphiMaster
Удалённая отладка приложения :)))
TTCustomDelphiMaster (2002-07-25 14:55:00) [11]
> novice_al © (25.07.02 14:46)
Ну дык покажи, а так только одно можно сказать
Ошибка в 17 строке
Skier
Внук (2002-07-25 14:52:00) [12]>>TTCustomDelphiMaster © (25.07.02 14:43)
Вероятно, Can not focus to disabled or invisible window - ошибка стандартная
Skier (2002-07-25 14:49:00) [13]>novice_al
Видимо (?) ошибка как раз в OnShow.
Попробуй без него...
novice_al (2002-07-25 14:46:00) [14]На второй форме только OnCreate инициализация переменных.
А на OnShow установка фокуса в контрол из переменной :TWinControl
TTCustomDelphiMaster (2002-07-25 14:43:00) [15]
> novice_al © (25.07.02 14:35)
> ошибка невозможности фокусирования в невидимое окно
Это что еще за ошибка? Переведи на английский.
PS: Покажи код progremm, F1 и F2.
Skier (2002-07-25 14:41:00) [16]>novice_al
У меня вот такой код работает без шума и пыли...
procedure TForm1.miNClick(Sender: TObject);
var
Form2 : TForm2;
begin
Form2 := TForm2.Create(Application);
Form2.Show;
Hide;
end;
Видимо (?) у тебя что-то не так сделано в событиях второй
формы.
TTCustomDelphiMaster (2002-07-25 14:38:00) [17]novice_al © (25.07.02 14:29)
Ошибка во второй форме.
и не надо писать
F2.Visible:=True;
F2.Show;
достаточно
F2.Show;
novice_al (2002-07-25 14:35:00) [18]Если я убираю Visible, то возникает ошибка невозможности фокусирования в невидимое окно. Это уже пробовалось
Skier (2002-07-25 14:32:00) [19]>novice_al
F2.Visible:=True - убери это...для начала.