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

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

Как работает OnShow [D7, XP]


blackcrazzy ©   (2006-06-16 12:00:00) 

Уважаемые мастера, у меня такая проблема. Есть программа, в которой есть справочники. При работе в разных окнах все замечательно. Решил сделать их в одном окне, и, в зависимости от того какой справочник вызывается, изменять размер окна и DBGrid'а в нем, а также свойство DataSet у DBGrid по событию OnShow. Окно вызывается модально. В результате получил сообщение от Delphi, что нельзя изменять свойство Visible в OnShow и OnHide, но ведь я изменяю только размер окна, к свойству Visible не обращаюсь. Подскажите, пожалуйста, в чем ошибка.


blackcrazzy   (2006-06-16 14:51:00) [1]


> Игорь Шевченко ©   (16.06.06 14:29) [7]

Спасибо. Где ж Вы были 2 часа назад?(вопрос риторический)


Игорь Шевченко   (2006-06-16 14:29:00) [2]


> SpravForm.Position:=poDesktopCenter;
>      


Убрать


MsGuns   (2006-06-16 14:23:00) [3]

1. Убрать модальное окно из AutoCreate
2. Создавать модальное окно из главной формы

procedure TMainForm.Button1Click(Sender: TObject);
begin
 with TMyModalForm.Create(Self) do
   try
     Top :=
     Left :=
     Width :=
     Heigth :=
     ....
     ShowModal;
   finally
     Free;
   end;


blackcrazzy   (2006-06-16 14:15:00) [4]

Да не трогаю я видимость, мне размер установить надо. А он (Делфи) на видимость ругается.


MsGuns   (2006-06-16 13:33:00) [5]

Модальное окно на то и модальное, что его нельзя сделать невидимым. Потому что смысла нет.


blackcrazzy   (2006-06-16 13:10:00) [6]

Примерно следующее:

...
public
Sprav:integer;
...
procedure SpravForm.OnShow(Sender:TObject);
begin
 case sprav of
 0: begin
      SpravForm.Width:=200;
      SpravForm.Height:=200;
      SpravForm.Position:=poDesktopCenter;
     {здесь идут Left, Top, Widht, Height и DataSet для DBGrid и DBEdit}
     end;
 1: begin
 {см. п.0 но другие значения}
     end;
 2: begin
     end;
end;

Окно создается автоматически при запуске программы. Вызывается через ShowModal.


Loginov Dmitry   (2006-06-16 12:59:00) [7]

На всякий случай в Дизайн-Тайме сделай для формы
Visible=False


ANB   (2006-06-16 12:56:00) [8]

Код запости.


Наверх

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