| 
| 
 | Вопрос # 4 008/ вопрос открыт / | 
 |  Здравствуйте!Помогите пожалуйста, иначе меня уже клинит... Посмотрите код(пожалуйста) и скажите что я делаю не так. Просто решил создать не модальную форму, и не получилось, выводит ошибку... Принимаю всё, от ссылок, до книжек и поучительных лекций... Ребят, если вы мне не поможете в ближайшие 24часа, то я уйду из мира сего, меня реально уже кроет...
 Приложение:Переключить в обычный режим   unit Unit1;   interface   usesWindows, 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]:Статью о формах можно найти тут О формах Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |