線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1468
推到 Plurk!
推到 Facebook!

請問如何用combobox的選單,選擇繪圖呢??

答題得分者是:allenchan
Vincent2424
一般會員


發表:57
回覆:40
積分:19
註冊:2004-12-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-22 15:04:56 IP:163.25.xxx.xxx 未訂閱
請問如何用combobox的選單,在裡面設例如圓、矩形。而當我選圓即能繪出圓;我選矩形即能繪出矩形
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-22 15:50:52 IP:220.134.xxx.xxx 未訂閱
procedure TMainForm.FormCreate(Sender: TObject);
begin
  ComboBox.Style:=csOwnerDrawFixed;
  ComboBox.Clear;
  ComboBox.Items.Add('0');
  Combobox.Items.Add('1');
end;    procedure TMainForm.ComboBoxDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
Var
  NRect:TRect;
begin
  NRect:=classes.Rect(Rect.Left 50,Rect.Top 1,Rect.Right-50,Rect.Bottom-1);
  case index of
    0:ComboBox.Canvas.Rectangle(NRect);
    1:ComboBox.Canvas.Ellipse(NRect);
  end;//case
end;
----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-22 15:54:18 IP:220.130.xxx.xxx 未訂閱
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Clear;
  ComboBox1.Items.Add('None');
  ComboBox1.Items.Add('Circle');
  ComboBox1.Items.Add('Rectangle');
end;    //你要的只是純粹選定ComboBox選項,然後產生圖形    procedure TForm1.ComboBox1Change(Sender: TObject);
var
  S: string;
begin
  S := TComboBox(Sender).Items[TComboBox(Sender).ItemIndex];
  if S = 'Circle' then DrawCircle
  else if S = 'Rectangle' then Draw_Rectangle;
end;    //還是改變ComboBox選項以後,後續的滑鼠或鍵盤
動作去決定所要繪製圖形的樣式及其大小?    procedure TForm1.ComboBox1Change(Sender: TObject);
var
  S: string;
begin
  S := TComboBox(Sender).Items[TComboBox(Sender).ItemIndex];
  if S = 'Circle' then ChangeTo_DrawCircleMode
  else if S = 'Rectangle' then ChangeTo_DrawRectangleMode;
  else Exit_DrawGraphMode;
end;    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  //紀錄起點座標 
end;    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  //繪製變量中的圖形
  //抹去座標變量前的圖形
  //繪製座標變量後的圖形    end;    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
[red]  //繪製最後座標值的圖形
end;    
Vincent2424
一般會員


發表:57
回覆:40
積分:19
註冊:2004-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-22 16:45:29 IP:163.25.xxx.xxx 未訂閱
感謝樓上兩位先生的回應 1.我要的只是繪圖,不需用滑鼠繪 2.你們的語法是BCB嗎???好像不能在BCB上用 thanks
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-22 16:48:18 IP:203.70.xxx.xxx 未訂閱
在 Form 上面放一個 PaintBox and ComboBox:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    ComboBox1->Items->Clear();
    ComboBox1->Items->Add("矩形");
    ComboBox1->Items->Add("圓形");
}    void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
    PaintBox1->Canvas->FillRect(Rect(0, 0, PaintBox1->Width, PaintBox1->Height));        if (ComboBox1->Text == "矩形")
        PaintBox1->Canvas->Rectangle(10, 10, 100, 100);
    else if (ComboBox1->Text == "圓形")
        PaintBox1->Canvas->Ellipse(10, 10, 100, 100);
}
發表人 - allenchan 於 2004/12/22 17:50:46
系統時間:2024-07-01 8:49:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!