Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.03.2018, 09:41
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию Отображается форма при загрузке из файла

При загрузке формы из файла она отображается на экране. Хотя, вызова Config.Show нет, почему так? Как сделать, чтобы она грузилась в фоне и не отображалась?
Код:
Config:=TConfigForm.Create(nil);
Config.DestroyComponents;
FStr:= TFileStream.Create(fname, fmOpenRead);
MemStr:= TMemoryStream.Create;
ObjectTextToBinary(FStr, MemStr);
MemStr.Position:= 0;
MemStr.ReadComponent(Config);
MemStr.Free;
FStr.Free;
Ответить с цитированием
  #2  
Старый 28.03.2018, 12:10
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Код:
procedure TConfigForm.FormCreate(Sender: TObject);
begin
 Application.OnMinimize:= AppMinimize;
 Application.OnRestore := AppMinimize;
 Application.Minimize;
 AppMinimize(@Self);
end;

procedure TConfigForm.AppMinimize(Sender: TObject);
begin
 ShowWindow(Application.Handle, SW_HIDE);
end;
©Drkb::00459
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием
  #3  
Старый 28.03.2018, 14:34
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию

P.S.: Забыл добавить, что форма, которая грузится из файла не является основной. Основная - показывается при старте и это нормально, но я создаю вторую форму и не хочу чтобы она показывалась пока что. А показаться она должна, когда я ее вызову.
Вторая форма создается в событии Form1.Create - при создании первой формы. Событие можно выбрать и другое, лишь бы она была готова сразу после запуска приложения.
Ответить с цитированием
  #4  
Старый 28.03.2018, 15:48
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

а в dpr'e она не создается случайно?
Ответить с цитированием
  #5  
Старый 28.03.2018, 17:36
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию

Не создается, я оттуда ее убирал.
Я даже делал массив форм: если несколько форм загружаю то все появляются.
Ответить с цитированием
  #6  
Старый 28.03.2018, 17:37
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию

Даже если приведенный код загрузки формы из файла вставить в событие кнопки, то после нажатия кроме создания формы она еще и отобразится.
Ответить с цитированием
  #7  
Старый 28.03.2018, 20:16
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Есть что в OnCreate Этой формы?
Ответить с цитированием
  #8  
Старый 29.03.2018, 09:57
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию

Цитата:
Сообщение от nixon232
Есть что в OnCreate Этой формы?

Нет, там пусто.
Попробуйте у себя сделать кнопку и загрузить форму из кода. Интересно, может это баг в IDE (Delphi 10.2)... Или так и задумано.
Ответить с цитированием
  #9  
Старый 29.03.2018, 19:54
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Dredfil
При загрузке формы из файла она отображается на экране. Хотя, вызова Config.Show нет, почему так? Как сделать, чтобы она грузилась в фоне и не отображалась?
При разработке в обжект инспекторе выставите у формы Visible = false, она не покажется, но загрузится
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Dredfil (05.05.2018)
  #10  
Старый 05.05.2018, 13:17
Dredfil Dredfil вне форума
Прохожий
 
Регистрация: 17.03.2018
Сообщения: 16
Версия Delphi: Delphi 10.2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
При разработке в обжект инспекторе выставите у формы Visible = false, она не покажется, но загрузится

Наконец, разобрался.
Дело в том, что форма сохранялась в событии onClose, в этом событии она все еще видна, поэтому при загрузке из файла тянется и состояние видимости.

Я прям перед сохранением устанавливаю у формы Visible:=false и порядок
^^

Спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter