Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 15:28 26.02.21 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема 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.











Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2021 Dir.bg Всички права запазени.