Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

Код:
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, 09: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, 09:15   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

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

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

Код:
const
 a:integer = 11;
 s:integer = 31;
 dr:string = 'abd';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2008, 11: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 в 12:58.
alexBlack вне форума Ответить с цитированием
Старый 25.06.2008, 12:18   #8
GenAcid
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 28
По умолчанию

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск