Delphi 7. Не могу открыть Форму2 из Формы 1

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Twins
Сообщения: 2
Зарегистрирован: 27 ноя 2004, 11:36
Откуда: Луганск

27 ноя 2004, 15:11

Help me.
Глупость но факт.
В Delphi 7 не могу открыть форму2 из формы1

Создаю Form1
Создаю Button1 в Form1
Компилирую
Создаю Form2

Вешаю на Button1 в Form1
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;

Компилирую
Пишет
(Ошибка) Unit.pas(35): Undeclared identifier: "form2"
(Фатальная ошибка) Proect1.dpr6: Cold not compile used unit 'Unit1.pas'

Дальше - мрак. Тишина

Заранее спасибо за помощь.
Чайник (надеюсь не на долго)
Аватара пользователя
AiK
Сообщения: 2271
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

27 ноя 2004, 17:22

Twins, во-первых, ошибка из-за того, что в первом модуле переменная form2 не объявлена.
Во-вторых, прежде чем показывать форму, её создать нужно.

Т.е. тебе нужно что-то вроде этого:
В первом модуле:
Uses Unit2.pas;

procedure TForm1.Button1Click(Sender: TObject);
var form2: TForm2;
begin
form2:=TForm2.Create(Form1);
form2.ShowModal;
end;
Даже самый дурацкий замысел можно воплотить мастерски
Twins
Сообщения: 2
Зарегистрирован: 27 ноя 2004, 11:36
Откуда: Луганск

27 ноя 2004, 22:22

AiK

Большое человеческое спасибо.
Хватило
В первом модуле:
Uses Unit2;

Еще Чайник, но уже меньше.
Twins
Лопата:)
Сообщения: 4
Зарегистрирован: 17 дек 2013, 09:32

17 дек 2013, 09:36

AiK писал(а):Twins,
procedure TForm1.Button1Click(Sender: TObject);
вот на этой строчке он меня и мучает:
[Error] Unit1.pas(36): Statement expected but 'PROCEDURE' found
что делать??
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

17 дек 2013, 10:56

что делать??
Скорее всего процедура не описана в классе TForm1
It's a long way to the top if you wanna rock'n'roll
Лопата:)
Сообщения: 4
Зарегистрирован: 17 дек 2013, 09:32

17 дек 2013, 11:05

А можно подробнее написать, как это сделать, а то я совсем не понимаю :)
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

17 дек 2013, 11:08

В описателе класса добавить
procedure Button1Click(Sender: TObject);

кнопке Button1 событию OnClick присвоить обработчик Button1Click
It's a long way to the top if you wanna rock'n'roll
Лопата:)
Сообщения: 4
Зарегистрирован: 17 дек 2013, 09:32

17 дек 2013, 11:25

type
TForm1 = class(TForm)
Button1Click(Sender: TObject);
теперь он просит заменить ( на :

заменила
теперь опять докопался до процедуры
[Error] Unit1.pas(50): Statement expected but 'PROCEDURE' found
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

17 дек 2013, 11:40

Дальше ничего не могу сказать - нет полного кода
It's a long way to the top if you wanna rock'n'roll
Лопата:)
Сообщения: 4
Зарегистрирован: 17 дек 2013, 09:32

17 дек 2013, 14:45

unit Unit1;

interface

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

type
TForm1 = class(TForm)
lbl1: TLabel;
edt1: TEdit;
procedure button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm;
Form2: TForm;
Edit1: TEdit;
implementation
{$R *.dfm}
begin
procedure button1Click(Sender: TObject);
begin
form2.Show;
end;

end.
Ответить