Scroll в/у Custom component
7 отговора
128 прегледа
Scroll в/у Custom component
Използвам един готов компонент (TOVCLookOutBar), който има два бутона (със стрелка нагоре и надолу), имитиращи SCroll за потребителя. В конструктора на класа тези бутони се Create-ват и на OnClick event-а им се присвоява една процедура, която имитира скролирането. Проблема е, че са private.
Как мога аз да имитирам скролиране, т.е да "накарам Windiws-a да си мисли, че съм натиснал един от двата бутона"?? Незнам друг начин, пробвах с TOVCLookOutBar.Perform(WM_VSCROLL,SB_UP,0), но не стана..
Мерси на всички :)
Как мога аз да имитирам скролиране, т.е да "накарам Windiws-a да си мисли, че съм натиснал един от двата бутона"?? Незнам друг начин, пробвах с TOVCLookOutBar.Perform(WM_VSCROLL,SB_UP,0), но не стана..
Мерси на всички :)
Re: Scroll в/у Custom component
Щом като си има процедура, защо не я използваш. Ако е скрита, извади я на светло. Навремето правих един трик, при който се обръщах към 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
Никога не е късно да...
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
Никога не е късно да...
Re: Scroll в/у Custom component
Това е много добра идея - мерси! Просто почти не съм пренаписвал компоненти (само за да видя как става) и въобще не ми хрумна...има ли нещо по-нестандартно при пренаписването (все пак това е Visual component)...?
Re: Scroll в/у Custom component
Но ти няма да го пренаписваш. Само ще го наследиш в нов празен обект и ще пипнеш метода, който те интересува. После ще използваш новия обект, който ще бъде всъщност наследения компонент.
Никога не е късно да...
Никога не е късно да...
Re: Scroll в/у Custom component
Незнам дали аз бъркам, ама това си е визуален компонент и съответно трябва да направя нов, който наследява стария и да го инсталирам някъде във page-овете на Component palette-то, за да мога да го ползвам?
Така няма да стане
Ако T1 и T2 са ти в различни модули, T2 не може да вижда private функцията на T1.
Re: Така няма да стане
Теоретично, знаеш ли, юе си прав. Сега ще погледна защо тръгна при мен...
Никога не е късно да...
Никога не е късно да...