![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Вообщем при переключении между формами возникает ошибка!
Вот синтаксис! Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtDlgs, ExtCtrls, Jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
OpenPictureDialog1: TOpenPictureDialog;
SavePictureDialog1: TSavePictureDialog;
Edit1: TEdit;
OpenDialog1: TOpenDialog;
Edit2: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1,Form2: TForm1;
size: integer;
bytesize:double;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if Opendialog1.Execute then begin
Image1.Picture.LoadFromFile(Opendialog1.FileName);
Edit1.Text:=ExtractFileDir(OpenDialog1.FileName);
//ByteSize:=strtoint(Filesize(Opendialog1.Filename));
//size:=bytesize*8;
Edit2.Text:=inttostr(size);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//form1.Hide; // ОШИБКА ТУТ!
Form2.Show;
//Form2.Visible:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Jpeg;
type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1,Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
//Form2.Hide;
end;
end.вопрос: как их заставить видеть друг-друга??? Последний раз редактировалось Admin, 20.10.2010 в 09:51. |
|
#2
|
||||
|
||||
|
В uses добавлять надо unit1 unit2 ну или как они так у тебя названы.
|
|
#3
|
||||
|
||||
|
судя по скрину у тебя EAccessViolation так?! мб ты просто не создал ту форму, над которой производишь операции?
|
|
#4
|
|||
|
|||
|
2 форма создана но при открытии проэкта он загружает только unit1 а unit2 надо открывать самому!
Добавление в uses не помогло! |
|
#5
|
|||
|
|||
|
Весь код в студию, в смысле все файлы, архивчеком
|
|
#6
|
|||
|
|||
|
|
|
#7
|
|||
|
|||
|
где юнит3?
чем это все разгребать, проще переписать, не дописывая никаких форм в ручную. среда все сделает сама Последний раз редактировалось ChinYan, 20.10.2010 в 23:11. |
|
#8
|
|||
|
|||
|
как если мне на них обьекты расположить надо!
|
|
#9
|
||||
|
||||
|
И не будет работать.
1. Для обращения к форме находяшейся в другом модуле, модуль надо упоминуть в секции Uses. 2. Прежде чем обращаться к экземпляру формы, этот экземпляр надо создать. Все созданные автоматом экземпляры форм описаны в проекте. Откройте и посмотрите. 3. В каждом из ваших модулей вы описываете одинаковые переменные: Код:
var Form1,Form2: TForm2; |
|
#10
|
|||
|
|||
|
Что делать:
1)Создайте новый проект (VCL forms application) 2)Создайте вторую форму (File->New->Form) 3)Выбрать первую форму, разместить на ней визуальные компоненты 4)Выбрать вторую, разместить на ней визуальный компоненты 5)Запустить приложение, на предложение сохранить - согласится. Если при запуске предложения сохранить не было, то Tools->Options->Environment options, поставить галочки на Editor options и Project desktop 6)Повторить п. 5 7) Выбрать первую форму. Дважды щелкнуть по какой-либо кнопке на форме. Среда создаст процедуру, в ней указать: Код:
Form2.Show; Form1.Hide; Где Form1, Form2 - названия форм первой и второй соответственно (свойство name у формы) 8)Запустить приложение. Появится сообщение о том, что форма1 использует форму2, но форма2 не подключена к форме1. Нажать ОК 9) Запустить приложение |