Текущий архив: 2004.06.27;
Скачать: CL | DM;
ВнизКомпоненты Найти похожие ветки
← →
Gero © (2004-06-10 23:47) [0]Компоненты, компоненты, компоненты...
Эти компонеты уже пишут по поводу и без повода, мол я написал компонент копирующий файлы, а я написал компонент для messagebox"ов...
Это уже начало раздражать.
Еще и спрашивают: мол, почему в твоей программе так много кода, лучше бы по компонентам все разбил.
Уше дошло до того, что пишут компоненты без свойств, содержащие одну-единственную функцию(не считая унаследованных, конечно).
Типа круто?
← →
Гаврила © (2004-06-10 23:48) [1]типа круто потом проект на другую машину переносить
и еще круто с сишниками холи-вар вести потом
← →
ИМХО © (2004-06-10 23:54) [2]"Компьютеры, процессоры, сканнеры... надоело! Сколько можно?" (с)
← →
Игорь Шевченко © (2004-06-10 23:56) [3]Компонент хорошо создавать, когда он используется более одного раза в программе, а еще лучше - в нескольких программах. Тогда в его написании есть смысл. Мначе - лично я не вижу смысла.
← →
Gero © (2004-06-10 23:56) [4]
> ИМХО © (10.06.04 23:54)
И что Вы этим хотите сказать?
← →
Gero © (2004-06-10 23:57) [5]
> Игорь Шевченко © (10.06.04 23:56)
А просто модуль чем хуже?
← →
KilkennyCat © (2004-06-10 23:59) [6]
> Gero © (10.06.04 23:57) [5]
или процедура :)
← →
jack128 © (2004-06-10 23:59) [7]
> Эти компонеты уже пишут по поводу и без повода, мол я написал
> компонент копирующий файлы, а я написал компонент для messagebox"ов...
Что реально так? Лично мне даже там где надо было бы компонентом оформить просто лениво этоо делать. У мя дома инсталировать, на работе инсталировать. А потом вдруг новое свойство решу добавить - опять по новой... Хотя возможно это потому, что я контролы не пишу. Для визуальных компонентов дезин тайм, конечно, огромную роль играет..
← →
KilkennyCat © (2004-06-11 00:00) [8]
> jack128 © (10.06.04 23:59) [7]
а я проблему "дом-работа" решил винтом в мобилраке.
← →
Игорь Шевченко © (2004-06-11 00:01) [9]Gero © (10.06.04 23:57)
> А просто модуль чем хуже?
На форму не положишь, в design-time свойства не настроишь
← →
Gero © (2004-06-11 00:02) [10]
> Что реально так?
Ну вот пример:
http://delphimaster.net/view/1-1086886557/
10 - ый пост.
Это только то, что под руку попалось, а вобще примеров таких немерянно встречал.
← →
Игорь Шевченко © (2004-06-11 00:05) [11]Gero © (11.06.04 00:02)
> Ну вот пример:
> http://delphimaster.net/view/1-1086886557/
> 10 - ый пост.
Ну, это типа того, что как бы круто компоненты писать
← →
Gero © (2004-06-11 00:06) [12]
[9] Игорь Шевченко © (11.06.04 00:01)
> На форму не положишь, в design-time свойства не настроишь
Да, уважительные причины.
← →
Игорь Шевченко © (2004-06-11 00:07) [13]Gero © (11.06.04 00:06)
> Да, уважительные причины.
Это ирония ?
← →
KilkennyCat © (2004-06-11 00:08) [14]
> Игорь Шевченко © (11.06.04 00:01) [9]
>
> На форму не положишь, в design-time свойства не настроишь
Вы будете смеятся, но когда я первый раз сел за делфи, окно свойств не открылось. И я писал программу, не зная о его существовании :) Книжки тогда не было, изучал методом тыка. Была написана сетевая версия программы "платежка"! за 700 рублей :) и месяц возни (большей частью в ВарКрафте)
← →
Gero © (2004-06-11 00:08) [15]
> [13] Игорь Шевченко © (11.06.04 00:07)
Ну конечно :)
А что, Вы действительно считаете эти причины уважительными?
← →
Gero © (2004-06-11 00:12) [16]
> KilkennyCat © (11.06.04 00:08)
> когда я первый раз сел за делфи, окно свойств не открылось.
> И я писал программу, не зная о его существовании :)
LOL :)
Так держать!
Скажем "нет" устанавливанию свойств в DesignTime!
:)
← →
Игорь Шевченко © (2004-06-11 00:18) [17]Gero © (11.06.04 00:08)
> А что, Вы действительно считаете эти причины уважительными?
Конечно. А что, можно иначе считать ? Поделитесь, мне тоже стало интересно.
Кстати, небольшой пример: есть программа для ввода неких данных, данные вводятся через набор Edit"ов, ComboBox"ов и прочих контролов. Есть задача - при вводе пользователем некорретных значений выделять фон контрола "цветом неверности" (разумеется - желтым:)
(Неверность значений определяется у каждого контрола по своим правилам, иногда в чем-то совпадающим, иногда различающимся)
Как эту задачу можно решить наименьшим количеством кода без компонентов ?
← →
jack128 © (2004-06-11 00:18) [18]
> А что, Вы действительно считаете эти причины уважительными?
сморя какой компонент. Чем сложнее, тем более уважительной является эта причина. Подумай сколько бы ты настраивал, ну например, связку DataSet - DataSource - DbGrid, что бы она нормально отображалась. Настроить все заголовки, все форматы, прописать lookup поля и тд и тп. Все таки Delphi - это среда _визуального_ программирования..
← →
Gero © (2004-06-11 00:27) [19]
> Игорь Шевченко © (11.06.04 00:18)
Ну, например так(первое что в голову пришло):
if Comp is TEdit then
begin
if Tedit(Comp).Text <> "верный текст" then
TEdit(Comp).Color := clErrorColor
else
TEdit(Comp).Color := clNormalColor;
end
else if Comp is TComboBox then
begin
// Аналогично
end
else if ...
А как бы эту задачу решали Вы?
← →
Gero © (2004-06-11 00:28) [20]
> jack128 © (11.06.04 00:18)
Это понятно, но нужно же знать меру.
Компонент для копирования файлов - это уже до ручки дело дошло.
← →
Игорь Шевченко © (2004-06-11 00:33) [21]Gero © (11.06.04 00:27)
У разных TEdit разные правила для определения верности, мне показалось, я это объяснил. Контролов в общей сложности (на паре десятков форм) около сотни, разных правил проверки примерно три десятка.
← →
Gero © (2004-06-11 00:36) [22]
> Игорь Шевченко © (11.06.04 00:33)
Прошу прощения, я пропустил этот момент.
Так как бы это сделали Вы?
В чем преимущество создания компонента в данном случае?
← →
Игорь Шевченко © (2004-06-11 00:37) [23]Забыл добавить - в совокупности используется 6 разных типов контролов. (TDBEdit, TDBComboBox, TDBComboEdit, TDBCalcEdit, TDBDateEdit, TComboBox)
← →
Gero © (2004-06-11 00:44) [24]
> [23] Игорь Шевченко © (11.06.04 00:37)
Так в чем преимущество создания компонента в данном случае?
Просветите меня, темного.
← →
Игорь Шевченко © (2004-06-11 00:46) [25]Gero © (11.06.04 00:44)
Я бы хотел сначала увидеть способ решения без компонентов, если не трудно :)
← →
nikkie © (2004-06-11 00:50) [26]>Я бы хотел сначала увидеть способ решения без компонентов, если не трудно :)
пишется процедура SetErrorStyle(AControl: TControl; Value: Boolean) - внутри проверка по классу и для каждого класса по-своему выставляем св-ва.
← →
Gero © (2004-06-11 00:51) [27]
> [25] Игорь Шевченко © (11.06.04 00:46)
Чесно говоря, я очень устал и меня сейчас ломает что-либо писать.
Но если так настаиваете, то написать могу.
Но зачем?
Вы сомневаетесь, что я с этим справлюсь? ;)
← →
Gero © (2004-06-11 00:53) [28]
> внутри проверка по классу и для каждого класса по-своему
> выставляем св-ва.
Я в [19] это и имел ввиду.
Только не по классу проверка, а для каждого контрола своя проверка, я так понял.
← →
GuAV © (2004-06-11 00:59) [29]
> Вы сомневаетесь, что я с этим справлюсь? ;)
Gero! На тебя с надеждой смотрят все противники визуальной разработки! Не подведи их!
← →
Gero © (2004-06-11 01:01) [30]
> Не подведи их!
Наверное, все же подведу. Отдыхать-то тоже хочется.
← →
Игорь Шевченко © (2004-06-11 01:08) [31]nikkie © (11.06.04 00:50)
У одного класса компонентов могут существовать (и существуют) разные правила проверки.
И для полного приближения к реальности: цветом они должны выделяться только при перемещении между компонентами. Причем, если в контрол, помеченный цветом неверности введено верное значение, его цвет должен меняться на верный при выходе с контрола.
При попытке подтверждения ввода данных в случае неверного значение в контроле должно выдаваться предупреждающее сообщение (для каждого правила проверки - свое) :)
← →
Profi © (2004-06-11 01:08) [32]>Gero
LMD
Модуль лучше и проще, но... надо запомнить все названия функций, либо делать справочник (хотя бы txt). В компоненте же, delphi сам предлежет все функции! Так что выбор за тем, что удобнее.
← →
Gero © (2004-06-11 01:12) [33]Удалено модератором
← →
Profi © (2004-06-11 01:16) [34]Удалено модератором
← →
nikkie © (2004-06-11 01:16) [35][31] Игорь Шевченко
ок, я понял. предполагаем, что задача решаема написанием нужных обработчиков событий, но просто ломает куче контролей проставлять правильно все обработчики? так?
решение такое: обработчики событий делаем не методами формы, а методами нового класса-хендлера. в этом классе пишем метод Attach(AControl: TControl), который прописывает нужные обработчики.
← →
Gero © (2004-06-11 01:17) [36]Удалено модератором
← →
Игорь Шевченко © (2004-06-11 01:18) [37]nikkie © (11.06.04 01:16)
> ок, я понял. предполагаем, что задача решаема написанием
> нужных обработчиков событий, но просто ломает куче контролей
> проставлять правильно все обработчики? так?
Примерно так, но еще и вызовом этих обработчиков в нужные моменты.
← →
Profi © (2004-06-11 01:19) [38]Удалено модератором
← →
Gero © (2004-06-11 01:20) [39]
> Игорь Шевченко © (11.06.04 01:18)
А что изменит компонент?
← →
Игорь Шевченко © (2004-06-11 01:21) [40]Gero © (11.06.04 01:20)
> А что изменит компонент?
Количество строк кода, насколько я полагаю, в конечном итоге - скорость разработки
Страницы: 1 2 вся ветка
Текущий архив: 2004.06.27;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.05 c