![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глобальные переменные delphi [D7, XP]
XTasy © (2009-10-15 16:38:00)Всем добрый день. Проблема следующая:
Необходимо передать строковую переменную из одной формы в другую.
Для этой цели создал в отдельном модуле переменную в разделе interface, в первой форме ее заполняю, скрываю эту форму и показываю вторую. А вот во второй эта переменная почему-то пустая, т.е. значения из первой формы не выдает. Что я делаю не так? заранее спесибо
uno-84 (2009-10-16 11:47:00) [1]Можно не исползовать глобальную переменную, а просто нужное значение передать в функцию второй формы к примеру
procedure TForm1.SomeMethod;
begin
SomeGlobalVar := 'если делать так, то косяка не будет';
TForm2.SomeMethod(SomeGlobalVar);
end;
procedure TForm2.SomeMethod(AStr: String);
begin
ShowMessage(AStr);
end;
Плохиш (2009-10-15 21:13:00) [2]
> XTasy (15.10.09 17:14) [8]
>
> clickmaker , вполне возможно, что и в других юнитах я буду
> использовать эту переменную) так в чем же косяк?
В первом посте уже сказали.
Советую нанять программиста, незачем сантехникам заниматься не своим делом.
Jeer (2009-10-15 17:51:00) [3]
> XTasy (15.10.09 17:14) [8]
>
>.. вполне возможно, что и в других юнитах я буду
> использовать эту переменную)..
Заведи отдельный unit без формы для всяких глобальных переменных, констант и включай в визуальные юниты.
clickmaker (2009-10-15 17:31:00) [4]> так в чем же косяк?
unit1:
interface
var
SomeGlobalVar: string;
unit2:
uses unit1;
procedure TForm1.SomeMethod;
begin
SomeGlobalVar := 'если делать так, то косяка не будет';
end;
unit3:
uses unit1;
procedure TForm2.SomeMethod;
begin
ShowMessage(SomeGlobalVar);
end;
XTasy (2009-10-15 17:14:00) [5]clickmaker , вполне возможно, что и в других юнитах я буду использовать эту переменную) так в чем же косяк?
(2009-10-15 17:13:00) [6]Удалено модератором
clickmaker (2009-10-15 16:56:00) [7]> Если он вообще неверный
ну не то чтобы в корне неверный...
просто, глобальные переменные обычно используются, если они живут в течение всей жизни программы и юзаются несколькими юнитами.
если переменная нужна только второй форме на время ее показа, лучше завести метод у этой формы и туда передавать и там же и показывать
Anatoly Podgoretsky (2009-10-15 16:56:00) [8]> Медвежонок Пятачок (15.10.2009 16:53:04) [4]
Лечу по фотографии, фотография не нужна.
Медвежонок Пятачок (2009-10-15 16:53:00) [9]для лечения по фотографии фотография все же нужна.
XTasy (2009-10-15 16:51:00) [10]естественно,я прописал имя модуля в разделе uses
Этот способ нашел на одном из форумов.
Если он вообще неверный, подскажите, как надо
Медвежонок Пятачок (2009-10-15 16:48:00) [11]А вот во второй эта переменная почему-то пустая
во второй форме она не может быть пустой, так как ее там вообще нет.
она у тебя в "отдельном модуле".
Dennis I. Komarov (2009-10-15 16:42:00) [12]У тебя ошибка в программе, предположительно в 17-й строке...