Главная страница
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.012 c
2-1254662801
newbart
2009-10-04 17:26
2009.12.06
Ошибки при запуске приложений из Delphi


15-1254746040
XXL
2009-10-05 16:34
2009.12.06
Что случилось с оборудованием от AMD ?


15-1254898716
Александр Ильин
2009-10-07 10:58
2009.12.06
Восстановление файла


15-1255165531
Дмитрий_
2009-10-10 13:05
2009.12.06
Разъесните что нужно сделать


2-1255876581
kodius
2009-10-18 18:36
2009.12.06
Перебор всех значений в stringgrid