Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.06;
Скачать: CL | DM;

Вниз

Глобальные переменные delphi   Найти похожие ветки 

 
XTasy   (2009-10-15 16:38) [0]

Всем добрый день. Проблема следующая:
Необходимо передать строковую переменную из одной формы в другую.
Для этой цели создал в отдельном модуле переменную в разделе interface, в первой форме ее заполняю, скрываю эту форму и показываю вторую. А вот во второй эта переменная почему-то пустая, т.е. значения из первой формы не выдает. Что я делаю не так? заранее спесибо


 
Dennis I. Komarov ©   (2009-10-15 16:42) [1]

У тебя ошибка в программе, предположительно в 17-й строке...


 
Медвежонок Пятачок ©   (2009-10-15 16:48) [2]

А вот во второй эта переменная почему-то пустая

во второй форме она не может быть пустой, так как ее там вообще нет.
она у тебя в "отдельном модуле".


 
XTasy   (2009-10-15 16:51) [3]

естественно,я прописал имя модуля в разделе uses
Этот способ нашел на одном из форумов.
Если он вообще неверный, подскажите, как надо


 
Медвежонок Пятачок ©   (2009-10-15 16:53) [4]

для лечения по фотографии фотография все же нужна.


 
clickmaker ©   (2009-10-15 16:56) [5]

> Если он вообще неверный

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


 
Anatoly Podgoretsky ©   (2009-10-15 16:56) [6]

> Медвежонок Пятачок  (15.10.2009 16:53:04)  [4]

Лечу по фотографии, фотография не нужна.


 
имя   (2009-10-15 17:13) [7]

Удалено модератором


 
XTasy   (2009-10-15 17:14) [8]

clickmaker , вполне возможно, что и в других юнитах я буду использовать эту переменную) так в чем же косяк?


 
clickmaker ©   (2009-10-15 17:31) [9]

> так в чем же косяк?

unit1:
interface

var
 SomeGlobalVar: string;

unit2:

uses unit1;

procedure TForm1.SomeMethod;
begin
 SomeGlobalVar := "если делать так, то косяка не будет";
end;

unit3:

uses unit1;

procedure TForm2.SomeMethod;
begin
 ShowMessage(SomeGlobalVar);
end;


 
Jeer ©   (2009-10-15 17:51) [10]


> XTasy   (15.10.09 17:14) [8]
>
>.. вполне возможно, что и в других юнитах я буду
> использовать эту переменную)..


Заведи отдельный unit без формы для всяких глобальных переменных, констант и включай в визуальные юниты.


 
Плохиш ©   (2009-10-15 21:13) [11]


> XTasy   (15.10.09 17:14) [8]
>
> clickmaker , вполне возможно, что и в других юнитах я буду
> использовать эту переменную) так в чем же косяк?

В первом посте уже сказали.
Советую нанять программиста, незачем сантехникам заниматься не своим делом.


 
uno-84   (2009-10-16 11:47) [12]

Можно не исползовать глобальную переменную, а просто нужное значение передать в функцию второй формы к примеру


procedure TForm1.SomeMethod;
begin
SomeGlobalVar := "если делать так, то косяка не будет";
TForm2.SomeMethod(SomeGlobalVar);
end;

procedure TForm2.SomeMethod(AStr: String);
begin
ShowMessage(AStr);
end;



Страницы: 1 вся ветка

Текущий архив: 2009.12.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
2-1255947778
Инна
2009-10-19 14:22
2009.12.06
Дерево каталогов&список файлов


3-1231164216
zorik
2009-01-05 17:03
2009.12.06
Invalid cursor declaration


15-1255088311
g11
2009-10-09 15:38
2009.12.06
Сведения в exe-файлах


15-1254493923
ocean
2009-10-02 18:32
2009.12.06
Хочу наладонник с навигацией GPS покруче.


15-1254730781
Артур. В
2009-10-05 12:19
2009.12.06
Как загрузить хтмл код с данного юрл?