Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Форма   Найти похожие ветки 

 
Fleg ©   (2007-07-19 15:54) [0]

Приветствую!
Проблема с динам. созданием формы.
Нужно: форма из одного модуля по нажатию кнопки создавала и показывала другую форму, принадлежащую второму модулю
желательно указать исходный код.
Спасибо.


 
Amoeba ©   (2007-07-19 15:57) [1]

И в чем сложность? Задача ведь на уровне букваря.


 
Ega23 ©   (2007-07-19 16:00) [2]

Что непонятно?


 
Stanislav ©   (2007-07-19 16:08) [3]

Form2:=TForm2.Create(self)


 
Fleg ©   (2007-07-19 17:38) [4]


> Form2:=TForm2.Create(self)

Если во втором модуле указать:
type
 TForm2 = class(TForm)
end;
var
 Form2: TForm2;
А в первом(в котором форма создается автоматически) по нажатию кнопки задать:
Form2:=TForm2.Create(self)
то возникает ошибка "resourse tform2 not found"
как же правильно создать, а главное вывести окно?
help =(


 
Ega23 ©   (2007-07-19 17:42) [5]


> type
>  TForm2 = class(TForm)
> end;
> var
>  Form2: TForm2;


Не всё так просто. Ресурс - где?


 
THandle ©   (2007-07-19 17:43) [6]

uses unit2; ?


 
Fleg ©   (2007-07-19 17:46) [7]

В uses я включил...это я знаю...

> Не всё так просто. Ресурс - где?

Можно поподробнее, а лучше  с кодом.


 
iXT ©   (2007-07-19 17:46) [8]

Имхо, сдается мне что Вы чрезвычайно нуждаетесь в покупке "букваря" или хотябы сходить в библиотеку (интернет)


 
Fleg ©   (2007-07-19 17:47) [9]


> Имхо, сдается мне что Вы чрезвычайно нуждаетесь в покупке
> "букваря" или хотябы сходить в библиотеку (интернет)

есть немного...

Но все же что за ресурс?


 
THandle ©   (2007-07-19 17:50) [10]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
uses unit2;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create(Self);
Form2.ShowModal;//Show;
end;

end.

-----------------------------------
----------------------------------
---------------------------------

unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm2 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

end.


 
Fleg ©   (2007-07-19 17:51) [11]


> THandle

Uses unit2 нужно подключать после  implementation?


 
THandle ©   (2007-07-19 17:52) [12]

Можно


 
Fleg ©   (2007-07-19 17:53) [13]


> > THandle

Не работает=(


 
Fleg ©   (2007-07-19 17:55) [14]


> > > THandle

У тебя этот код работает???


 
THandle ©   (2007-07-19 17:56) [15]

Project -> Options -> Form2 > Available Forms


 
THandle ©   (2007-07-19 17:57) [16]


> Fleg ©   (19.07.07 17:55) [14]
> > > > THandle У тебя этот код работает???


Ты думаешь здравомыслящий человек будет давать непроверенный код???


 
Fleg ©   (2007-07-19 17:59) [17]

Во вкладке forms у меня в списке только form1 - ???


 
Ivolg ©   (2007-07-19 18:02) [18]

procedure TForm1.Button1Click(Sender: TObject);
var
  Form2: TForm;
begin
    Form2:=TForm.Create(Self);
    Form2.Show;
end;

?


 
Fleg ©   (2007-07-19 18:06) [19]


> Ivolg ©

Спасибо!!!
Если указывать Form2:=TForm2.Create(Self); то  не работает,
если указать Form2:=TForm.Create(Self); то все как надо.
ПОЧЕМУ?????


 
THandle ©   (2007-07-19 18:06) [20]


> Ivolg ©

А как же его Unit2???


 
iXT ©   (2007-07-19 18:07) [21]

> [19] Fleg ©   (19.07.07 18:06)

Не видно класса TForm2


 
THandle ©   (2007-07-19 18:09) [22]


> Fleg ©


Кинь мне на мыло Handle@list.ru
Просто ради интереса.
Пожалуста.


 
Fleg ©   (2007-07-19 18:13) [23]


> А как же его Unit2???


...вообще работает не как надо - unit2 программа не использует, а мне надо...

> Не видно класса TForm2

А решение каким может быть?


 
Fleg ©   (2007-07-19 18:15) [24]


> Кинь мне на мыло

сейчас скину...


 
Ivolg ©   (2007-07-19 18:25) [25]

Можно поиздеватся и так:
...
type
 TForm2 = class(TForm)
   constructor Create(AOwner: TComponent); override;
 end;
...

constructor TForm2.Create(AOwner: TComponent);
begin
inherited Create(AOwner);

end;
...

procedure TForm1.Button1Click(Sender: TObject);
var
  Form2: TForm2;
begin
    Form2:=TForm2.Create(self);
    Form2.Show;
end;


 
THandle ©   (2007-07-19 18:30) [26]


> Fleg ©  


Я тебе отправил правильный архивчик.
У тебя отсутствует файл .dfm второй формы.


 
Ivolg ©   (2007-07-19 18:31) [27]

[25]

При наличии, что вторая форма создана.


 
Fleg ©   (2007-07-19 18:31) [28]


> Ivolg ©


> THandle ©


Пришлите, пожалуйста, рабочий проект!!! freeeman-t@mail.ru


 
Fleg ©   (2007-07-19 18:36) [29]


> > THandle ©

Твой проект работает.  

Еще вопрос - как ты сохранил Unit2.dfm - я выделил вкладку unit2 выбрал тип dfm, сохранил, но unit2.dfm в раб. папке так и не появилось...save all тоже не помогло...может дельфи глючит?


 
Fleg ©   (2007-07-19 18:37) [30]

Вместо этого он сохраняет в формате .pas


 
THandle ©   (2007-07-19 18:43) [31]

Создай пустой проект.
Выбери File -> New -> Form;
Дальше тыкай Project -> Options и перемещай Form2 из Auto-create Forms в Available Forms;
На первую форму ставь кнопку.
В событии OnClick пиши :
Form2:=TForm2.Crete(Self);
Form2.ShowModal;
Жми Save All.
Делфи тебя три раза спросит куда надо сохранять.
Запускай и радуйся жизни.

С подобными вопросами лучше обращяйся ко мне.


 
Fleg ©   (2007-07-19 18:49) [32]

пустой проект - проект с одной формой(по умолчанию), я так понял.
Когда выбераешь File - new - form (при уже существующей 1-ой форме)- это динамическое создание??? Иначе нельзя?


 
THandle ©   (2007-07-19 18:55) [33]

Иначе впринципе второй Unit не нужен.

[18], но тогда ты лишаешся радости ставить компоненты на вторую форму мышом.

Делай как хочеш.


 
Fleg ©   (2007-07-19 18:59) [34]

Если добавить форму через file - new -form и поместить её в Available Forms,
она не будет использовать ресурсы в начале работы приложения(когда 2-я форма не нужна)?

> С подобными вопросами лучше обращяйся ко мне.

на мыло?


 
THandle ©   (2007-07-19 19:07) [35]


> Fleg ©   (19.07.07 18:59) [34]


Нет
Да


 
Fleg ©   (2007-07-19 19:10) [36]

Спасибо всем.



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.027 c
11-1167313840
D[u]fa
2006-12-28 16:50
2007.08.12
Memo.Add


2-1184093695
Ivolg
2007-07-10 22:54
2007.08.12
Вывести Hint в определенных координатах


2-1184578180
vasIZmax
2007-07-16 13:29
2007.08.12
Включить/выключить прокси


15-1184486603
TStas
2007-07-15 12:03
2007.08.12
Test


15-1184662508
boriskb
2007-07-17 12:55
2007.08.12
А ты годишься в учителя новейшей истории?