|
Вопрос # 4 008/ вопрос открыт / |
|
Здравствуйте!
Помогите пожалуйста, иначе меня уже клинит... Посмотрите код(пожалуйста) и скажите что я делаю не так. Просто решил создать не модальную форму, и не получилось, выводит ошибку... Принимаю всё, от ссылок, до книжек и поучительных лекций... Ребят, если вы мне не поможете в ближайшие 24часа, то я уйду из мира сего, меня реально уже кроет...
Приложение: Переключить в обычный режим- 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;
-
- TModeless = class(TForm)
- Modeless : TModeless;
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
- ModalForm : TModalForm;
-
- implementation
- {$R *.dfm}
-
- procedure TModeless.FormClose(Sender: TObject; var Action: TCloseAction);
- BEGIN
-
- end;
-
- procedure TModeless.FormCreate(Sender: TObject);
- begin
-
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- Begin
- if not Assigned(Modeless) then begin
- Modeless := TModeless.Create(Application);
- Modeless.Show
- end;
- end;
- end.
 |
Вопрос задал: padonak (статус: Посетитель)
Вопрос отправлен: 9 апреля 2010, 22:47
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Паровоз
Здравствуйте, padonak!
"что я делаю не так"
Да все. Новая форма создается при помощи меню File/New/Form
 |
Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 9 апреля 2010, 23:34
|
Ответ #2. Отвечает эксперт: Вадим К
Здравствуйте, padonak!
Видете в своем коде строку {$R *.dfm}, которую среда сгенерировала? это подключаются ресурсы формы (фактически форма). А объявив ещё одну форму в файле, Вы не позаботились о создании для нее дополнительного файла dfm, фактически обманули компоновщик. Вот теперь он и ругается. Правда в коде ещё есть одна не объявленная переменная-поле - Modeless. При чем тип ее совпадает с классом, в котором она находиться... а обращаетесь к ней с другого класса... Наверно нужно просто выспаться и почитать в списке статей мою статью о формах - все станет яснее.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 апреля 2010, 23:42
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 10 апреля 2010, 22:23; участников в обсуждении: 3.
|
padonak (статус: Посетитель), 10 апреля 2010, 12:58 [#1]:
Вадим К, если не трудно, то можете дать ссылку на статью?
|
|
padonak (статус: Посетитель), 10 апреля 2010, 13:04 [#2]:
Паровоз, это я знаю, но мне нужно создать форму во время работы программы, но это не проблема... Просто пользователь, если захочет, то сможет создать несколько форм, а тут уже подключать готовые формы не "катит"...
|
|
Паровоз (статус: 10-ый класс), 10 апреля 2010, 15:01 [#3]:
"подключать готовые формы не "катит"... "
Как это не катит?
uses Unit2;
var
f1,f2:TForm2;
procedure TForm1.Button1Click(Sender: TObject);
begin
f1:=TForm2.Create(nil);
f1.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
f2:=TForm2.Create(nil);
f2.Show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
f1.Free;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
f2.Free;
end;
|
|
Вадим К (статус: Академик), 10 апреля 2010, 22:23 [#4]:
Статью о формах можно найти тут О формах
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|