問一個有關TStatusBar元件的問題~ |
答題得分者是:axsoft
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
請問各位先進: 我在使用tstatus元件用成2panel,我想在第2個panel的內容為:"測試 畫一個圓" 1.當button1按下去時,在第一個panel出現"button 1 click",在第二個panel出現:測試字樣和一個紅色實心圓形 2.當button2按下去時,在第一個panel出現"button 2 click",在第二個panel出現:測試字樣和一個綠色實心圓形 請問各位指導或有範例說明~ 謝謝 發表人 - kenbcb 於 2003/07/30 11:10:20 發表人 - kenbcb 於 2003/08/05 18:04:14
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
kenbcb你好,
首先你要先將兩個statusbar中的panels各新增一個TStatusPanels 在加入以下的程式碼就可以了
void __fastcall TForm1::Button1Click(TObject *Sender) { StatusBar1->Panels->Items[0]->Text="button 1 click"; StatusBar2->Panels->Items[0]->Text="測試字樣和一個紅色實心圓形"; } //------------------------------------------------------------ void __fastcall TForm1::Button2Click(TObject *Sender) { StatusBar1->Panels->Items[0]->Text="button 2 click"; StatusBar2->Panels->Items[0]->Text="測試字樣和一個綠色實心圓形"; }參考看看 國泰平安 |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
kenbcb您好: 試試下面幾種方法:
方法一. void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar, TStatusPanel *Panel, const TRect &Rect) { TCanvas & c = *StatusBar->Canvas; if ( Panel->Index == 0 ) // 0 - this is the first status panel. { Graphics::TBitmap *Image = new Graphics::TBitmap; ImageList1->GetBitmap( 0, Image ); c.Draw ( Rect.Left, Rect.Top, Image ); delete Image; } } 方法二. void __fastcall TForm1::FormCreate(TObject *Sender) { TImage *Image1=new TImage(this); Image1->Picture->LoadFromFile("Circle.ico"); Image1->Parent =StatusBar1; Image1->Left = 2; Image1->Top = 2; //delete Image1; } //--------------------------------------------------------------------------- 方法三. Here's a call from an included resource file: Graphics::TBitmap *MySBImage = new Graphics::TBitmap(); MySBImage = LoadFromResourceName(0, "MyBitmap"); StatusBar1->Canvas->Draw( Rect.Left 62, Rect.Top 2, MySBImage); 顯示時間文字 void __fastcall TForm1::Timer1Timer(TObject *Sender) { StatusBar1->Panels->Items[1]->Text = FormatDateTime("hh:nn:ss", Now()); }HAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/07/29 18:18:40 |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 但我要寫字和畫一個實心圓,不是載入圖片~ kenbcb您好: 寫程式的方法千百種,我想不必一定一固執用某一種方法吧! 再試試吧! Statusbar的Canvas方法中並無畫圓的方法,我用TShape來替代 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10904307&CC=243873"> void __fastcall TForm1::FormCreate(TObject *Sender) { TShape *Shape1=new TShape(this); Shape1->Shape=stCircle; Shape1->Brush->Color=clLime; //塗滿的顏色 Shape1->Pen->Color=clBlack; //外框的顏色 Shape1->Height=16; Shape1->Width=16; Shape1->Parent =StatusBar1; Shape1->Left=2; Shape1->Top= 2; StatusBar1->Panels->Items[1]->Text ="TEXT"; //delete Shape1; } //---------------------------------------------------------------------------至於你要的panel2==>"測試"+圓形,給你自己動動腦吧! 給你魚吃不如給你一根釣竿....試試吧! HAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/07/29 18:53:22 |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
kenbcb您好: 不知你的panel2==>"測試"+圓形實做出來了嗎?
我提供下面兩個解法,給您參考,也請您把標題的錯誤TStstusBar改成TStatusBar
方法一: //--------------------------------------------------------------------------- #includeHAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/08/05 17:58:28 |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |