Кто-нибудь знает как из Delphi-приложении получить значение флажка "Run Minimized" (прятать программу при запуске), размещенного в Группе Запуска в Windows 3.1 или 3.11? Я не знаю как из своего приложения проверить этот флажок и запустить приложение с соответствующим состоянием главного окна. Я хотел бы предоставить пользователю право самому определять начальное состояние окна, поскольку мое приложение выполняет чисто технические задачи и не требует частого обращения. В то же время во время первого запуска приложение должно быть развернуто, поскольку необходимо выставить первоначальные параметры. Это кажется простым, но я не знаю путей решения этой проблемы. Буду благодарен за любую предоставленную информацию.
Привет!
Используй модуль WinProcs и после создания формы добавь вызов ShowWindow.
Ты можешь использовать глобальные переменные HInstance, HPrevInst, CmdShow и CmdLine.
program Project1; uses WinProcs, {*** используем WinProcs}Forms,Unit1 in 'UNIT1.PAS' {Form1}; {$R *.RES} begin Application.CreateForm(TForm1, Form1);ShowWindow(Form1.handle, CmdShow);Application.Run;end. |
Решение 2
Вот еще один пример, источник информации:
Rubenking, Neil (1996). _Delphi Programming Problem Solver_. Foster City, CA: IDG Books. ISBN:1-56884-795-5.
unit Unit1; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs; type TForm1 = class(TForm)procedure FormCreate(Sender: TObject);procedure FormActivate(Sender: TObject);private{ Private declarations }public{ Public declarations }ShowHow : word ;end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); var SUI : TStartupInfo ;begin if CmdShow = SW_SHOWDEFAULT thenbeginGetStartupInfo( SUI ) ;ShowHow := SUI.wShowWindow ;endelseShowHow := CmdShow ; if ShowHow = SW_SHOWMAXIMIZED thenWindowState := wsMaximized ;end; procedure TForm1.FormActivate(Sender: TObject); begin case ShowHow ofSW_SHOWMINIMIZED,SW_MINIMIZE,SW_SHOWMINNOACTIVE :Application.Minimize ;end ;end; end. |
beginApplication.Initialize;Application.CreateForm(TForm1, Form1);Form1.Show;Application.Minimize;Application.Run;end. |
procedure TForm1.FormCreate(Sender: TObject);{$IFDEF WIN32} { Delphi 2-X.0 (32-бит) }varMyInfo: TStartUpInfo;{$ENDIF}begin{$IFDEF WIN32} { Delphi 2-X.0 (32-бит) }GetStartUpInfo(MyInfo);ShowWindow(Handle, MyInfo.wShowWindow);{$ENDIF}{$IFDEF WINDOWS} { Delphi 1.0 (16-бит) }ShowWindow(Handle, cmdShow);{$ENDIF}end; |