![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Немодальное окно в модальном приложении, возможно? [D5]
newbie2 © (2007-02-14 14:56:00)Привет!
Все формы в приложении открываются через ShowModal
но требуется чтоб одно из окон было открыто в свободном доступе, на него всегда можно было бы переключиться
возможно ли это реалзовать (и как) ?
iXT (2007-02-16 09:34:00) [1]Form2.Show;
OnShow
begin
FormX.Enable:=false; //X- куча форм, которые юзеру низя трогать
end;
OnClose
begin
FormX.Enable:=true;
end;
P.S. А вообще бред ты задумал :)
newbie2 (2007-02-15 17:34:00) [2]гы, блин, оттцы, пусть вам будет стыдно, заодно попробуйте литературу перечитать
если очень постараться то всего можно добиться
в общем у меня все работает :)
и даже спасибо сказать не только не хочеться но и некому, кроме себя родимого и Vlad Oshin(хотя Ваш вариант и не использовал)
newbie2 (2007-02-15 17:28:00) [3]блин, народ, завязывай
ответе нормально на вопрос:
"как можно запретить доступ к форме/переключение на неё"
предполагаю сделать чтонеибудь в этом роде:
...
Form2.Show;
while Form2.Visible do
Application.HandleMessage;
end;
...
но при этом требуется запретить возможность манипуляций юзера с текущим окном
Сергей М. (2007-02-15 17:07:00) [4]
> очень глобально
Дурь какая-то)
Чем "очень глобально" отличается от "не слишком локально" ?))))
Плохиш (2007-02-15 16:45:00) [5]Я бы посоветовал для начала почитать литературу, особенно раздел по созданию приложений с SDI-интерфейсом. Может отпадёт желание иметь странное.
newbie2 (2007-02-15 16:40:00) [6]>написать свою ОС
ну это слишком глобально
думаю можно реализовать свой ShowModal внеся туда список форм для исключения
Плохиш (2007-02-15 16:38:00) [7]
> я спрашиваю как можно плавающую_форму сделать действительно
> доступной всегда
Не вызывая другие формы как модальные или написать свою ОС.
newbie2 (2007-02-15 16:33:00) [8]как можно запретить доступ к форме/переключение на неё
(посмотрел исходники ShowModal, но там очень глобально все отключается)
Vlad Oshin (2007-02-14 15:39:00) [9]просто интересно.. вот такие мысли:
такое окно отслеживает над каким окном мыша
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure ShowHwndAndClassName(CrPos: TPoint);
procedure wmActivate (var Msg:TWMACTIVATE); message wm_Activate;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMActivate (var Msg:TWMActivate);
begin
if (Msg.Active = WA_ACTIVE) or (Msg.Active = WA_CLICKACTIVE)
then label1.Font.Color := clActiveCaption
else label1.Font.Color := clInactiveCaption;
inherited;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
rPos: TPoint;
begin
if Boolean(GetCursorPos(rPos)) then ShowHwndAndClassName(rPos);
end;
procedure TForm1.ShowHwndAndClassName(CrPos: TPoint);
var
hWnd: THandle;
aName: array [0..255] of Char;
begin
hWnd := WindowFromPoint(CrPos);
Label1.Caption := 'Handle : ' + IntToStr(hWnd);
if Boolean(GetClassName(hWnd, aName, 256)) then
Label2.Caption := 'ClassName : ' + string(aName)
else
Label2.Caption := 'ClassName : not found';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.FormStyle := fsStayOnTop;
Timer1.Interval := 50;
end;
можно переделать так, что если над интересующем кликнули - то его и опять выставить showmodal вперед
Сергей М. (2007-02-14 15:22:00) [10]
> newbie2 (14.02.07 15:15) [4]
У тебя с головой все в порядке ?)
Модальные формы для того и придуманы, чтобы удерживать фокус вплоть до момента их закрытия !
newbie2 (2007-02-14 15:15:00) [11]я вопрос не об этом задавал
вызвано:
...
плавающая_форма.Show // это некое плавающее окно, которое должно быть доступно всегда
...
модельная_форма.ShowModal // после вызова этой формы плавающая_форма становиться не доступна пользователю
я спрашиваю как можно плавающую_форму сделать действительно доступной всегда
Сергей М. (2007-02-14 15:07:00) [12]
> подробности в тексте
В какомтексте ?
> ага
Дурь какая-то)
Ну и как ты, позволь полюбопытствовать, измордовал с этой целью dpr ?
newbie2 (2007-02-14 15:00:00) [13]> Термин "Приложение" никак не связан с термином "Модальность".
написал, для сокращенного варианта, подробности в тексте
> Что, и главная тоже ?!
ага
Сергей М. (2007-02-14 14:58:00) [14]
> модальном приложении
Термин "Приложение" никак не связан с термином "Модальность".
> Все формы в приложении открываются через ShowModal
Что, и главная тоже ?!