Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.56 MB
Время: 0.028 c
3-1086058303
ИМХО
2004-06-01 06:51
2004.06.27
Открыть в FoxPro with memo в Delphi


1-1086799141
Mike
2004-06-09 20:39
2004.06.27
строки


1-1087208125
alexa
2004-06-14 14:15
2004.06.27
Выделение в listbox


4-1084502236
scalich
2004-05-14 06:37
2004.06.27
Многопоточное приложение


3-1086251119
Zolboch
2004-06-03 12:25
2004.06.27
Database desktop