Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2009, 12:18   #1
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию переменные form2 на form1

у меня в коде на Form2 читаются много переменных из ini файла, но при запуске программы эти переменные нужны на Form1. а при запуске проги сначала выполняется код Form1 а потом уже код Form2 и не получается работать с переменными из form2 на form1. Что можно сделать?
motaro вне форума Ответить с цитированием
Старый 26.09.2009, 12:24   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Если я тебя правильно понял, добавь переменные на Form2 в public и используй на Form1
W0LF вне форума Ответить с цитированием
Старый 26.09.2009, 12:56   #3
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
Если я тебя правильно понял, добавь переменные на Form2 в public и используй на Form1
а как сделать, куда это прописать?
у меня на form2 переменные, которые нужны на form1 (при запуске программы)
Код:
  type new= record
    x:integer;
    y:integer;
    z:integer;
    end;
var mass:array [1..10] of new;
motaro вне форума Ответить с цитированием
Старый 26.09.2009, 12:56   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Цитата:
у меня в коде на Form2 читаются много переменных из ini файла, но при запуске программы эти переменные нужны на Form1
Сделай, чтобы эти переменные считывались при создании Form1, раз они ей нужны. Какие проблемы?
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 26.09.2009, 13:00   #5
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
Сделай, чтобы эти переменные считывались при создании Form1, раз они ей нужны. Какие проблемы?
а как это сделать? просто так при запуске программы на form1 их не удается использовать, потому-что еще не дошло до считывания из из form2
motaro вне форума Ответить с цитированием
Старый 26.09.2009, 13:04   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Когда дойдёт считывание на второй форме, сделай так, чтобы на первой форме программа прочитала переменные. Что сложного? А глобальные переменные объявляются в разделе var, до implementation.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 26.09.2009, 13:14   #7
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от Манжосов Денис :) Посмотреть сообщение
Когда дойдёт считывание на второй форме, сделай так, чтобы на первой форме программа прочитала переменные. Что сложного? А глобальные переменные объявляются в разделе var, до implementation.
все переменные на form2 глобальные, просто мне нужны эти переменные (из form2) сразу при запуске программы (на form1), а сначала выполняется весь код form1 а потом уже доходит до form2 и поэтому мне не удается использовать переменные из form2 на form1(сразу при запуске программы)
motaro вне форума Ответить с цитированием
Старый 26.09.2009, 13:29   #8
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

вот пример с двумя формами, в Form2 переменной присваивется текст, в Form1 при запуске программы он должен выводится, но не выводиться

form1
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage(s); //ничего не выводиться
end;

end.
form2
Код:
unit Unit2;

interface

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

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

var
  Form2: TForm2;
  s:string;
implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
s:='ТЕКСТ КОТОРЫЙ НЕ БУДЕТ РАБОТАТЬ НА FORM1 ПРИ ЗАПУСКЕ ПРОГРАММЫ';
end;

end.

Последний раз редактировалось motaro; 26.09.2009 в 13:33.
motaro вне форума Ответить с цитированием
Старый 26.09.2009, 13:39   #9
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Как вариант :
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
showmessage(s);
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 26.09.2009, 14:10   #10
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

странно у меня пишет: 'Unit 1' does not contain a member nemed 'FormActivate' at line 31 (31:18)

возможно из-за delphi 2009
motaro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Form1 & Form2 Alex Cones Общие вопросы Delphi 4 31.07.2009 21:50
Управление элементами Form2 из Form1 Niodar Общие вопросы Delphi 4 25.03.2009 04:22
Delphi. Form1 и Form2. Xeon332 Общие вопросы Delphi 8 01.11.2008 15:52
form1 и form2 SLIMMUS Общие вопросы Delphi 3 29.10.2008 01:15
две формы Form1 и Form2 Михаил Юрьевич Общие вопросы Delphi 11 02.03.2008 19:38