Главная страница
    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.47 MB
Время: 0.006 c
15-1254730781
Артур. В
2009-10-05 12:19
2009.12.06
Как загрузить хтмл код с данного юрл?


15-1255180534
Artem
2009-10-10 17:15
2009.12.06
Проблема


2-1255984913
ratatui
2009-10-20 00:41
2009.12.06
Записываются ли в EXE не использующиеся константы и функции?


15-1254831159
Kolan
2009-10-06 16:12
2009.12.06
Как тестировать не публичные методы?


4-1224815622
Skazi21101
2008-10-24 06:33
2009.12.06
Вопрос по RS-232C





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский