Главная страница
    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.48 MB
Время: 0.006 c
2-1205081463
NaRuTo
2008-03-09 19:51
2008.04.06
WM_COPYDATA


15-1203875961
Cyrax
2008-02-24 20:59
2008.04.06
Где можно найти эту чёртову книгу в электронном варианте...


2-1205050404
WD
2008-03-09 11:13
2008.04.06
Отрисовка из ImageList


3-1195200106
Tonich
2007-11-16 11:01
2008.04.06
ADO Access


2-1205302664
Phoenix
2008-03-12 09:17
2008.04.06
Как перекинуть рисунки из одного ImageList в другой?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский