Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перечисляемые типы, математические операции 
V
    Опции темы
ALeXandrK
Дата 19.8.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Я вообще tag никогда не использую. Время пройдет и потом пойди разберись что ты в этот tag засунул.



--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
MetalFan
Дата 19.8.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(EvilsInterrupt @  19.8.2007,  10:53 Найти цитируемый пост)
Не есть гуд!

безосновательное заявление.

Цитата(EvilsInterrupt @  19.8.2007,  10:53 Найти цитируемый пост)
Много не нужных действий

если для тебя программирование - это набор ненужных действий, то это не для тебя.

Цитата(EvilsInterrupt @  19.8.2007,  10:53 Найти цитируемый пост)
программер существо ленивое!

по себе о всех не судят ;)

Цитата(EvilsInterrupt @  19.8.2007,  10:53 Найти цитируемый пост)
Да и если говороить про дизайн тайм, то сво-во компонентов tag, в исходник u_main.pas или др. не положится, а это опять dfm или др. файлы таскать за собой, Зачем?! 

всмысле таскать за собой? ты про что? или ты все компоненты на форме в рантайме создаешь???







--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sentry
Дата 19.8.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: нет
Всего: 10



Цитата(ALeXandrK @  19.8.2007,  12:48 Найти цитируемый пост)
Время пройдет и потом пойди разберись что ты в этот tag засунул.

Ну почему? Разобраться можно, если, конечно, в OnCreate глянуть...

Добавлено через 3 минуты и 14 секунд
Просто оставить комментарий - "что такое Tag смотри в OnCreate"  smile 
А можно прямо там и подробный комментарий написать, что, мол, в Tag'ах хранятся порядковые номера элементов
перечеслимого типа...
PM MAIL   Вверх
ALeXandrK
Дата 19.8.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Цитата(sentry @ 19.8.2007,  12:21)
Просто оставить комментарий - "что такое Tag смотри в OnCreate"  smile 
А можно прямо там и подробный комментарий написать, что, мол, в Tag'ах хранятся порядковые номера элементов
перечеслимого типа...

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


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
EvilsInterrupt
Дата 19.8.2007, 12:57 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



Цитата
если для тебя программирование - это набор ненужных действий, то это не для тебя.

и:
Цитата
по себе о всех не судят ;)

Вот смотри ситуацию:
Я в моем проекте сначала реализовал работу приложения с XML-файлом, в качестве хранения настроек к приложению. Руководитель,
сказал немудрить ребята ручками все сделают. Но при этом объектов автоматизации где применяется моя прога, очень много!
Правка в ручную XML-файла занимает не менее 20 или 30 мин.
Че я сделал? Мне стало влом править файл и я добавил опрос COM-сервера, он выдал все что у него есть, я проставил напротив того чего мне надо галочки и нажал "Применить". Операция работы с XML-файлом стала занимать не больше 3 мин.

Скажи мне теперь, что лень это плохо и не выгодно? ;)

Цитата
всмысле таскать за собой?


Когда правится свойство компонента в дизайн-тайме, куда все ложится и хранится? Не в файл ли dfm ? Ну так вот, к примеру человек
писал для delphi 5, ну есть у него лицензионная копия потому и пишет, а его товарища к примеру другая дельфи и у которой формат dfm немного отличается. Что тогда? Тогда я его товарищу, не обходимо глянуть что и как там лежит, а для этого разобраться - а это иногда больше чем 10 мин. и поправить иногда 5 мин. и того 15 мин. в пустую убить. А ведь за 15 мин. можно под отладчиком и баги новые отладить!!! или чаю попить!

ЗЫ:
Мое мнение, а от него и такие ответы на форуме. Программист это не тот кто пишет код, а тот думает о последствиях кода! Т.е. сопровождении и ряда других последствиях.
PM MAIL WWW ICQ Jabber   Вверх
MetalFan
Дата 19.8.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(EvilsInterrupt @  19.8.2007,  12:57 Найти цитируемый пост)
Программист это не тот кто пишет код, а тот думает о последствиях кода!

ну-ну! Автомоблист - это не то, кто ездит на автомобиле, а тот, кто думает, что может попасть в аварию при езде на автомобиле...
а св-во tag у компонента AFAIK чуть ли не с первых версий делфи есть и деваться никуда не собирается.
и используется оно для хранения связанных с компонентом данных.



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
EvilsInterrupt
Дата 19.8.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



MetalFan, не будем офтопить ))) Я тута по делу,т.е. по теме smile))
Ради интересу обрисовал данный вопрос своему другу Sega-Zero\Завсегдатай_Delphikingom.ru он посоветовал юзать RTTI, т.к. говорит там никакой динамикой не пахнет и все эти возврат имени класса и т.д. являются статической дурью.

Вот цитата из лога переписки с ним:
Цитата

 Sega-Zero (воскресенье, 2007-Август-19   21:21:01)
требования:
- uses TypeInfo;
- все чекбоксы лежат на панели и больше на панели ничего не лежит
- каждый чекбокс называется в соответствии с днем недели, к примеру cbMon, cbTue...
Код

type
  TWeekDay=(wdMon, wdTue, wdWed, wdThu, wdFri, wdSat, wdSun);
  TWeekDays = set of TWeekDay;

function GetCheckedDays: TWeekDays;
var
  I: Integer;
begin
  Result := [];
  for I := 0 to CheckBoxesPanel.ControlCount - 1 do
  with TCheckBox(CheckBoxesPanel.Controls[I]) do
  if Checked then 
    Include(Result, GetEnumValue(TypeInfo(TWeekDay), 'wd' + Copy(Name, 2, Length(Name)));
end;

 Sega-Zero (воскресенье, 2007-Август-19   21:22:19)
код не быстрее, но красивее smile

PM MAIL WWW ICQ Jabber   Вверх
MetalFan
Дата 19.8.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



EvilsInterrupt, да те же яйца... на имя закладываться или в tag значение для проверки засунуть... да и операции со строками более ресурсоемкие, хотя в контексте данной задачи это фиолетово...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
aktuba
Дата 19.8.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

EvilsInterrupt, да те же яйца... на имя закладываться или в tag значение для проверки засунуть... да и операции со строками более ресурсоемкие, хотя в контексте данной задачи это фиолетово...


 smile Полностью согласен. Зачем использовать тут строки? Зачем тут RTTI??? Это уже усложнение, а не упрощение.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
EvilsInterrupt
Дата 19.8.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



aktuba, ты мой пост полностью прочеЛ? ))) там написано, что вариант не мой!!!
А второй:
Цитата

 Sega-Zero (воскресенье, 2007-Август-19   21:22:19)
код не быстрее, но красивее 


В чем конечно я частично соглашаюсь smile

ЗЫ:
Учимся внимательно читать посты!

ЗЫ2:
Специалист обязан знать тонкости специфики и чем больше тем лучше
PM MAIL WWW ICQ Jabber   Вверх
aktuba
Дата 19.8.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

aktuba, ты мой пост полностью прочеЛ? ))) там написано, что вариант не мой!!!


Да прочел я. Но в корне не согласен с тем, что написано:

Цитата

- uses TypeInfo;
- все чекбоксы лежат на панели и больше на панели ничего не лежит
- каждый чекбокс называется в соответствии с днем недели, к примеру cbMon, cbTue...


Такие ограничения в данной задаче - все равно, что за хлебом дорогу перейти = слетать на самолете. Для чего? Бред какой-то...

Цитата

Код

type
  TWeekDay=(wdMon, wdTue, wdWed, wdThu, wdFri, wdSat, wdSun);
  TWeekDays = set of TWeekDay;
function GetCheckedDays: TWeekDays;
var
  I: Integer;
begin
  Result := [];
  for I := 0 to CheckBoxesPanel.ControlCount - 1 do
  with TCheckBox(CheckBoxesPanel.Controls[I]) do
  if Checked then 
    Include(Result, GetEnumValue(TypeInfo(TWeekDay), 'wd' + Copy(Name, 2, Length(Name)));
end;



Если это называется красивый код - то я вообще не разбираюсь в красоте кода. Надо было по всей форме рекурсивно пробежаться  smile 

Цитата

Sega-Zero (воскресенье, 2007-Август-19   21:22:19)
код не быстрее, но красивее 


Для меня не только не быстрее, но и не красивее, не удобнее, не... Дальше продолжи сам.

Цитата

ЗЫ:
Учимся внимательно читать посты!

ЗЫ2:
Специалист обязан знать тонкости специфики и чем больше тем лучше 


А это тут при чем? Есть опыт работы с RTTI и что? Теперь на каждом шагу применять? Таким подходом - лучше тогда отбросить ООП, Delphi и т.д. и сесть за маш.коды - вот где красота и скорость будет. В Delphi всегда главным преимуществом было четкость, легкая читаемость кода. Не надо для перевозки ящика пива железнодорожный состав нанимать!!! Хватит и попутку поймать.


EvilsInterrupt, надеюсь теперь я понятно изложил мысли. И еще, в дополнении, специалист обязан не только знать специфики, но и грамотно применять их. Вот это лучше понять как можно раньше.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ALeXandrK
  Дата 20.8.2007, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Ребята! Вы ушли глубоко в  smile 

И мне кажется уже начали переходить на личности. 
Тут каждый высказывает личное мнение. Не нужно никого переубеждать.

Я уже 13 постов назад выбрал для себя оптимальный вариант. 

Остановитесь или пишете друг другу личные сообщения - к чему тут то разводидить беседу.
Я б еще понял, если бы предлагались варианты оптимальнее, но вы ж уже такое нагородили.... smile 
Усложнили задачу по самые небалуй smile 


P.s.: Не ожидал такой активности в теме. Я понимаю, если б обсуждалось как организовать оптимальный генетический алгоритм
составления какого-нибудь расписания. Тут то задачка... так... чисто для красоты кода, т.к. скорость здесь не имеет никакого значения!

Это сообщение отредактировал(а) ALeXandrK - 20.8.2007, 02:12


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
aktuba
Дата 20.8.2007, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

Я б еще понял, если бы предлагались варианты оптимальнее, но вы ж уже такое нагородили....


Вот и я про то же  smile 


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Gwire
Дата 23.8.2007, 13:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4




Советую использоват не семь TCheckBox а один TCheckListBox из закладки Additional.

Код
type
  TEnumWD = (wdMo=1, wdTu=2, wdWe=3, wdTh=4, wdFr=5, wdSa=6, wdSu=7);
  TWeekDays = set of TEnumWD;
var
  StudingDays: TWeekDays;
  
procedure TForm1.CheckListBox1Click(Sender: TObject);
var i: Byte;
    P: Byte;
begin
    StudingDays:= []; // Так как посоветовал EvilsInterrupt
    for i:= 1 to 7 do 
    begin
        P:= Ord(CheckListBox1.Checked[i-1])*i;  // Так как ты хотел
        Include( StudingDays, TEnumWD( P ) );
    end;
end;



Это сообщение отредактировал(а) Gwire - 23.8.2007, 13:05
PM MAIL   Вверх
ALeXandrK
  Дата 23.8.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Неплохая мысль. Про существование TCheckListBox я и забыл smile 


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.