Форум: "Прочее";
Текущий архив: 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.037 c