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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2014, 09:22   #11
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

офигеть. блин не знал как правильно создавать заставку писал ка то криво как в книжке какой то по пьяне прочитал. и создавал в проекте
Код:
begin
  Application.Initialize;
  Application.Title := 'Программа';
  Application.CreateForm(TStart_form, Start_form);
//маленькая форма с асинхронной анимацией (тогда не смотря на подвисания при загрузке анимация работает) 
// и надписями хода реализации загрузки
  Application.Run;
end.
Код:
procedure TStart_form.Start_btClick(Sender: TObject); //это поставлено на таймер 
begin
  Start_form.Status_proj.Caption:='Программа запускается';
  Start_form.Tag:=(GetCurrentProcessId);
  Application.ProcessMessages;
  Start_form.Status_proj.Repaint;
  Start_form.Start_bt.Enabled:=False;
  Start_form.Close_bt.Enabled:=False;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Form1.Show;
  Logo_anim.Animate:=false;
  Start_form.Close_bt.Enabled:=True;
  ShowWindow(Application.Handle, SW_HIDE);//что бы не было левого значка и не тупила форма при сворачивании
  Start_form.Hide;
  Start_form.Visible:=false;
end;
теперь буду ваш слеш курить. и думать как лучше...
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 26.08.2014 в 09:28.
IliaIT вне форума Ответить с цитированием
Старый 26.08.2014, 13:14   #12
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от superedward Посмотреть сообщение
После 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;
Не работает, тоже 2 значка остаются...
UKRtortik вне форума Ответить с цитированием
Старый 26.08.2014, 14:02   #13
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Всегда делал так и всегда всё работает:
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Form2 := TForm2.Create (Application);
  Form2.Show;
  Form2.Update;
  Form2.BringToFront;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form2.Close;
  Form2.Free;
  Application.Run;
end.
Где Form2 это как раз Splash форма.
FaTaL вне форума Ответить с цитированием
Старый 26.08.2014, 15:06   #14
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Всегда делал так и всегда всё работает:
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Form2 := TForm2.Create (Application);
  Form2.Show;
  Form2.Update;
  Form2.BringToFront;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form2.Close;
  Form2.Free;
  Application.Run;
end.
Где Form2 это как раз Splash форма.
Соровно почему то остается второй значок((

Код:
  Application.Initialize;

  splash := Tsplash.Create (Application);
  splash.Show;
  splash.Update;
  splash.BringToFront;

  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tform1, form1);
  Application.CreateForm(Tform2, form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(Tform4, form4);
  Application.CreateForm(Tform5, form5);

  splash.Close;
  splash.Free;

  Application.Run;
UKRtortik вне форума Ответить с цитированием
Старый 26.08.2014, 15:08   #15
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

помогает только MainFormOnTaskbar поставить False или вообще удалить эту строку.
UKRtortik вне форума Ответить с цитированием
Старый 26.08.2014, 16:35   #16
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

ShowWindow(Application.Handle, SW_HIDE);
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 26.08.2014, 21:08   #17
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Код:
Код:
uses
  pngimage,StdCtrls;


//Это из ресурсов у меня это в длл-ке
Function SplashFormShow(Reference:Cardinal; const ResName,ResTip: AnsiString; IdleTime:integer):Boolean; stdcall;
var
  Stream: TStream;
  ImLoad:THandle;
  SplashForm: TForm;
  SplashImage: TImage;
  png:TPNGObject;     // мщжно jpg можно bmp))
begin
 Stream:=TResourceStream.Create(ImLoad,ResName,PAnsiChar(ResTip));
  SplashForm := TForm.create(nil);
  with SplashForm do
  begin
    Color:=$1111;
    TransparentColor:=true;
    SplashForm.TransparentColorValue:=$1111;
    BorderStyle := bsNone;
    Position := poScreenCenter;
    ClientWidth :=700; //Screen.Width
    ClientHeight :=700;// Screen.Height
   end;
    png:=TPNGObject.Create;
    SplashImage := TImage.Create(SplashForm);
  with SplashImage do    // так же можно создавать лбл-ы но и тд и тп)
    begin
    png.LoadFromStream(Stream);
    FreeAndNil(Stream);
    Picture.Graphic:=(png);
    Stretch := true;
    Align := alClient;
    Parent := SplashForm;
    FreeAndNil(png);
    end;
    SplashFormShow:=true;
  with SplashForm do
   begin
     Show;
      begin
       Repaint;
       Sleep(IdleTime);
      end;
     SplashImage.Free;
     Close;
     Free;
   //  SplashForm.Free;
   end;
 end;

//begin
//SplashFormShow(Handle,'logo','png',5000) //Это через функцию  ^^


//Это просто и с например бипмапом
//Файл ресунка битмапа сам свой кидай много мой весит
var
  SplashForm: TForm;
  SplashImage: TImage;
begin
  SplashForm := TForm.create(nil);
  with SplashForm do
  begin
    Color:=$1111;
    TransparentColor:=true;
    SplashForm.TransparentColorValue:=$1111;
    BorderStyle := bsNone;
    Position := poScreenCenter;
    ClientWidth :=700; //Screen.Width
    ClientHeight :=700;// Screen.Height
   end;
    SplashImage := TImage.Create(SplashForm);
  with SplashImage do    // так же можно создавать лбл-ы но и тд и тп)
    begin
    Picture.LoadFromFile('logo1.bmp');
    Stretch := true;
    Align := alClient;
    Parent := SplashForm;
    end;
  with SplashForm do
   begin
     Show;
      begin
       Repaint;
       Sleep(1000);
      end;
     SplashImage.Free;
     Close;
     Free;
   //  SplashForm.Free;
   end;


end.
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 27.08.2014, 01:35   #18
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

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

Код:
   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;
так что не так?
То что форма класса Tsplash уничтожается через несколько микросекунд после её создания и показа.

Ну и в качестве бонуса (имхо неоправданно неоценённое) от Юрия Зотова
Сплэш — показываем красиво

Последний раз редактировалось Stilet; 27.08.2014 в 08:05.
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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