Перейти к содержанию
Fire Monkey от А до Я

ruslan

Пользователи
  • Постов

    160
  • Зарегистрирован

  • Посещение

  • Победитель дней

    15

Сообщения, опубликованные ruslan

  1. День добрый. Прошу помощи.

    в .dpr файле загружаю стиль из ресурсов таким вот образом:

    var
      Style: TFMXObject;
      S_Name: string;
    begin
      Style := nil;
      {$IFDEF MSWINDOWS}
         S_name:= 'skin_Jet';
      {$ENDIF}
      
      if S_Name <> '' then
        Style := TStyleManager.LoadFromResource(HInstance, S_Name, RT_RCDATA);
      if Style <> nil then
        TStyleManager.SetStyle(Style);
    
      Application.Initialize;
    
      Application.CreateForm(TDM, DM);
    //  Application.CreateForm(TfMain, fMain);
      Application.Run;
    end.

    затем при создании датамодуля создаю форму авторизации и вешаю на нее фрейм:

    procedure TDM.DataModuleCreate(Sender: TObject);
    var
      f_LoginForm: TForm; // пустая форма авторизации для фрейма
    begin
      Init_Settings; // загрузка настроек
      Set_REST_Params; // установка параметров REST-компонентов
      Settings.Load_U_Props; // читаем параметры юзера
    
    
      fr_Login:= Tfr_Login.Create(Application); // фрейм с контролами авторизации
    
    
      f_LoginForm := TForm.CreateNew(Self); // создаем форму авторизации
      f_LoginForm.Border.Styling := true; // стилизуем бордюры
      f_LoginForm.Width          := Round(fr_Login.Width ) + 30; // подстраиваем размеры формы под фрейм
      f_LoginForm.Height         := Round(fr_Login.Height) + 30;
      f_LoginForm.Position       := TFormPosition.ScreenCenter; // по центру экрана
      f_LoginForm.FormStyle      := TFormStyle.StayOnTop; // поверх окон
      f_LoginForm.BorderStyle:= TFmxFormBorderStyle.Single;
    
    
      fr_Login.Parent := f_LoginForm; // фрейм - на форму
      fr_Login.Align  := TAlignLayout.Client;
      fr_Login.Visible:= true;
    
    
      fr_Login.ed_Username.Text := Settings.USER_Props.U_Name; // пользователь
      fr_Login.ed_Password.Text := Settings.USER_Props.U_Pass; // пароль
      fr_Login.cb_Save.IsChecked:= Boolean(Settings.USER_Props.U_DoSave); // признак сохранения
      try
        fr_Login.ed_Username.SetFocus; // фокус на "Пользователь"
    
    
        Logon_Info.isError:= true;
    
    
        f_LoginForm.ShowModal; // !!!!!!!!
      finally
        if f_LoginForm.ModalResult = mrOk then // если залогинился
        begin
          f_LoginForm.Free;
    
    
          fMain:= TfMain.Create(Application); // главная форма
          fMain.Show;
        end
        else Application.Terminate; // закрываемся
      end;
    end;

    и вот. на

    f_LoginForm.ShowModal;

    форма показывается и есть мерцание. т.е. она не сразу стилизована. сначала виден дефолтный стиль(буквально пол секунды) а потом тот который я подключил перед Application.Initialize

    мот я что-то делаю не правильно ? подскажите, а то мерцание глаз мозолит.

    Спасибо

    p.s. использую Delphi XE6. без Upd1

    вот прикрепляю. в .dpr файле подгружаю стиль из ресурсов. при показе формы - моргание

    test_proj.zip

×
×
  • Создать...