Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 00:56   #1
МарияА
 
Регистрация: 25.11.2014
Сообщений: 7
По умолчанию Работа с формами в Delphi

Начала писать курсовую, и столкнулась с проблемой перехода с одной формы(с помощью нажатия кнопки в первой форме) в другую. Я в этом новичек, поэтому прошу помощи с понятным для меня обьяснением

Код:
unit Unit1;

interface


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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure
    Button1Click (Sender:TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;
procedure TForm1.Button1Click (Sender: TObject);
begin
if Button1.enabled=true then begin Form2. Visible:=true;
end;

uses Unit2;


{$R *.dfm}

end.
меня выкидывает на строку uses Unit2; и говорит [Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'

Последний раз редактировалось Stilet; 25.11.2014 в 07:42.
МарияА вне форума Ответить с цитированием
Старый 25.11.2014, 01:07   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

А зачем 2 раза uses Unit2; - до и после обработчика TForm1.Button1Click?
И почему этот обработчик до {$R *.dfm}, обычно все обработчики - после этого.
И вообще, можно не создавать еще блок uses, а дописать модуль Unit2 в тот, верхний, после Menus
type_Oleg вне форума Ответить с цитированием
Старый 25.11.2014, 01:25   #3
МарияА
 
Регистрация: 25.11.2014
Сообщений: 7
По умолчанию

Та проблема решена, теперь выбывает на строку procedure TForm1.Button1Click (Sender: Tobject); с пояснением [Error] Unit1.pas(27): Undeclared identifier: 'Button1Click'
МарияА вне форума Ответить с цитированием
Старый 25.11.2014, 01:30   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Button1Click
Попробуйте написать так
Код:
Button1.Click
Ваш код не читал...
Вадим Мошев вне форума Ответить с цитированием
Старый 25.11.2014, 01:35   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Вот, все работает. Сравнивайте, что не так..
Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit2;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
 Form2.Show;
end;
end.
На основной форме - просто 1 кнопка.
type_Oleg вне форума Ответить с цитированием
Старый 25.11.2014, 01:39   #6
МарияА
 
Регистрация: 25.11.2014
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Попробуйте написать так
Код:
Button1.Click
Ваш код не читал...
написала, теперь [Error] Unit1.pas(27): Declaration of 'Button1' differs from previous declaration

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Вот, все работает. Сравнивайте, что не так..
Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit2;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
 Form2.Show;
end;
end.
На основной форме - просто 1 кнопка.
ой, не сразу заметила, спасибо

вставила ваш код, теперь вот проблема

Последний раз редактировалось Stilet; 25.11.2014 в 07:42.
МарияА вне форума Ответить с цитированием
Старый 25.11.2014, 02:07   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от МарияА Посмотреть сообщение
вставила ваш код, теперь вот проблема
Куда вставили ?
Это готовый законченый полный код модуля главной формы. Куда его можно вставить?

Я просто привел пример, типа шаблона приложения, которое делает только одно - при нажатии на кнопку Button1 главной формы открывает вторую форму, совершенно пустую без компонентов.
type_Oleg вне форума Ответить с цитированием
Старый 25.11.2014, 12:43   #8
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от МарияА Посмотреть сообщение
написала, теперь [Error] Unit1.pas(27): Declaration of 'Button1' differs from previous declaration
ой, не сразу заметила, спасибо

вставила ваш код, теперь вот проблема
попробуйте заменить его код на этот код:


Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit2;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
 Form2.Show;
end;

initialization
  RegisterClasses([TLabel, TMemo, TButton, TListBox]);
finalization
  UnregisterClasses([TLabel, TMemo, TButton, TListBox]);
end.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 25.11.2014, 14:58   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
И почему этот обработчик до {$R *.dfm}, обычно все обработчики - после этого.
Не имеет значения где эта директивна относительно до, и после в этом модуле. Линкер подхватит DFM.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с несколькими формами в Delphi vete-7557 Общие вопросы Delphi 3 13.06.2013 15:47
работа с формами в Delphi студенточка! Помощь студентам 1 12.12.2011 21:48
Работа с формами prosto_i Microsoft Office Excel 2 06.10.2010 12:15
Delphi, работа с формами ScorpyS Помощь студентам 4 19.04.2010 08:43
Работа с формами HAMMAN Общие вопросы Delphi 1 26.04.2007 01:18