Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизФорма Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.042 c