| 
| 
 | Вопрос # 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 делфи, можно делать "програмы для предварительной обработки текста перед компиляцией". Раз хочеться творить - надо творить, а не споткнувшись о первый камешок, назвать его Эверестом и, подняв ручки вверх, биться головой об Землю.
 
 Заходите ещё
   Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |