Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание форм [D5, NT4, Win2k]


Stocker! ©   (2002-09-19 08:40:00) 

Такой вопрос:
Есть главная форма из неё вызывается форма Form1 двумя разными способами:
___________
| Гл. форма | - > From1.Create (одна форма со своими аттрибутами)
|___________| - > From1.Create (вторая форма со своими аттрибутами)

Как мне сделать так, чтобы создалось две таких формы (каждая со своими аттрибутами), но при этом если мы из главной формы их заново вызываем то они не создаются заново, а просто становятся активными


Separator   (2002-09-20 07:08:00) [1]


{если основная форма минимизирована, восстанавливаем ее}
if IsIconic(Application.Handle) then
begin
Application.MainForm.WindowState := wsNormal;
ShowWindow(Application.Mainform.Handle, sw_restore);
end;
{передаем фокус приложению}
SetForegroundWindow(Application.MainForm.Handle);


Выдрал из Кулибы :)


Stocker!   (2002-09-20 06:52:00) [2]

И такой небольшой вопросик:
Если форму свернули или сделали неактивной (форма не уничтожена) как её сделать активной?


Stocker!   (2002-09-20 06:49:00) [3]

2All всем спасибо за советы разобрался


Севостьянов Игорь   (2002-09-19 13:56:00) [4]

А почему не воспользоваться старым, добрым MDIForms ?


Старый Паскалист   (2002-09-19 10:44:00) [5]

2Stocker!
Да, не заметил твоего

>2Separator В смысле разными именами мне одна и та же форма >нужна, а создавать две одинаковых но отличающихся именами ... >как то не по людски

Ты тогда скажи: обе формы у тебя выполняют одну функцию или разные? (функцию не в смысле function, а в смысле назначения)

Если разные, значит их нужно называть разными именами.
А если одну, то зачем тебе две формы?


Старый Паскалист   (2002-09-19 10:30:00) [6]

TMainForm = class()
private
FForm1No1: TForm1;
FForm1No2: TForm1;

procedure GetForm1No1: TForm1
//begin
// if FForm1No1 = nil then
// FForm1No1 := TForm1.Create(...ParamSet1);
// Result := FForm1No1;
//end;

procedure GetForm1No2: TForm1
//begin
// if FForm1No2 = nil then
// FForm1No2 := TForm1.Create(...ParamSet2);
// Result := FForm1No2;
//end;
public
property Form1No1: TForm1 read GetForm1No1;
property Form1No2: TForm1 read GetForm1No2;
end;

И обращаться к пропертям:

MainForm.Form1No1.SomeMethod...

(Только имена получше подбери)


Separator   (2002-09-19 10:25:00) [7]

А ты как хотел??? А ты как думаешь дельфи дщлжен различать к какой форме идет обращение???


Stocker!   (2002-09-19 10:22:00) [8]

2Separator В смысле разными именами мне одна и та же форма нужна, а создавать две одинаковых но отличающихся именами ... как то не по людски


Separator   (2002-09-19 08:46:00) [9]

Просто обзови эти формы разными именами и создавай


Наверх

Титульная страница Поиск, карта сайта Написать письмо