Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Компоненты   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.033 c
14-1086801955
Феликс
2004-06-09 21:25
2004.06.27
Если сократить всё человечество до деревни в 100 жителей,


6-1083752795
cherrex
2004-05-05 14:26
2004.06.27
SNIFFER сети


8-1081869661
VitGun
2004-04-13 19:21
2004.06.27
DXF. Чтение отображение.


14-1086757158
ceval
2004-06-09 08:59
2004.06.27
Novell 3.12 установил контролер FastTrar 100 TX2.


14-1086869762
cHeL
2004-06-10 16:16
2004.06.27
Подскажите, что подарить человеку на ДР ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский