void __fastcall TForm1::ListView4Resize(TObject *Sender)
{
ShowScrollBar(ListView4->Handle,SB_HORZ, FALSE);
}
我這樣子寫是可以的,但有一點問題,水平滾動條閃爍,平常大哥們怎么解決的?
在用VC的時候,把.asm檔案拖進檔案串列,之后選定一下編譯形式,在.h檔案宣告,這樣就可以使用了。
但是BCB怎么弄的?
小弟我菜鳥,剛剛用BCB不久,請大神們,幫幫忙,謝謝。
uj5u.com熱心網友回復:
ListView有ScrollBars屬性嗎?沒怎么注意。uj5u.com熱心網友回復:
沒有ScrollBars啊,我看了N遍了,愁死我了,可是別人又能做得到。
uj5u.com熱心網友回復:
TListView是對win32 listview的包裝,有handle可使用,也支持windows訊息,有些win控制元件支持用發訊息來設定,你可以查一下msdn看listview有哪些可設定的,或者用delphi做關鍵字搜一下。uj5u.com熱心網友回復:
已經搜索delphi了,只有這個ShowScrollBar(ListView4->Handle,SB_HORZ, FALSE);
uj5u.com熱心網友回復:
你這句代碼放在表單建構式里試試。uj5u.com熱心網友回復:
那個位置都不管用,都試過了,一樣會閃爍
uj5u.com熱心網友回復:
最簡單的解決控制元件閃爍的辦法就是把控制元件的DoubleBuffered屬性設為trueuj5u.com熱心網友回復:
win32控制元件設定doublebuffered可能黑視窗。uj5u.com熱心網友回復:
已經設定了,還是不行
uj5u.com熱心網友回復:
變通一下唄: ListView4 放入 Panel 。 ListView->left=0; ListView->Top=0 ;void __fastcall TForm1::Panel1Resize(TObject *Sender)
{
ListView4->Width =Panel2->Width ;
ListView4->Height =Panel2->Height+20 ; //20 設定為變數
}
uj5u.com熱心網友回復:
上面寫錯了: 都是Panel1ListView4->Width =Panel1->Width ;
ListView4->Height =Panel1->Height+20 ;
uj5u.com熱心網友回復:
ShowScrollBar(ListView4->Handle, SB_BOTH, FALSE);ShowScrollBar(ListView4->Handle, SB_VERT, TRUE);
uj5u.com熱心網友回復:
這跟ShowScrollBar(ListView4->Handle,SB_HORZ, FALSE);有什么區別?
uj5u.com熱心網友回復:
他這個操作實際不應該在resize處理中做uj5u.com熱心網友回復:
能去哪里做?我也不清楚呢,查了很多資料都沒有找到呢
uj5u.com熱心網友回復:
你這句代碼應該只執行一次,而不是每次resize都執行吧。uj5u.com熱心網友回復:
每次都執行,所以才閃爍
uj5u.com熱心網友回復:
放FormCreate里?
uj5u.com熱心網友回復:
你這句代碼應該只執行一次,而不是每次resize都執行吧。
每次都執行,所以才閃爍
放FormCreate里?
都不行,ShowScrollBar(ListView4->Handle,SB_HORZ, FALSE); 這個做法,每次改變ListView4大小的時候,滾動條才會出現,執行這個函式再去消掉滾動條,所以才閃爍
uj5u.com熱心網友回復:
一定要可變大小嗎?字數uj5u.com熱心網友回復:
一定要可變大小嗎?字數
是的,要可變大小
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/22383.html
標籤:VCL組件使用和開發
上一篇:無法定位程式輸入點于元件
下一篇:大佬解答一下
