Текущий архив: 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