|
Тема
|
Open, Close Form и отново Open, Close
|
|
Автор | poди (Нерегистриран) |
Публикувано | 31.05.07 16:41 |
|
Много ми е неудобно, че все се налага да питам, но не мога да узрея следния момент:
Имам 2 форми. Отварям едната или другата със ShowModal. Във всяка една имам бутон, с който да се премине към другата. Ако Ф1 е отворена и се премине с бутона към Ф2 - проблем няма, но ако в следващ момент отворя Ф1 от бутона вече имам изключение "Cannot make a visible windoe modal "
Как да го излъжа?
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: poди]
|
|
Автор | Timo (Нерегистриран) |
Публикувано | 31.05.07 17:51 |
|
Napravi prisvojavane na formata s kojato se raboti
var
uses Unit2
Form1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
var
uses Unit1
Form2.Button1Click(Sender: TObject);
Begin
Form1.ShowModal;
end;
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: poди]
|
|
Автор |
Formal (незнаещ) |
Публикувано | 31.05.07 18:39 |
|
Модалните форми се трупат една върху друга и докато не затвориш най-горната, не можеш да работиш с никоя друга. Като затвориш най-горната - можеш да работиш със следващата, която вече става най-горна, и т.н. докато затвориш всички модални форми на приложението, чак след което можеш да работиш с останалите (немодални) форми.
Конкретно за твоя случай: правиш едната форма модална, после от нея показваш другата - пак модално. Това означава, че не можеш да работиш с долната форма (първата), преди да си затворила горната (втората). Затова получаваш тази грешка. За твое щастие, решението на проблема е много просто - показвай формите със Show, вместо със ShowModal.
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: Formal]
|
|
Автор | rodi (Нерегистриран) |
Публикувано | 31.05.07 20:03 |
|
Да, използвам uses и на двете форми.
Опитах и с Show, но тогава желаната форма не е най-горе (затова и ползвах ShowModal)
Как да е хем със Show, хем да е Top??
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: Formal]
|
|
Автор | poди (Нерегистриран) |
Публикувано | 31.05.07 20:29 |
|
procedure TF1.BtnClick(Sender: TObject);
begin
Self.Visible:=False;
try
F1.ShowModal // или с F1.Show
finally
Self.Visible:=True;
end
end;
Отварях ги наред по този начин и не се получаваше. Имам и други модални форми по-надолу.
Оставих само
F1.Show
и май се получи
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: rodi]
|
|
Автор | Timo (Нерегистриран) |
Публикувано | 31.05.07 20:32 |
|
Izpolzvai predvaritelno zadadeni koordinati pri startirane na formata.
Vmakni gi v Greate
| |
Тема
|
Re: Open, Close Form и отново Open, Close
[re: poди]
|
|
Автор | Timo (Нерегистриран) |
Публикувано | 31.05.07 20:57 |
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
Form2.Visible:=True;
Form1.Visible:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Top:=200;
Form1.Left:=200;
Form1.ClientHeight:=200;
Form1.ClientWidth:=200;
end;
end.
**********************************************************
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
Form1.Visible:=True;
Form2.Visible:=False;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.Top:=200;
Form2.Left:=200;
Form2.ClientHeight:=200;
Form2.ClientWidth:=200;
end;
end.
| |
|
|
|
|