Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2014, 19:27
Aleksbk Aleksbk вне форума
Прохожий
 
Регистрация: 21.04.2014
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Передача данных между формами

Добрый день,
Объявляю переменную после public и пробую перед implementation
На второй форме не видит эту переменную, красным выделяет.
Доже обратится через вторую форму к первой пишет ошибку [Pascal Error] Unit2.pas(1): Unable to invoke Code Completion due to errors in source code
Помогите люди добрые)
Как вообще правильно передавать данные между формами?)
Ответить с цитированием
  #2  
Старый 21.04.2014, 20:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

добавить в список uses модуль, где объявлена глобальная переменная.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Aleksbk (21.04.2014)
  #3  
Старый 21.04.2014, 20:29
Aleksbk Aleksbk вне форума
Прохожий
 
Регистрация: 21.04.2014
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
добавить в список uses модуль, где объявлена глобальная переменная.
Меняя ComboBox и нажимаю кнопку в форму всегда 0 передает, может не так назначаю mat ?

форма 1
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mat:Integer;

implementation
uses Unit2;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
mat:=ComboBox1.ItemIndex;
Form2.Visible:=True;
end;

end.

форма 2
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation
uses Unit1;
{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
if mat=1 then
Edit1.Text:='первая';
if mat=2 then
Edit1.Text:='вторая';
if mat=0 then
Edit1.Text:='ноль';

end;

end.
Ответить с цитированием
  #4  
Старый 21.04.2014, 20:36
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Aleksbk
Меняя ComboBox и нажимаю кнопку в форму всегда 0 передает, может не так назначаю mat ?
У тебя во второй форме выборка из переменной mat происходит по событию FormCreate, т.е. при создании формы, а нажатие кнопки в первой форме происходит когда вторая форма уже создана (но скрыта). Тебе во второй форме нужно не событие FormCreate, а скорее всего FormShow (OnShow).
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Aleksbk (21.04.2014)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter