Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Люди меня впервые опубликовали !   Найти похожие ветки 

 
malkolinge ©   (2003-03-24 17:56) [0]

Статью можно заплевать по ссылке

http://www.delphikingdom.com/helloworld/treecombobox.htm


 
Delirium^.Tremens ©   (2003-03-24 17:59) [1]

Дай автограф ;-)


 
JibSkeart ©   (2003-03-24 17:59) [2]

Ну что же Поздравляю :)


 
Игорь Шевченко ©   (2003-03-24 18:02) [3]

Поздравляю!


 
Mystic ©   (2003-03-24 18:10) [4]

Поздравляю!


 
malkolinge ©   (2003-03-24 18:12) [5]

Пасиба !


 
Andrey ©   (2003-03-24 18:12) [6]

А я уж думал ты забыл (или забил) про статью... Поздравляю :)


 
malkolinge ©   (2003-03-24 18:16) [7]

Я тоже так думал....А на выходных нашло натхнення.....


 
Satirus   (2003-03-24 19:25) [8]

поздравляю, творческих успехов!


 
Marser ©   (2003-03-25 01:05) [9]

Пора значок подголубить ;-)


 
Кулюкин Олег ©   (2003-03-25 11:51) [10]

Примите огромные :))

Сам хотел такой компонент написать, не устраивает меня тот что в RaLib.
Спасибо!


 
REA ©   (2003-03-25 12:17) [11]

Особенно радует забота о MiddleEast - я бы точно поленился. Молодец.


 
Vint ©   (2003-03-25 12:19) [12]

Молодец! желаю дальнейших творческих успехов!


 
Карелин Артем ©   (2003-03-25 12:32) [13]

Молодца.
Меня тоже должны опубликовать в камешках. Вчера письмо черкнул.


 
Mike_Goblin ©   (2003-03-25 13:11) [14]

Поздравляю очень достойно, а теперь немного критики :)

>TEdit подобный компонент, у которого справа есть кнопка со >стрелкой.(для простоты назовем его контроллером)
>Собственно список, который будет позиционироваться под >контроллером и показываться в случае активизации выпадающего >списка. Подобную логику работы обеспечивает всем известный >компонент TDBLookupComboBox
а TComboBox не обеспечивает? ;-)

Далее в компоненте у тебя не объявлено ни одного события. А хотелось бы их увидеть :)

> ControlStyle := ControlStyle + [csReplicatable];
> if NewStyleControls then
> ControlStyle := [csOpaque]
> else
> ControlStyle := [csOpaque, csFramed];

Стар я стал, но кажется мне с бодуна, что csReplicatable никогда не будет установлен.


 
Mike_Goblin ©   (2003-03-25 13:13) [15]

дальше ParentColor := False;
меняем свойство родителя, а как насчет переобъявить с новым default, то же и про TabStop


 
Mike_Goblin ©   (2003-03-25 13:17) [16]

в методе Paint
> if (csDesigning in ComponentState) then
> FText := Name;
А зачем в design mode не давать менять текст?


 
Mike_Goblin ©   (2003-03-25 13:22) [17]

Мои извинения про события я не прав, не дочитал до конца :))))
просто иду по тексту

FHasFocus - зачем? Focused не работает?


 
Mike_Goblin ©   (2003-03-25 13:29) [18]

TdkListView = class(TCustomTreeView)
private
procedure WMMouseActivate(var Message: TMessage); message WM_MOUSEACTIVATE;
protected
procedure CreateParams(var Params: TCreateParams); override;
public
constructor Create(AOwner: TComponent); override;
end;
За что WMMouseActivate в private?


 
Mike_Goblin ©   (2003-03-25 13:31) [19]

>Теперь в конструкторе нужно дописать код создания списка :
> FPopupList := TdkListView.Create(Self);
> FListVisible := False;
> FPopupList.HideSelection:=False;
и не забыть освободить его в деструкторе :)


 
Andrey ©   (2003-03-25 13:39) [20]

>Mike_Goblin
Не бейте лежачего :)


 
Mike_Goblin ©   (2003-03-25 13:42) [21]

constructor TdkListView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FEdit := TdkTreeBox(AOwner);
// поскольку владелец нам всегда известен, используем опасное приведение типов
Parent := FEdit;
Visible := False;
ControlStyle := ControlStyle + [csNoDesignVisible, csReplicatable];
end;

А если вдруг я создам экземпляр класса TdkListView в runtime с владельцем не TdkTreeBox - случится мне большое счастье от жесткого приведения типов с непонятным сообщением.
Если уж так приперло чтобы владелец был TdkTreeBox то надо бы так
constructor TdkListView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if not (AOwner is TdkTreeBox) then
raise Exception.Create("Owner for this class must be TdkTreeBox");


 
Romkin ©   (2003-03-25 13:51) [22]

Поздравляю и я :-))
Так держать!
А на Гоблина не смотри, статья очень даже ничего, подлизать только немного :-)


 
Mike_Goblin ©   (2003-03-25 13:56) [23]

Кстати события OnEnter и OnExit по тексту статьи так и не завелись :)))) св-во Enabled тоже не обозначилось.

Резюме:
несмотря не мелкие недостатки, которые,я надеюсь ты устранишь, проделана большая работа, достойная полного одобрения :))))))



 
Mike_Goblin ©   (2003-03-25 14:02) [24]

Кстати, ты не хотел бы оформить все это с исправлениями в качестве статьи для RSDN Magazine?


 
zx ©   (2003-03-25 14:13) [25]

Поздравляю!


 
malkolinge ©   (2003-03-25 14:16) [26]


> FHasFocus - зачем? Focused не работает?

Нет, почему - не знаю



> а TComboBox не обеспечивает? ;-)

Глянь в исходники ! и попробуй сам на его основе что-то сделать. Если получиться вышли адрес, я тебе пиво вышлю

> Далее в компоненте у тебя не объявлено ни одного события.
> А хотелось бы их увидеть :)

КАК ? вроде он дропдаун и клозеАп есть а все остальные вытащил..



> А зачем в design mode не давать менять текст?

Я его вообще не даю менять, ЭТО СПИСОК !


> меняем свойство родителя, а как насчет переобъявить с новым
> default, то же и про TabStop

СПРАВЕДЛИВО


> За что WMMouseActivate в private?

А куда ? в исходниках тоже так (ВКЛ) !


> А если вдруг я создам экземпляр класса TdkListView в runtime
> с владельцем не TdkTreeBox - случится мне большое счастье
> от жесткого приведения типов с непонятным сообщением.

А зачем его создавать отдельно ? ЗАЧЕМ ? Ну не пойму хоть убейте !

> и не забыть освободить его в деструкторе :)

Я про деструктор совсем забыл :))) Его у меня нету....Прогнал..Стыдно...


> Кстати, ты не хотел бы оформить все это с исправлениями
> в качестве статьи для RSDN Magazine?

С удовольствием ! надо связаться



> Romkin ©

Спасибо ! Но он как минимум в 2х местах прав !


 
Romkin ©   (2003-03-25 14:22) [27]

>А зачем его создавать отдельно ? ЗАЧЕМ ? Ну не пойму хоть убейте !
Подстраховка всегда нужна, не ты один им пользоваться будешь, поэтому тыкнуть нород надо не в AV, а в нормальный Exception


 
Vlad Oshin ©   (2003-03-25 14:25) [28]

Молодец.


 
malkolinge ©   (2003-03-25 14:26) [29]


> Romkin ©

Ок понял принял. Только целью статьи было показать, КАК такие компоненты делать, а не завязать свою реализацию всем, но тем не менее спасибо !


 
calm ©   (2003-03-25 15:20) [30]


> malkolinge © (25.03.03 14:26)

Как написал Mike_Goblin © (25.03.03 13:56), все достойно полного одобрения.

Но указанные недостатки исправь!

> Только целью статьи было показать, КАК такие компоненты
> делать, а не завязать свою реализацию всем,

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


 
malkolinge ©   (2003-03-25 15:33) [31]

Уже правим :)


 
Romkin ©   (2003-03-25 15:52) [32]

Поторопись :-)))))
http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=26440


 
malkolinge ©   (2003-03-25 16:07) [33]

Ну спасибо что ссылку сюда дал :) теперь люди его даже качать побояться


 
Romkin ©   (2003-03-25 16:24) [34]

НУ что вы, всегда пожалуйста, за мной не заржавеет :-))))


 
malkolinge ©   (2003-03-25 17:55) [35]


> Romkin © (25.03.03 16:24)
> НУ что вы, всегда пожалуйста, за мной не заржавеет :-))))

Оно и видно :))))
Ребят всем спасибо, у меня теперь появилось желание писать еще что-то :)


 
calm ©   (2003-03-25 20:04) [36]

Давай, ждем!


 
MsGuns ©   (2003-03-25 20:22) [37]

Мне статья понравилась - скачал себе в "Учебник". Правда, в деле созидания собственных компонент я еще поросенок розовый ;)), но стилистика и язык мне пришлись по душе.
И ошибок пока не нашел грамматических ;)))))))).


 
malkolinge ©   (2003-03-26 10:25) [38]

Странно :) я их нашел массу, но это у меня стиль такой



Страницы: 1 вся ветка

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.018 c
1-30373
Петров Денис
2003-03-29 12:19
2003.04.10
Office-подобный MDI-интерфейс


14-30555
Marser
2003-03-24 16:33
2003.04.10
Графитовая бомба


4-30650
MikeFW
2003-02-06 12:24
2003.04.10
Как чужой экзешник вставить в свой?


1-30409
volph
2003-03-30 19:57
2003.04.10
Регулярное выражение в делфи


3-30258
Georg
2003-03-21 10:22
2003.04.10
Проблема с Insert