Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизSplashScreen Найти похожие ветки
← →
DJ X (2002-05-25 09:14) [0]Я пытаюсь сделать сплэшскрин: объявил форму с ним главной, но теперь не могу скрыть его при появлении формы, которая и должна быть главной. Как быть?
← →
1234567890 (2002-05-25 10:38) [1]
> | Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
> Форумы | ЧАТ | Кладовка | Сайты | Corba | DelphiGFX |
>
> Основная / Базы / Система / WinAPI / Сети / Мультимедиа
> / Алгоритмы / CORBA / Потрепаться / Журнал / rsdn.ru
>
>
> вернутьсяДата: 25.05.02 09:14
> Новинки книжного рынка
> Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая
> ветвь | форум | следующая ветвь »
>
>
> SplashScreen [D6, WinXP]
>
> DJ X © (25.05.02 09:14)
> Я пытаюсь сделать сплэшскрин: объявил форму с ним главной,
> но теперь не могу скрыть его при появлении формы, которая
> и должна быть главной. Как быть?
>
>
>
> Написать ответ
← →
yozhik (2002-05-25 10:59) [2]1. Это кидаешь в dpr:
try
frmSplash := TfrmSplash.Create(Application);
frmSplash.Show;
frmSplash.Update;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
repeat
Application.ProcessMessages;
until frmSplash.CloseQuery;
frmSplash.Hide;
finally
frmSplash.Free;
end;
Application.Run;
2. На сплэшформе ставишь таймер и пишешь следуюющее:
procedure TfrmSplash.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose := Not Timer1.Enabled;
end;
procedure TfrmSplash.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
end;
3. В Сплэшформе: FormStyle=fsStayOnTop, она дожна быть в Available forms
← →
Anatoly Podgoretsky (2002-05-25 11:13) [3]yozhik (25.05.02 10:59)
Откомпилировать пробовал?
Тебя как минимум должна отругать за эту строчку
until frmSplash.CloseQuery;
← →
Proton (2002-05-25 14:39) [4]Вот кусок DPR файла от моего курсовика
{$R IMGSPLASH.RES}
{$R REGION.RES}
{$R ICO&CUR.RES}
{$R *.RES}
Procedure MoveCenter(wnd : hwnd);
var rc:trect;
x,y : integer;
begin
GetWindowRect(wnd,rc);
x := GetSystemMetrics(SM_CXSCREEN);
y := GetSystemMetrics(SM_CYSCREEN);
MoveWindow (wnd,
(x - (rc.right - rc.left)) shr 1, //* x position */
(y - (rc.bottom - rc.top)) shr 1, //* y position */
rc.right - rc.left, //* x size */
rc.bottom - rc.top, //* y size */
TRUE); //* paint the window */
end;
Procedure RealignWindows;
var i:integer;
begin
for i:=0 to Application.ComponentCount -1 do
if Application.Components[i] is TForm then
with (Application.Components[i] as TForm) do
begin
MoveCenter(Handle);
Top := Application.MainForm.Height;
end;
end;
Procedure UpDateCursors(const Comp:TComponent);
var i:integer;
begin
with comp do
for i:=0 to ComponentCount-1 do
begin
if (Components[i] is TControl) then
with (Components[i] as TControl) do
if cursor = crdefault then Cursor:= 100;
if (Components[i] is TComponent) then
UpDateCursors(Components[i]);
end;
end;
begin
Form7 := TForm7.Create(Application);
form7.showtime := GetTickCount;
Form7.Show;
Form7.Update;
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TQuickReportTime, QuickReportTime);
Application.CreateForm(TQuickReportSocGr, QuickReportSocGr);
Application.CreateForm(TQuickReportLoc, QuickReportLoc);
Application.CreateForm(TForm2, Form2);
Screen.Cursors[100] := LoadCursor(HInstance,"ARROW");
UpDateCursors(Application);
form7.showtime:=GetTickCount - form7.showtime;
if form7.showtime <3000 then Sleep(3000-form7.showtime);
Form7.Hide;
Form7.Free;
RealignWindows;
SetForegroundWindow(Form4.Handle);
BringWindowToTop(Form4.Handle);
BringWindowToTop(Form4.Handle);
Application.Run;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c