Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.004 c
3-1229419184
nnnicky
2008-12-16 12:19
2009.12.06
Oracle


15-1254837325
VladOfMonster
2009-10-06 17:55
2009.12.06
Срочно. Установка wine в Linux


11-1209014542
Алексей К.
2008-04-24 09:22
2009.12.06
Ошибка при обращении к StrList из своего объекта


2-1255702102
Aleks
2009-10-16 18:08
2009.12.06
Как узнать индекс доб.итема в ListView?


2-1256030156
Л.Д.
2009-10-20 13:15
2009.12.06
Поиск в бд





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский