Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1184343965
SkySpeed
2007-07-13 20:26
2007.08.12
Объясните плиз работу 2-х ядерного процессора...


2-1184230213
viper75
2007-07-12 12:50
2007.08.12
создание объекта в потоке


15-1184329607
Zagaevskiy
2007-07-13 16:26
2007.08.12
Проводник


1-1180622931
JanMihail
2007-05-31 18:48
2007.08.12
Ожидание загрузки страницы!


2-1184135112
Б.А.С.
2007-07-11 10:25
2007.08.12
Программный вход в систему





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский