Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

По поводу формы


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 - убери это...для начала.


Наверх

Титульная страница Поиск, карта сайта Написать письмо