Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
ВнизГлобальные переменные 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c