Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

Значение по умолчанию   Найти похожие ветки 

 
Veiron   (2007-09-22 22:36) [0]

Подскажите пожалуйста как обозначаться переменная в которой нет значения типа Integer (в типе String обозначаться как ""), например:

procedure TForm1.Button2Click(Sender: TObject);
var a, b : Integer;
begin

if a = (неуказанно) then
  begin
  a:=1;
  b:=a+1;
end;


Перевод по русски: Если "a" не указывалась, то дать ей значение "1"...
Или здесь наверно будет лучше присвоить переменной "а" значение "1" по умолчанию, только как это сделать что бы при каждом нажатии  на кнопку не присваивалось это значение заного?


 
Anatoly Podgoretsky ©   (2007-09-22 22:37) [1]

> Veiron  (22.09.2007 22:36:00)  [0]

Как стереть переменную совсем.


 
DrPass ©   (2007-09-22 22:38) [2]


> Подскажите пожалуйста как обозначаться переменная в которой
> нет значения типа Integer

В переменных простых типов не бывает "нет значения". Если ты сам явно не присвоил значение для локальной переменной, там будет случайный мусор, т.е. любое число, которое оказалось в соответствующей ячейке памяти


 
me   (2007-09-22 22:38) [3]

в Дельфи только глобальные переменные имеют значения по умолчанию


 
Veiron   (2007-09-22 22:41) [4]

А как сделать так что бы переменной "a" по умолчанию задавалось значение 1 ?


 
Zeqfreed ©   (2007-09-22 22:43) [5]

> Veiron   (22.09.07 22:36) 

Использовать Си и статические переменные :)
В Дельфи так нельзя.


 
Veiron   (2007-09-22 22:48) [6]

Тогда это не язык программирования, а кусок бедного кода... , пора его забывать и снова переползать на LUA. А жаль, третий день, все так хорошо начиналось...


 
DrPass ©   (2007-09-22 22:50) [7]


>  пора его забывать и снова переползать на LUA

Да, обязательно. И вообще, тебе лучше поменьше писать программ. Лучше вообще не писать.


 
Anatoly Podgoretsky ©   (2007-09-22 22:51) [8]

Вот казалось, что будет много денег и машин и на тебе, такой облом.


 
Veiron   (2007-09-22 23:03) [9]

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

procedure TForm1.Button2Click(Sender: TObject);
var a, b : Integer;
var c: string;
begin

if a = "" then
  begin
  a:=2;
  b:=a+1;
end
else if b >= 3 then
  begin
  b:=b+1;
end;
c:= IntToStr(b);
Form1.Caption := "Значение "+c+")";
end;


 
Loginov Dmitry ©   (2007-09-22 23:05) [10]

> А как сделать так что бы переменной "a" по умолчанию задавалось
> значение 1 ?


Такое извращение тоже предусмотрено.

{$J+}
const
 a: Integer = 1;
.....
{$J-}


фактически "a" превращается в статическую переменную с заданным дефолтным значением.


 
Veiron   (2007-09-22 23:15) [11]

Уже ближе к истине, только он становиться статическим и дальнейшее его изменение на сколько я понял невозможным, вот что то вроде этого, только что бы значение могло изменяться в дальнейшем.


 
Zeqfreed ©   (2007-09-22 23:16) [12]

> Veiron   (22.09.07 23:03) [9]

procedure TForm1.Button2Click(Sender: TObject);
begin
 with Sender as TButton do begin
   Self.Caption := "Значение " + IntToStr(Tag) + ")";
   Tag := Tag + 1;
 end;
end;


 
БарЛог ©   (2007-09-22 23:17) [13]

> кнопку не присваивалось это значение заного?

За руко :)

А вроде выходной... :)


 
Veiron   (2007-09-22 23:24) [14]

Zeqfreed
Премногоблагодарен айлилуйа, что бы начиналось увеличиваться с 2-х постараюсь догадаться сам.


 
Галинка ©   (2007-09-23 00:30) [15]

а инкремент уже отменили?

А например присвоить в OnShow формы -1 "по умолчанию"?

Хотя если ты пытаешься сделать через локальные... Разве они не "забываются" после выхода из процедуры? Т.е. после каждой отработки события там будет что-то случайно-мусорное при новом объявлении. Или? Надо все же что-то более менее глобальное.


 
DrPass ©   (2007-09-23 01:14) [16]


> Veiron   (22.09.07 23:15) [11]
> Уже ближе к истине, только он становиться статическим и
> дальнейшее его изменение на сколько я понял невозможным

В зависимости от включенной опции Assignable typed constants.


> Хотя если ты пытаешься сделать через локальные... Разве
> они не "забываются" после выхода из процедуры?

"Забываются", если не принимать в расчет ситуации, когда между вызовами одной и той же подпрограммы стек не трогали.
Но т.к. парень вырос на интерпретаторах вроде LUA (которые с программистом цацкаются как няни), ему компилируемые языки еще много сюрпризов преподнесут :)


 
Petr V. Abramov ©   (2007-09-23 01:31) [17]

http://www.botik.ru/~rldp/mysql/mysqldev/glava04.htm
Глобальные переменные в Lua не должны быть объявлены. Любая переменная считается глобальной, пока не объявлена явно как локальная.
песдато цацкаются :)))
для тех, кому кажется, что все так, как цацкаются:
случай многопотоковости пока не рассматриваем, до этого не дойдет
вероятность того, что кто-то забудет объявить переменную, и она совпадет с глобальной, велика. как потом в других модулях искать ошибку из-за необъявленной неизвестно где переменной - не пишется.
Идея хороша для еще более быстрого написания "Это моя первая программа, все козлы"
вот в некоторых языках отменили глобальные переменные, и никто не плюется (ну почти :)


 
Loginov Dmitry ©   (2007-09-23 07:50) [18]

> Уже ближе к истине, только он становиться статическим и
> дальнейшее его изменение на сколько я понял невозможным,
> вот что то вроде этого, только что бы значение могло изменяться
> в дальнейшем


А директиву {$J+/-} я на кой ляд приводил, спрашивается?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.074 c
2-1191087359
olevacho_
2007-09-29 21:35
2007.10.21
размеры формы


2-1190722407
Washington
2007-09-25 16:13
2007.10.21
Переименование таблицы


11-1174410437
Dmitriy___
2007-03-20 20:07
2007.10.21
ListView - проблема с LVItems


2-1190878733
fff
2007-09-27 11:38
2007.10.21
курсор


2-1190363813
Flood_control
2007-09-21 12:36
2007.10.21
Edit & UpDown





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