Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2014, 18:23   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию Сплеш (окно загрузки программы)

Делаю окно загрузки программы и возникла проблема, в панели задач остается значок окна



Код:
  Application.Initialize;
  splash := Tsplash.Create(Application);
  splash.Show;
  splash.Update;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tform1, form1);
  Application.CreateForm(Tform2, form2);
  Application.CreateForm(Tform4, form4);
  Application.CreateForm(Tform5, form5);
  splash.Free;
  Application.Run;
UKRtortik вне форума Ответить с цитированием
Старый 24.08.2014, 18:36   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

TSplach- наследник TForm?
Значит создавай его после любой из форм. А убивай перед Application.Run.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 24.08.2014, 19:59   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Значит создавай его после любой из форм. А убивай перед Application.Run.
А я бы даже создавал до Application.Initialize; и не задавал ему Application в качестве Parent.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.08.2014, 20:12   #4
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Не совсем понял как правильно сделать, но если изменить значение MainFormOnTaskbar на False то остается только 1 значок.
UKRtortik вне форума Ответить с цитированием
Старый 24.08.2014, 20:26   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Был не прав. Так что приведу пример:
Код:
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1
  { you can add units after this };

{$R *.res}

begin
  Application.Initialize;

  with TFormSplash.Create(nil) do begin
    ShowModal;
    Free;
  end;

  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Так понятнее?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.08.2014, 20:35   #6
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Не совсем правильный пример, я думаю правильно будет так:

Код:
   with Tsplash.Create(nil) do begin
    Show;
    Free;
  end;
только так что-то вообще форма не отображается

Код:
  Application.Initialize;
   with Tsplash.Create(nil) do begin
    Show;
    Free;
  end;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tform1, form1);
  Application.CreateForm(Tform2, form2);
  Application.CreateForm(Tform4, form4);
  Application.CreateForm(Tform5, form5);
  Application.Run;
так что не так?

Последний раз редактировалось Stilet; 24.08.2014 в 23:11.
UKRtortik вне форума Ответить с цитированием
Старый 24.08.2014, 23:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попробуй начать отсюда: http://habrahabr.ru/post/146101/
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2014, 03:03   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А я бы даже создавал до Application.Initialize; и не задавал ему Application в качестве Parent.
+100500
Только так и никак иначе!
northener вне форума Ответить с цитированием
Старый 25.08.2014, 08:00   #9
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
Не совсем правильный пример, я думаю правильно будет так:

Код:
   with Tsplash.Create(nil) do begin
    Show
    Free;
  end;
так что не так?
После Free твой сплэш сразу уничтожается

Я делаю как-то так

Код:
  Application.Initialize;
  FormSplash:=TFormSplash.Create(Application);{сплэш}

  with FormSplash do begin
   Show;
   Update;
   BringToFront;
  end;

  Application.CreateForm(TMainForm, MainForm);
  FormSplash.BringToFront;
  Application.ProcessMessages;
  Application.Run;
И только в событии MainForm.OnActivate освобождаю сплэш:
Код:
  if Assigned(FormSplash)then begin
   FormSplash.Hide;
   FormSplash.Release;
   FormSplash:=nil
  end;
superedward вне форума Ответить с цитированием
Старый 26.08.2014, 04:21   #10
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Код:
бла,бла,бла.
end;
//тут пишем нашу сплаш)
var
  SplashImage: TBitmapImage;
  SplashForm: TForm;
  SplashFileName: String;
  I : Integer;
begin

  SplashFileName := ExpandConstant('{tmp}\splash.bmp');
  ExtractTemporaryFile(ExtractFileName(SplashFileName));

  SplashForm := TForm.create(nil);
  with SplashForm do
   begin
    BorderStyle := bsNone;
    Position := poScreenCenter;
    // Указываем размеры показываемого изображения
    ClientWidth := 405;
    ClientHeight := 310;
   end;

  SplashImage := TBitmapImage.Create(SplashForm);
  with SplashImage do
    begin
    Bitmap.LoadFromFile(SplashFileName);
    Stretch := true;
    Align := alClient;
    Parent := SplashForm;
    end;

  with SplashForm do
   begin
     Show;
     for I := 1 to 1 do
      begin
       Repaint;
        // показ изображения в секундах (1000 – одна секунда, 2000 – две секунды и т.д.)
       Sleep(1000);
      end;
     Close;
     Free;
   end;
end;

end.
Всё просто))
С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать окно подтверждения загрузки файла в WebBrowser mishax Общие вопросы Delphi 6 19.08.2012 12:10
Окно загрузки программы DKENT Общие вопросы Delphi 12 26.05.2012 14:19
Необходимо изменить сплеш форму BonuSS Помощь студентам 2 21.02.2012 11:12
Окно загрузки Михаил Юрьевич Общие вопросы Delphi 7 14.07.2010 20:33
webbrowser и окно загрузки blackstersl Работа с сетью в Delphi 0 30.10.2008 08:57