Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу здесь за 20 тыс руб в месяц! alarforum@yandex.ru


Ответ
 
Опции темы
Старый 25.06.2008, 05:17   #1
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию var

Код:
var i:integer = 300
Что не верно!? Да же в help'е так написано!
Черничный вне форума Ответить с цитированием
Старый 25.06.2008, 06:41   #2
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну и что неверно? Где переменную так объявляешь?
Баламут вне форума Ответить с цитированием
Старый 25.06.2008, 06:56   #3
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,298
По умолчанию

Код:
var  // здесь будет правильно
  Form1: TForm1;
  i:integer = 10;
  j:integer = 33;
  r:string = 'abc'; 

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var // здесь будет не правильно
 a:integer = 11;
 s:integer = 31;
 dr:string = 'abd';  
begin
 //
end;
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 25.06.2008, 08:09   #4
GenAcid
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Air Посмотреть сообщение
Код:
procedure TForm1.FormCreate(Sender: TObject);
var // здесь будет не правильно 
 a:integer = 11;
 s:integer = 31;
 dr:string = 'abd';  
begin
 //
end;
???
Тоже правильно, просто область видимости другая.
GenAcid вне форума Ответить с цитированием
Старый 25.06.2008, 08:15   #5
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Цитата:
Сообщение от GenAcid Посмотреть сообщение
???
Тоже правильно, просто область видимости другая.
Нет, не правильно. Инициализировать можно только глобальные переменные.
Баламут вне форума Ответить с цитированием
Старый 25.06.2008, 10:10   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

а вот так можно писать где угодно. в том числе и в TurboPascal'е
(типизированные константы. сразу скажу, менять значение - МОЖНО! :-))

Код:
const
 a:integer = 11;
 s:integer = 31;
 dr:string = 'abd';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2008, 10:54   #7
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Только нужно помнить, что объявленные таким образом локальные константы являются статическими и инициализируются один раз.

Например:
Код:
function doIt:integer;
const V:integer = 1;
begin
    result := V;
    inc(V);
    ...
end;
При втором вызове инициализации не будет.
...
Да и при первом то-же. Компилятор просто размещает эту переменую в области глобальных сразу с указанным значением. Поэтому как такового кода V:=1 нигде нет.

Последний раз редактировалось alexBlack; 25.06.2008 в 11:58.
alexBlack вне форума Ответить с цитированием
Старый 25.06.2008, 11:18   #8
GenAcid
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Баламут Посмотреть сообщение
Нет, не правильно. Инициализировать можно только глобальные переменные.
Извиняюсь, запамятовал.
GenAcid вне форума Ответить с цитированием
Старый 25.06.2008, 16:09   #9
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

так а мне то как поступить? надо один раз назначить переменную и что бы таймер больше не возращался к ней, в последующих срабатываниях таймера уже идет вычитаение
Черничный вне форума Ответить с цитированием
Старый 25.06.2008, 16:10   #10
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,298
По умолчанию

Делай глобальную переменную
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы



Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840