|
Тема
|
Scroll в/у Custom component
|
|
Автор |
VladoVasilev (непознат
) |
Публикувано | 02.07.04 14:26 |
|
Използвам един готов компонент (TOVCLookOutBar), който има два бутона (със стрелка нагоре и надолу), имитиращи SCroll за потребителя. В конструктора на класа тези бутони се Create-ват и на OnClick event-а им се присвоява една процедура, която имитира скролирането. Проблема е, че са private.
Как мога аз да имитирам скролиране, т.е да "накарам Windiws-a да си мисли, че съм натиснал един от двата бутона"?? Незнам друг начин, пробвах с TOVCLookOutBar.Perform(WM_VSCROLL,SB_UP,0), но не стана..
Мерси на всички :)
| |
|
Щом като си има процедура, защо не я използваш. Ако е скрита, извади я на светло. Навремето правих един трик, при който се обръщах към private procedure като към public:
T1 = class(TObject)
private
procedure f1;
end;
T2 = class(T1)
public
procedure f1; overload;
end;
{ T1 }
procedure T1.f1;
begin
// ... some think source
end;
{ T2 }
procedure T2.f1;
begin
inherited;
end;
// ============
T2.Create.f1;
Така през обекта T2 извикваш процедурата f1
Никога не е късно да...
| |
|
Това е много добра идея - мерси! Просто почти не съм пренаписвал компоненти (само за да видя как става) и въобще не ми хрумна...има ли нещо по-нестандартно при пренаписването (все пак това е Visual component)...?
| |
|
Но ти няма да го пренаписваш. Само ще го наследиш в нов празен обект и ще пипнеш метода, който те интересува. После ще използваш новия обект, който ще бъде всъщност наследения компонент.
Никога не е късно да...
| |
|
Незнам дали аз бъркам, ама това си е визуален компонент и съответно трябва да направя нов, който наследява стария и да го инсталирам някъде във page-овете на Component palette-то, за да мога да го ползвам?
| |
|
Точно.
Никога не е късно да...
| |
Тема
|
Така няма да стане
[re: Eventer]
|
|
Автор |
Formal (невежа) |
Публикувано | 05.07.04 12:01 |
|
Ако T1 и T2 са ти в различни модули, T2 не може да вижда private функцията на T1.
| |
Тема
|
Re: Така няма да стане
[re: Formal]
|
|
Автор |
Eventer (--) |
Публикувано | 06.07.04 13:56 |
|
Теоретично, знаеш ли, юе си прав. Сега ще погледна защо тръгна при мен...
Никога не е късно да...
| |
|
|
|
|