Форум: "Начинающим";
Текущий архив: 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