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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2008, 14:04   #1
Sanek777
Заблокирован
Пользователь
 
Регистрация: 31.07.2008
Сообщений: 90
По умолчанию многоформность

Подсажите плиз как мне сделать вот допустим прогу в которой первая форма для загрузки вторая главня, третья и так далее разветвления от главной - ну допустим как у каспера но он на с++ писал, вот ну там форма 1 форма 2 форма 3 и их много будет но если много они систему на слабых компах сильно грузят, подскажите как сделать чтобы было много форм и оперативка сильно не заполнялась или чтобы эти формы как то вызывались а главное чтоб это не помешало на размер программы
Sanek777 вне форума Ответить с цитированием
Старый 25.10.2008, 14:12   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

"первая форма для загрузки" - называется Splash-форма или заставка. Обсуждалось на форуме миллион раз.
Создание "третьей, четвертой и так далее" - относится к динамическому (чтобы не "грузить" систему понапрасну) созданию форм и тоже обсосано до костей.
Вывод - материала на форуме - выше крыши.
Выход - преодолеть свою лень и найти все, что нужно.
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 14:39   #3
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Код:
program Project1;

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

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
   Form2 := TForm2.Create(Application);
   Form2.Show;
  Application.Run;
end.
А вообще Михалыч прав, нифига непонятно...
Баламут вне форума Ответить с цитированием
Старый 25.10.2008, 16:20   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Н-н-да-а-а... Лень человеческая непреодолима... Ну что ж...
Мой способ (безотказный).

В файле проекта:
Код:
begin
  FSplash:=TFSplash.Create(Application);
  FSplash.Show;
  FSplash.Update;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
В файле главной формы:
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
...
FSplash.Free;
...
end;
mihali4 вне форума Ответить с цитированием
Старый 26.10.2008, 01:47   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

у меня говорит ошибку, что нет FSplash.Free;
точнее:
Undeclared identifeer : 'FSplash'
что это значит?
beegl вне форума Ответить с цитированием
Старый 26.10.2008, 02:05   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это значит, что название формы-заставки должно быть FSplash...
Или поменяйте это имя на имя вашей формы, которую вы используете в качестве заставки.
Может все-таки стоит сначала почитать что-нибудь для начинающих?

Последний раз редактировалось mihali4; 26.10.2008 в 19:55.
mihali4 вне форума Ответить с цитированием
Старый 24.05.2015, 01:49   #7
dem-3
 
Регистрация: 02.10.2010
Сообщений: 3
Радость ALL IN CLUSIVE (SECURITY, STYLES AND FORMS) :)))

Код:
program Real_Style;

uses
  Vcl.Forms,
  Form_1_MainForm in 'Form_1_MainForm.pas' {F_1_MainForm},
  Form_2_Security in 'Form_2_Security.pas' {F_2_Security},
  Form_3_Option in 'Form_3_Option.pas' {F_3_Option};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;

  Application.CreateForm(TF_1_MainForm, F_1_MainForm);
  Application.CreateForm(TF_3_Option, F_3_Option);

//  !!!
  Application.ShowMainForm:= False;

            F_2_Security:= TF_2_Security.Create(Application);
            F_2_Security.ShowModal;
            F_2_Security.Release;

  Application.Run;
end.
________________________________________________________________

Последний раз редактировалось Вадим Мошев; 24.05.2015 в 02:02.
dem-3 вне форума Ответить с цитированием
Старый 24.05.2015, 01:54   #8
dem-3
 
Регистрация: 02.10.2010
Сообщений: 3
Радость //**

Код:
unit Form_2_Security;
interface

uses
  Winapi.Windows, Winapi.Messages,
  System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
  Vcl.ComCtrls, Vcl.ToolWin, Vcl.ExtCtrls;

type
  TF_2_Security = class(TForm)
    Label2: TLabel;
    TB_1: TToolBar;
    tb_GO: TToolButton;
    tb_EXIT: TToolButton;
    Bevel1: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure tb_GOClick(Sender: TObject);
    procedure tb_EXITClick(Sender: TObject);

  private

  public
    STYLE_: string;

  end;

var
  F_2_Security: TF_2_Security;

implementation

uses
  Vcl.Themes,
  Vcl.Styles,
//   Form_3_Option,
   Form_1_MainForm;

{$R *.dfm}

{$REGION '     SYSTEM     '}

procedure TF_2_Security.FormCreate(Sender: TObject);
//      Form Create

      function ReadFile( DirFile: string): string;
      var
        F: TextFile;
//        str: string;
      begin

            AssignFile(F, DirFile);
            Reset(F);
            Readln(F, Result);

            CloseFile(F);
      end;

      function LoadAndRG_STYLE( DirFileSTYLE: string): string;
      // загрузить скин файла и вернуть его имя
      var
        sm: TStyleManager;
        si: TStyleInfo;
      begin

         If not FileExists(DirFileSTYLE) then
         begin
          ShowMessage('File style:' +sLineBreak+ DirFileSTYLE +'   is not find.');
          result := '';
          Exit;
         end;

          sm := TStyleManager.Create;

          try

            if TStyleManager.IsValidStyle(DirFileSTYLE, si) then // взять информацию о стиле в si
            begin
              result := si.Name;
              if sm.Style[result] = nil then
                 sm.LoadFromFile(DirFileSTYLE);
            end;

          finally
            sm.Free;

          end;

      //                                                                          Fp .
      end;

var
  st,
  value: string;
begin

 st:=  ExtractFilePath(Application.ExeName)+'FilesSTYLE\style.txt' ;

 if FileExists(st) then
 begin   // Load STYLE
    value:= ReadFile (st);
    STYLE_ := LoadAndRG_STYLE(value); // загрузить скин
    if (STYLE_ <> '') then // если не загрузили - то имени нет
    begin

       TStyleManager.TrySetStyle(STYLE_, false); // включить
         Application.ProcessMessages;


    end;
 end;

 TB_1.Indent:= (Self.Width-(tb_GO.Width+tb_EXIT.Width)) div 2;

//                                                                        SYSTEM
end;

procedure TF_2_Security.FormDestroy(Sender: TObject);
//      Form Destroy
begin

   STYLE_Theme:= STYLE_;

//   ShowMessage('FormDestroy.');

end;

{$ENDREGION ***************************** SYSTEM ***************************** }




procedure TF_2_Security.tb_GOClick(Sender: TObject);
begin

   Application.ShowMainForm:= True;
   Close;

//                                                                       F_SECUR
end;



procedure TF_2_Security.tb_EXITClick(Sender: TObject);
begin

 Application.Terminate;

end;

end.

Последний раз редактировалось Вадим Мошев; 24.05.2015 в 02:02.
dem-3 вне форума Ответить с цитированием
Ответ


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