Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2019.03.10;
Скачать: CL | DM;

Вниз

Сплэш окно, MainWindow   Найти похожие ветки 

 
DevilDevil ©   (2013-01-22 09:57) [0]

Здравствуйте уважаемые форумчане

Когда то давным давно я уже пробовал такую штуку, но помню какие-то запары, когда при сворачивании окна, оно идёт не в панель задач, а в левый нижний угол.

В общем мне нужно реализовать окно логина перед входом в программу. Как это сделать в плане рутины MainWindow ? Какое окно сделать главным: сплеш окно или основную форму ?


 
clickmaker ©   (2013-01-22 12:06) [1]

.dpr

if TLoginForm.Execute then
 Application.Run;


 
DevilDevil ©   (2013-01-22 14:41) [2]

> clickmaker ©   (22.01.13 12:06) [1]

спасиб!
завтра проверю


 
DevilDevil ©   (2013-02-15 12:35) [3]

> clickmaker ©   (22.01.13 12:06)

проверил только через месяц :)
форма не имеет метода Execute, тем более классового
Delphi7


 
Игорь Шевченко ©   (2013-02-15 13:37) [4]

"C:\Program Files\Borland\Delphi\Demos\Db\MastApp\mastapp.dpr"

как-то так


 
Плохиш ©   (2013-02-15 13:50) [5]


> DevilDevil ©   (15.02.13 12:35) [3]
> > clickmaker ©   (22.01.13 12:06)
>
> проверил только через месяц :)
> форма не имеет метода Execute, тем более классового

Надо нанять программиста - он сделает ей этот метод и даже классовый.


 
брат Птибурдукова   (2013-02-15 14:38) [6]


> Плохиш ©   (15.02.13 13:50) [5]
Флёнов о таком не писал!


 
DevilDevil ©   (2013-02-15 15:02) [7]

> Игорь Шевченко ©   (15.02.13 13:37) [4]

begin
 Application.Initialize;
 SplashForm := TSplashForm.Create(Application);
 SplashForm.Show;
 SplashForm.Update;
 Application.Title := "Marine Adventures Order Entry";
 Application.HelpFile := "MASTAPP.HLP";
 Application.CreateForm(TMastData, MastData);
...
 SplashForm.Hide;
 SplashForm.Free;
 Application.Run;
end.


у меня при таком подходе окно сразу же закрывается
сделал так:
var
 ret: integer;
begin
 Application.Initialize;
 Application.Title := "УчётДел";

 with TLoginForm.Create(Application) do
 begin
   ret := ShowModal();
   Free;
 end;
 if (ret <> mrOk) then exit;

 Application.CreateForm(TMainForm, MainForm);
 Application.Run;
end.


но появляется та же проблема, о которой говорил в [0]
при сворачивании окна логирования, оно идёт не в панель задач, а в левый нижний угол. Как выход - запретить кнопку сворачивания окна. Но я в первую очередь хочу понять, как заставить и LoginForm и MainForm адекватно сворачиваться в панель задач


 
DevilDevil ©   (2013-02-15 15:04) [8]

> брат Птибурдукова   (15.02.13 14:38) [6]
> Флёнов о таком не писал!

у тебя, как специалиста лучше него, есть прекрасная возможность продемонстрировать свои навыки

> Плохиш ©   (15.02.13 13:50) [5]
> Надо нанять программиста - он сделает ей этот метод и даже классовый.


посоветуй какого-нибудь толкового ?
только я надеюсь ты посоветуешь не себя. Ибо специалист, не умеющий читать - нам не нужен


 
знайка   (2013-02-15 15:22) [9]


>  оно идёт не в панель задач, а в левый нижний угол
ошибка раньше 17 строки.


 
DevilDevil ©   (2013-02-15 15:27) [10]

> знайка   (15.02.13 15:22) [9]

создай проект с двумя формами
одна auto-created, другая available
выполни код из [7], нажми на "свернуть"
сделай элементарные действия прежде, чем засорять мою ветку


 
Игорь Шевченко ©   (2013-02-15 16:14) [11]

В приведенном примере сплеш-форма не может быть свернута. В панель задач без дополнительных ухищрений минимизируется только Application.MainForm.


 
DevilDevil ©   (2013-02-15 16:32) [12]

> Игорь Шевченко ©   (15.02.13 16:14) [11]

о том и речь
рассуждаем логически, с точки зрения пользователя

он кликает по ярлыку - открывается окно логина
для него оно - главное в данный момент

может быть у него пароль записан в "Моих документах", может надо временно свернуть чтобы глаза не мозолило. И при свёртывании программа ведёт себя нелогично, сворачиваясь в левый нижний угол. Как грамотно обработать такую ситуацию ?


 
Savek   (2013-02-16 16:50) [13]

окошко, для ввода пароля сворачивать нет смысла - оно слишком мало, что бы что-то загораживать, и в нём нет никакой информации, что бы не дай бог не потерять. Если оно "мозолит глаза" его логично закрыть, а дальше два варианта: либо завершаешь всё приложение, либо показываешь главную форму, у которой активны только системные кнопки и два пункта меню "логон" и "эксит". Вот это поведение логично сточки зрения пользователя.


 
DevilDevil ©   (2013-02-16 18:22) [14]

на что только люди не пойдут, лишь бы не отвечать на вопрос, как грамотно разрулить эти особенности со сворачиванием

> Savek

есть доля истины в твоих словах
но я всё-таки хотел бы найти ответ на интересующий меня вопрос


 
Германн ©   (2013-02-17 04:09) [15]


> DevilDevil ©   (16.02.13 18:22) [14]
>
> на что только люди не пойдут, лишь бы не отвечать на вопрос,
>  как грамотно разрулить эти особенности со сворачиванием

На что только некоторые люди готовы пойти, чтобы реализовать свои глупые желания. :)

Ввод пароля - это как правило модальный диалог. Сворачивать его нет смысла как уже было сказано. Так что же ты хочешь, Саид?


 
Игорь Шевченко ©   (2013-02-17 16:26) [16]


> но я всё-таки хотел бы найти ответ на интересующий меня
> вопрос


"Managing Taskbar Buttons

The Shell creates a button on the taskbar whenever an application creates a window that isn"t owned. To ensure that the window button is placed on the taskbar, create an unowned window with the WS_EX_APPWINDOW extended style. To prevent the window button from being placed on the taskbar, create the unowned window with the WS_EX_TOOLWINDOW extended style. As an alternative, you can create a hidden window and make this hidden window the owner of your visible window."

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776822(v=vs.85).aspx



Страницы: 1 вся ветка

Текущий архив: 2019.03.10;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.004 c
15-1477431002
Юрий
2016-10-26 00:30
2019.03.10
С днем рождения ! 26 октября 2016 среда


2-1478291127
Иван
2016-11-04 23:25
2019.03.10
Определить путь к файлу (TSearchRec)


4-1268219090
Maksim V.
2010-03-10 14:04
2019.03.10
Стиль меню под Vista и 7


2-1478620871
Некто
2016-11-08 19:01
2019.03.10
StringGrid.Objects


1-1358834250
DevilDevil
2013-01-22 09:57
2019.03.10
Сплэш окно, MainWindow