Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
1

Использование 2 форм

02.06.2010, 10:42. Показов 4873. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста очень нужно. Объясните подробно, как создать две формы, чтобы при нажатии на кнопку в первой форме открывалась вторая форма и выполнялись какие-то процедуры. У меня никак не выходи, как их связывают и т. д.

Добавлено через 14 минут
Их прописывать в одном unit
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2010, 10:42
Ответы с готовыми решениями:

Связывание двух форм по расположению на мониторе(Синхронизация форм)
Такая проблема, представим если 2 формы, на первой форме есть клавиша "На вторую форму", которая...

Использование форм
Добрый вечер! Есть 2 навигационные формы: одна будет использоваться только для ввода данных,...

Использование нескольких форм
Добрый день. Подскажите, пожалуйста, как исправить синтаксическую ошибку: begin expected but uses...

Использование двух форм
Приветствую форумчане! Только начал изучать С++ и Qt, поэтому прошу помогите с вопросом. Вопрос...

25
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
02.06.2010, 10:43 2
Kristina92, в uses одной формы добавляем другую и творите)
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 10:44  [ТС] 3
Как это сделать?
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
02.06.2010, 10:45 4
чтобы открывалась другая форма код кнопки такой
Delphi
1
MainForm{ну или название вашей другой формы}.Visible:=true;
1
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 10:46  [ТС] 5
ошибка связанная с project 1;
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
02.06.2010, 10:48 6
Kristina92,
Вобработчике кнопки напиши Form2.Show и тогда откроется 2-я форма.
Но перед этим создать надо эту форму. Выбери в меню Delphi File, там New, и уже там кликни по
Form. У тебя создастся очередная форма.
1
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
02.06.2010, 10:48 7
Цитата Сообщение от Kristina92 Посмотреть сообщение
Как это сделать?
написать в ручную, должно выглядеть приблизительно так
Delphi
1
2
3
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, main{ну или название вашего другого юнита};
1
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
02.06.2010, 10:49 8
или так
Delphi
1
2
3
4
5
6
7
implementation
uses unit2;
 
procedure tform1.button1click(sender);
begin
form2.show;
end;
или так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure TForm1.Button2Click(Sender: TObject);(создание формы3 из формы1 на которой будут 2 кнопки и 1 stringgrid. но в этом случае надо будет описывать полностью все параметры элементов в коде)
begin
    form3 := tform.Create(application);
try
srt:=tstringgrid.create(nil);
with srt do
begin
    Left:=5;
    Top:=8;
    Width:=612;
    Height:=265;
    ColCount:=11;
    RowCount:=2;
    Options:=[goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRowSizing, goColSizing, goRowSelect];
    TabOrder:=0;
    ondblclick:=StringGrid1DblClick;
    Parent:=form3;
end;
b1:=tbutton.Create(nil);
with b1 do
begin
left:=208;
top:=288;
width:=75;
height:=25;
TabOrder:=1;
caption:='Заполнить';
onclick:=StringGrid1DblClick;
parent:=form3;
end;
b3:=tbutton.Create(nil);
with b3 do
begin
left:=288;
top:=288;
width:=75;
height:=25;
TabOrder:=2;
caption:='Закрыть';
onclick:=B2;
parent:=form3;
end;
with form3 do
begin
  Left:=192;
  Top:=114;
  Width:=636;
  Height:=388;
  Caption:='Архив';
 form3pok(sender);
 ShowModal;
 end;
finally
form3.Release;
end;
end;
1
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
02.06.2010, 10:53 9
Создаем вторую форму, добавляем в uses первой формы unit2(имя юнита где класс 2й формы).
Кнопка жми
Delphi
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
form2.qwe;
end;
form2.qwe; имя процедуры, расположенной во 2й форме в разделе public.
1
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 10:58  [ТС] 10
Вторая форма не открывается. Ошибка с Project1. Вторая форма в той же папке, может надо прописать путь до unit2 или что

Добавлено через 1 минуту
Адрес в проекте 1 ошибка
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
02.06.2010, 11:02 11
выложи полностью код unit1
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 11:06  [ТС] 12
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Menus;
 
type
  str=string[10];
  myfile=file of str;
  r=record
     ima:string[15];
     ball:integer;
    end;
  myfile2= file of r;
  
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button11: TButton;
   procedure Button1Click(Sender: TObject);
 
private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
implementation
 uses unit2;
 
procedure TForm1.Button1Click(Sender: TObject);
 begin
  if panel1.Visible then
   Panel1.caption:=Panel1.caption+'À'
 else
  form2.show;
 end;
end.
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
02.06.2010, 11:10 13
пока что единственное что я вижу это неправильное место указания переменных
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 11:11  [ТС] 14
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0044cfce in module 'Project.exe'. Read of address 000002f4'.
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
02.06.2010, 11:17 15
Цитата Сообщение от unick12345 Посмотреть сообщение
неправильное место указания переменных
Каких именно?

Добавлено через 49 секунд
Kristina92, эта ошибка при нажатии на Button1 возникает?
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 11:17  [ТС] 16
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
 
end.
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
02.06.2010, 11:17 17
Гы, а где Form2?
Надо дописать:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
  Unit2 in 'Unit2.pas' {From2}
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
 
end.
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
02.06.2010, 11:18  [ТС] 18
а как она должна здесь оказаться
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
02.06.2010, 11:21 19
насчет переменных ошибся видимо. весь код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  str=string[10];
   myfile=file of str;
  r=record
     ima:string[15];
     ball:integer;
    end;
  myfile2= file of r;
 
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
uses unit2;
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 begin
  if panel1.Visible then
   Panel1.caption:=Panel1.caption+'À'
 else
  form2.show;
 end;
 
end.
Добавлено через 45 секунд
а запись такого плана как
Цитата Сообщение от unick12345 Посмотреть сообщение
Application.CreateForm(TForm2, Form2);
создается автоматически при создании новой формы
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
02.06.2010, 11:22 20
Kristina92, Вы видимо закрыли проект, создали форму и сохранили в папку с проектом.
0
02.06.2010, 11:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2010, 11:22
Помогаю со студенческими работами здесь

Использование форм и диалога
В ведомости указана зарплата, выплаченная каждому из сотрудников фирмы за месяц. Определить общую...

Использование форм в Web страницах
Добрый день. Прошу помощи с одним заданием по js. Программирование вообще идет как предмет "в...

Использование многих форм в программе
Добрый день недавно работаю в среде visual studio 2015. у меня стал вопрос о создании и подключении...

Использование разных подчиненных форм в главной
Друзья, нужна помощь экспертов. Ваяю БД оборудования по заводу. В главной форме отображаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru