|
Вопрос # 1 423/ вопрос открыт / |
|
Здравствуйте, эксперты!
Есть ли в Delphi возможность закрепить за фрагментом кода определенный идентификатор?
Чтобы не печатать каждый раз нечто вроде: price[num[x][y]][y].close, а использовать более простой идентификатор, вроде p...
 |
Вопрос задал: telovek (статус: Посетитель)
Вопрос отправлен: 16 марта 2008, 16:53
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте, telovek!
Варианты могут быть разные... Самое простое - завести переменную такого же типа, что и price[num[x][y]][y] и обращаться к ней. Другой вариант - использовать оператор доступа with. Его удобно применять при многократном обращении к свойствам/методам одного и того же объекта:
with Form1 do
begin
Caption:='MyForm';
Left:=0;
Top:=0;
end;
Т.е. всё зависит от ситуации.
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 16 марта 2008, 17:06
Оценка за ответ: 4
|
Ответ #2. Отвечает эксперт: Drozdov D.V.
Здравствуйте, telovek!
А если константу?
const
min=10;
max=60;
sun=9;
maxsun= max-min+sun;
 |
Ответ отправил: Drozdov D.V. (статус: 4-ый класс)
Время отправки: 16 марта 2008, 20:55
|
Мини-форум вопроса
Всего сообщений: 10; последнее сообщение — 20 марта 2008, 23:02; участников в обсуждении: 4.
|
telovek (статус: Посетитель), 16 марта 2008, 17:31 [#1]:
Здесь несколько массивов, связанных друг с другом определенным образом - price[num[x][y]][y].close
Дело в том, что данное выражение приходится использовать часто, это как "универсальный указатель" чтоли.
Каждый раз печатать такое - по меньшей мере нудно
И выглядит нечитабельно
Меня интересует может ли компилятор Delphi встретив выражение x заменить его на price[num[x][y]][y].close, чтоб мои глаза не видели этого и мозг не напрягался )
|
|
telovek (статус: Посетитель), 16 марта 2008, 18:19 [#2]:
Я уверен, что с этим вопросом столкнулся не я один.
Довольно часто возникает желание заменить участок кода, который встречается в программе не раз и не два в неизменном виде на идентификатор, чтобы не перегружать этот самый код и свой мозг.
Может есть какая-нибудь директива, но я не нашел.
-----
Уважаемые эксперты, надеюсь на Вашу помощь.
|
|
Dron (статус: Студент), 16 марта 2008, 18:22 [#3]:
Повторяющийся код выносят в подпрограмму. Чем вам здесь функция не подходит?
С уважением.
|
|
telovek (статус: Посетитель), 16 марта 2008, 18:36 [#4]:
ну так вот он повторяется не весь, а урывками )
в целом-то вопрос я думаю понятен
значит компилятор не способен на такие фокусы...
|
|
Drozdov D.V. (статус: 4-ый класс), 16 марта 2008, 20:58 [#5]:
Прочита форум. Создайте фаил с разными процедурами и подключайте, что необходимо.
|
|
Dron (статус: Студент), 16 марта 2008, 21:30 [#6]:
to Drozdov D.V.: а Вы вопрос вообще читали? Причём здесь константы, о которых Вы написали в ответе?
Цитата:
Создайте фаил с разными процедурами и подключайте, что необходимо.
Это тоже не в тему, кажется...
С уважением.
|
|
Drozdov D.V. (статус: 4-ый класс), 16 марта 2008, 21:39 [#7]:
ДА? про константы согласен но только после прочтения форума.
А вот за процедуы в тему если часть кода повторяется то можно подойти имено этим путём. Хотя по ответам я смотрел вы более грамотны.
|
|
Вадим К (статус: Академик), 16 марта 2008, 23:06 [#8]:
to telovek:
В Си/Си++ применяют для таких целей препроцессор. Можно постараться и прикрутить его к делфи, но это издевательство над языком.
Основываясь на своём опыте, я знаю, что если мне приходиться писать столь хитрые вложения, значит я где то ошибся в дизайне приложения.
Может вам стоит подумать о переходе на модель с классами? Если всё правильно сделать, то код станет значительно красивей. А такие комбинации с массивами характерны обычно только для сугубо математических расчётов.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
telovek (статус: Посетитель), 20 марта 2008, 19:43 [#9]:
to Вадим К:
Препроцессор! Точно! Нашел инфу, спасибо. Жаль что нет такой возможности в делфи...
Хочется быть творцом и творить по своим правилам, а приходится по всеобщепризнанным (
Чтож, я подумаю о переписи все под си ради такой уникальной возможности )
to ALL: Всем спасибо, мне у вас понравилось.
|
|
Вадим К (статус: Академик), 20 марта 2008, 23:02 [#10]:
почему нет - всё можно. Только компилировать прийдётся с консоли. Хотя начиная с 2006 делфи, можно делать "програмы для предварительной обработки текста перед компиляцией".
Раз хочеться творить - надо творить, а не споткнувшись о первый камешок, назвать его Эверестом и, подняв ручки вверх, биться головой об Землю.
Заходите ещё
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|