Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
HelenLee
3 / 3 / 0
Регистрация: 08.10.2014
Сообщений: 50
#1

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

09.06.2016, 16:22. Просмотров 375. Ответов 4
Метки нет (Все метки)

Компиляция проходит успешно. Когда я нажимаю на кнопку в 1 форме, у меня должна выйти вторая форма и посчитать общее количество. Но при нажатии, у меня просто очищаются поля или же выдает ошибку "Введите ваши баллы!". До того, как написала код во 2 форме, у меня он открывал вторую форму при нажатии кнопки. Теперь - нет. И совсем не понимаю, почему. Может, я даже ошибки не правильно описала.. не уверена. Подскажите, пожалуйста

Вот Unit1:

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Unit2;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  mat,inf,ob,c:integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   Edit1.Clear;
   Edit2.Clear;
   Edit3.Clear;
 
   val(edit1.text,mat);
   val(edit2.text,inf);
   val(edit3.text,ob);
 
   if (mat>0) and (inf>0) and (ob>0) then Form2.Show
     else
        if (mat<0) and (inf>0) and (ob>0) then
          begin
             MessageDlg('Введите Ваши баллы по математике!', mtInformation, [mbok], 0);
             Edit1.Clear;
             Edit2.Clear;
             Edit3.Clear;
          end
           else
              if (inf<0) and (mat>0) and (ob>0) then
                begin
                 MessageDlg('Введите Ваши баллы по информатике!', mtInformation, [mbok], 0);
                 Edit1.Clear;
                 Edit2.Clear;
                 Edit3.Clear;
                end
                  else
                    if (ob<0) and (inf>0) and (mat>0) then
                      begin
                         MessageDlg('Введите Ваши баллы по обществознанию!', mtInformation, [mbok], 0);
                         Edit1.Clear;
                         Edit2.Clear;
                         Edit3.Clear;
                      end;
                       else
                         begin
                           MessageDlg('Введите Ваши баллы!', mtInformation, [mbok], 0);
                           Edit1.Clear;
                           Edit2.Clear;
                           Edit3.Clear;
                         end; 
 
end;
end.
Это Unit2:

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
unit Unit2;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm2 }
 
  TForm2 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form2: TForm2;
  s:integer;
 
implementation
uses unit1;
{$R *.lfm}
 
{ TForm2 }
 
procedure TForm2.FormCreate(Sender: TObject);
begin
   s:=mat+inf+ob;
   Edit1.Text:=IntToStr(s);
end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2016, 16:22
Ответы с готовыми решениями:

Вывод значения переменной на форме
Здравствуйте! Как можно по другомо вывести вот это значение во дабустим мне...

Использование формы для приведенного кода
Парни, в програмировании полный ноль, а покачаться в игре охото, помогите...

Использование значения переменной в форме из другой формы
есть три формы: frmServices, frmInput и frmKeys. в frmInput есть переменная...

Использование переменной из второй формы
У меня две формы. В первой присваивается переменной значение веденное...

Использование переменной с одной формы в другой
Здраствуйте. У меня 2 формы: 1) Имеет кнопку и код: Dim a As String ...

4
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
09.06.2016, 17:06 #2
Все должно работать, только вычисления не нужно вешать на OnCreate;
Форма 1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  Form1: TForm1;
  mat,inf,ob:integer; 
.........................
uses unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
val(edit1.text,mat);
val(edit2.text,inf);
val(edit3.text,ob);
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Hide;
Form2.Show;
end;
Форма 2.
Pascal
1
2
3
4
5
6
7
uses unit1;
procedure TForm2.Button1Click(Sender: TObject);
var s:integer;
begin
s:=mat+inf+ob;
Edit1.Text:=IntToStr(s);
end;
0
HelenLee
3 / 3 / 0
Регистрация: 08.10.2014
Сообщений: 50
09.06.2016, 17:16  [ТС] #3
Если я правильно вас понимаю, то на второй форме должна быть кнопка? Или как?
Возможно ли сделать так: я нажимаю на кнопку в 1 форме, он открывает вторую форму, и там уже подсчитана сумма введенных чисел?
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
09.06.2016, 17:30 #4
1 форма
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
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  mat,inf,ob,s:integer;
implementation
 
{$R *.lfm}
 
{ TForm1 }
uses unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
val(edit1.text,mat);
val(edit2.text,inf);
val(edit3.text,ob);
s:=mat+inf+ob;
Form1.Hide;
Form2.Show;
Form2.Edit1.Text:=IntToStr(s);
end;
2 форма
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  { TForm2 }
 
  TForm2 = class(TForm)
    Edit1: TEdit;
 
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.lfm}
 
{ TForm2 }
 
 
end.
0
HelenLee
3 / 3 / 0
Регистрация: 08.10.2014
Сообщений: 50
09.06.2016, 17:46  [ТС] #5
Спасибо большое!
0
09.06.2016, 17:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2016, 17:46

Использование Label1 с первой формы во второй форме
Доброе время суток.Такой вопрос,как сделать что бы Label1 с первой формы,можно...

Обращение к переменной одной формы, обрабатывая событие на другой форме...
Я сделал в гриде столбец селект. При нажатии на кнопку, я сохраняю индекс...

Получить значение переменной одной формы в другой форме (Delphi 6)
ребят, тупая запарка.... как перенести значение x1(unit1) в x2(unit2)???


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru