初來乍到,請多多指教!先請教乙個控制項問題

2022-04-15 02:26:27 字數 1708 閱讀 7386

初來乍到,請多多指教!先請教乙個控制項問題 vcl元件開發及應用

sendmessage(panel2.handle,lb_sethorizontalextent,   panel2.width+30,       0);  

這個方式可以給listbox新增橫向滾動條,但是換成panel就不行了,為什麼,論壇中說是可以的,但是我就是實現不了,請教是什麼原因,我用的是delphi7,謝謝。  

順便再問一下,想學習vcl控制項開發,有沒有比較合適的書籍?

tpanel應該沒有處理lb_sethorizontalextent這條訊息的handler吧。這條訊息是專門針對listbox的。   看字首lb_就是這個意思了。但是sendmessage(panel2.handle,lb_sethorizontalextent,   panel2.width+30,       0);  

還是可以實現panel2.width+30的。

tformdemo   =   class(tform)  

panel:   tpanel;  

buttondemo:   tbutton;  

procedure   formcreate(sender:   tobject);  

procedure   buttondemoclick(sender:   tobject);  

private  

oldpanelwndproc:   twndmethod;  

procedure   newpanelwindowproc(var   message:   tmessage);  

public  

end;  

var  

formdemo:   tformdemo;  

implementation  

procedure   tformdemo.formcreate(sender:   tobject);  

begin  

oldpanelwndproc   :=   panel.windowproc;  

panel.windowproc   :=   newpanelwindowproc;  

end;  

procedure   tformdemo.newpanelwindowproc(var   message:   tmessage);  

begin  

if   message.msg   =   lb_sethorizontalextent   then  

panel.width   :=   message.wparam;  

oldpanelwndproc(message);  

end;  

procedure   tformdemo.buttondemoclick(sender:   tobject);  

begin  

sendmessage(panel.handle,lb_sethorizontalextent,   panel.width+30,   0);  

end;  

但是實現歸實現,   與lb_sethorizontalextent這條訊息沒有什麼直接的關係啊,   傳送這條訊息和傳送其他的訊息沒有什麼區別的。

謝謝   sanmaotuo(老馮)     的回答,對我幫助很大  

問題的點數是不是要像在大富翁裡一樣分發啊,不知道怎麼發:(

初來乍到,請多多指教

學習,是乙個漫長的經歷。期間的快樂和苦痛只有自己感受最深。學習的路程 道阻且長,但在這路上最大的動力就是內心的信念和興趣了。學習也有一段時間了,其實內心一直反感諸如此類的部落格,認為有這時間不如多看看幾頁書 多想想專案方案。但前天施老師的一句話讓我重新思考了這個問題。沒錯,人也是一種遵循自然法則的生...

初來乍到。多多指教

本人初來乍到,請各位朋友多多指教。大學快要讀完了,還有半年就結束了。回想起來,感覺時間過的好快。剛開學的時候什麼都要上,感覺學的東西好多。現在回過頭來感覺什麼都沒學到,什麼都不會。悲劇啊!不過唯一慶幸的是工作一開學就簽好了,是個國企。以後稍微可以慢慢混了。不過心情一直不舒服,大學就這樣荒廢了?乙個月...

初來乍到,請各位大佬多多指教

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...