Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Вниз

Три окна и GW_HWNDPREV   Найти похожие ветки 

 
Прохожий 001   (2008-03-07 14:05) [0]

Мне нужно сделать так, чтобы при открытии нескольких окон (здесь - три штуки) и последующем закрытии окон, которые были открыты позже, активировалось то окно, которое находится "под ним", т.е. то, которое было открыто на шаг раньше. Какую команду мне использовать? Заранее спасибо.


 
Palladin ©   (2008-03-07 14:48) [1]

команду присвоения


 
Сергей М. ©   (2008-03-07 15:19) [2]


> "под ним", т.е. то, которое было открыто на шаг раньше


Временной порядок "открытия" окон напрямую не связан с Z-порядком.


 
Прохожий 001   (2008-03-11 08:11) [3]

А делать-то что?:)


 
Семеныч   (2008-03-11 14:35) [4]

> Прохожий 001   (11.03.08 08:11) [3]
> А делать-то что?:)

Вариант 1 (самый простой).
Использовать ShowModal, а не Show.

Вариант 2 (если  ShowModal не годится).
Каждая форма, когда она порождает следующую, передает ему ссылку на себя. Когда форма закрывается, она активизирует форму по этой ссылке.


 
Leonid Troyanovsky ©   (2008-03-11 15:47) [5]


> Семеныч   (11.03.08 14:35) [4]

> Вариант 2 (если  ShowModal не годится).
> Каждая форма, когда она порождает следующую, передает ему
> ссылку на себя. Когда форма закрывается, она активизирует
> форму по этой ссылке.

Если они немодальные, то порядок их закрытия (уничтожения) произвольный.

Да, и, во-ще, автор чего-то недоговаривает.

--
Regards, LVT.


 
Последний доброхот   (2008-03-11 15:56) [6]


> Прохожий 001   (07.03.08 14:05)


Хранить в массиве дескрипторы создаваемых окон. При закрытии окна активировать предыдущее окно.


 
Игорь Шевченко ©   (2008-03-11 16:12) [7]

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

uses SomeForm;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 with TForm2.Create(Self) do
   Show;
end;

end.


unit SomeForm;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm2 = class(TForm)
   Button1: TButton;
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure Button1Click(Sender: TObject);
 end;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 with TForm2.Create(Self) do
   Show;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if (Owner is TCustomForm) then
   TCustomForm(Owner).SetFocus;
end;

end.


Не оно ?


 
Последний доброхот   (2008-03-11 16:18) [8]


> Игорь Шевченко ©   (11.03.08 16:12) [7]



> Мне нужно сделать так, чтобы при открытии нескольких окон
> (здесь - три штуки) и последующем закрытии окон


 
{RASkov} ©   (2008-03-11 16:32) [9]

> [8] Последний доброхот   (11.03.08 16:18)

Мне тоже не совсем понятен вопрос автора, но я присоединяюсь к ответу Игоря...
Он, кстати, так же уточняет свой вариант ответа у автора.... см. в конце поста ИШ.


 
Игорь Шевченко ©   (2008-03-11 16:33) [10]

Последний доброхот   (11.03.08 16:18) [8]

И чего не так ?


 
Последний доброхот   (2008-03-11 16:36) [11]


> И чего не так ?


Ему окна, а не формы интересуют.


 
Игорь Шевченко ©   (2008-03-11 16:41) [12]


> Ему окна, а не формы интересуют.


ему пока молчит как партизан


 
{RASkov} ©   (2008-03-11 16:50) [13]

> [11] Последний доброхот   (11.03.08 16:36)
> Ему окна, а не формы интересуют.

А что есть понятие "окно" - в конве для начинающих?


 
Последний доброхот   (2008-03-11 16:54) [14]


> {RASkov} ©   (11.03.08 16:50) [13]
> > [11] Последний доброхот   (11.03.08 16:36)
> > Ему окна, а не формы интересуют.
>
> А что есть понятие "окно" - в конве для начинающих?


А понятие "окно" в любом контекстве можно употребить только как "окно". Так же и форму.


 
{RASkov} ©   (2008-03-11 16:56) [15]

> [14] Последний доброхот   (11.03.08 16:54)
> можно употребить только как "окно".

Вот именно что можно, но никто не обещал :)


 
Последний доброхот   (2008-03-11 17:04) [16]


> {RASkov} ©   (11.03.08 16:56) [15]
> > [14] Последний доброхот   (11.03.08 16:54)
> > можно употребить только как "окно".
>
> Вот именно что можно, но никто не обещал :)


Ну додумывать много можно;)


 
Leonid Troyanovsky ©   (2008-03-11 17:38) [17]


> Игорь Шевченко ©   (11.03.08 16:12) [7]

>  if (Owner is TCustomForm) then
>    TCustomForm(Owner).SetFocus;

Предположить, что здесь достаточно Action := caFree;
еще проще.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2008-03-11 17:42) [18]


> {RASkov} ©   (11.03.08 16:32) [9]

> Мне тоже не совсем понятен вопрос автора

А мне совсем непонятен :)
Особенно "открыто на шаг раньше" & GW_HWNDPREV.

--
Regards, LVT.



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

Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.006 c
3-1195207709
Lodr_
2007-11-16 13:08
2008.04.06
Коннект с сервером(FIBPlus)


2-1205488494
Student :)
2008-03-14 12:54
2008.04.06
как работать с MSXML через прокси?


2-1205422418
unknowing
2008-03-13 18:33
2008.04.06
Проблемма с работой с классами + GDI+


2-1204887929
Прохожий 001
2008-03-07 14:05
2008.04.06
Три окна и GW_HWNDPREV


15-1203510685
Raven
2008-02-20 15:31
2008.04.06
Процедура для изучения Delphi для новичков :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский