|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
15.08.2007, 18:00 | #1 |
Пользователь
Регистрация: 15.08.2007
Сообщений: 17
|
Сворачивание формы.
Есть 2 формы - Form1 и Form2.
При запуске программы запускается Form1, в которой пользователь выбирает свой профиль и после этого вызывается Form2, которая и является "основной" формой программы, всю работу с программой пользователь производит именно в ней. Теперь о проблеме: При попытке свернуть Form2 она сворачивается как MDIChild (или по другому как в Word-e документ) в левый нижний угол экрана. Как заставить ее сворачиватся в панель задач? При нажатии на программу в панели задач она нормально сворачивается, при попытке свернуть ее щелчком по иконке "Свернуть" она сворачивается в левый угол экрана? Пробовал вызывать окна и при помощи ShowModal и Show (скрывая другую форму) - результат одинаковый? Я понимаю, что Form1 является "главной" формой проекта, но как обойти можно данную проблему? |
15.08.2007, 18:29 | #2 |
Форумчанин Подтвердите свой е-майл
Регистрация: 07.07.2007
Сообщений: 241
|
Child нельзя сворачивать в панель задач. Сделай form2 главной, при form2.create напиши
begin form1.show; form2.alphablendvalue:=0; end; Когда пользователь выберет профиль: begin form2.alphablendvalue:=255; form1.close; end; |
15.08.2007, 18:41 | #3 |
Пользователь
Регистрация: 11.04.2007
Сообщений: 75
|
AlphaBlend надо поставить True
|
15.08.2007, 18:47 | #4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Diogo, еще как вариант не закрывай форму пароль, а скрой (Hide) или сделай невидимой (Visible:=false). Надо будет завершить приложение вызови Form1.Close, например при закрытии другой формы.
P.S. А кто-то знает как сделать программу с двумя независимыми окнами, но процесс чтоб был один?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
15.08.2007, 18:58 | #5 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
alphablend.... опять... да пожалейте вы пользователя... вы в курсе сколько ресурсов необходимо для этого ?
ответ... type TForm = class(TForm) {...} protected procedure CreateParams(var Params: TCreateParams); override; end; implementation {...} procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; Params.WndParent := GetDesktopWindow; end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
15.08.2007, 20:49 | #6 | |
Пользователь
Регистрация: 15.08.2007
Сообщений: 17
|
Цитата:
Сейчас попробую предложенные варианты |
|
15.08.2007, 21:38 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Квэнди а не подскажешь для чего эта строка
Params.WndParent := GetDesktopWindow; я пробовал без нее, тот же результат. p.s. не надо, уже разобрался
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 15.08.2007 в 21:42. |
15.08.2007, 21:47 | #8 | |
Пользователь
Регистрация: 15.08.2007
Сообщений: 17
|
Цитата:
TfrmMain = class(TForm) pc: TPageControl; tsPers: TTabSheet; tsLogs: TTabSheet; {...} procedure DeleteDublicateLogs; procedure btnAddClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnAddLogClick(Sender: TObject); procedure LogsDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); {...} protected procedure CreateParams(var Params: TCreateParams); override; private { Private declarations } public { Public declarations } end; {...} implementation uses Unit2, Unit3, Unit4, Unit5; {$R *.dfm} procedure TfrmMain.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; Params.WndParent := GetDesktopWindow; end; {... Дальше очень много строк программы...} Результат получается следующий: После запуска Form1 и нажатия на кнопочку загрузки профиля эта форма себя скрывает Form1.Hide и вызывает frmMain.ShowModal; После отображения на экране frmMain в панели задач появляется 2 кнопки программы. Клики на первую не приводят ни к чему, а второй нормально сворачивается/разворачивается.. При нажатии на кнопочку свернуть в заголовке окна, форма нормально сворачивается нормально, как я и хотел, но как убрать 2-е окошко? |
|
15.08.2007, 21:48 | #9 |
Пользователь
Регистрация: 15.08.2007
Сообщений: 17
|
|
16.08.2007, 00:25 | #10 |
Пользователь
Регистрация: 10.08.2007
Сообщений: 43
|
Держи сёрс. Главная фиха там в том что мы до запуска приложения вызываем показ второй формы. Загляни в Project -> View Source и всё поймёшь
Комьютер не поддаётся законам физики:
Глюки появляются из неоткуда, файлы пропадают в никуда... Объём диска называется весом и измеряется в метрах... --------------------------------------------------- Дрова для модема находятся на диске, а дрова для дисковода - в интернете... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сворачивание окон | Blackmore | Общие вопросы Delphi | 1 | 19.05.2008 18:27 |
Возможно ли пауза Music XM при сворачивание формы ? | Volkogriz | Общие вопросы Delphi | 3 | 13.10.2007 15:04 |
Сворачивание окон | Legat | Win Api | 2 | 08.10.2007 16:36 |
Сворачивание формы | s-force | Общие вопросы Delphi | 1 | 29.08.2007 19:52 |