|
|
Регистрация | << Правила форума >> | 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 ну или как они так у тебя названы.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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) Запустить приложение |