全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1521
推到 Plurk!
推到 Facebook!

利用Button鈕,畫出X軸與Y軸,並設定之座標。

答題得分者是:careychen
what001
一般會員


發表:7
回覆:6
積分:2
註冊:2008-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-16 16:09:11 IP:192.192.xxx.xxx 訂閱
請問一下,如何在按下Button鈕,會自動在Image裡畫下X軸與Y軸兩條線,並可自行指定X軸與Y軸之座標?
謝謝各位的回答!
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-16 16:29:16 IP:211.72.xxx.xxx 訂閱
1. 拉兩個 TEdit 置 Form 上, 供使用者自行輸入指定之 X Y 軸之座標,
最好應增加判斷, 勿讓座標超出 TImage 的範圍.
2. 在 Button 的 Object Inspector 的 OnClick 點一下會在 Code Edit 產生 Event Function
3. 在該 Function 中設定 TImage.Canvas.Pen.Width, Brush.Color 等, 然後
執行 TImage.Canvas.MoveTo() LineTo() 等 Method 便可畫線
4. 另設一 Button 清除前次所畫之線, 或於畫線之前先執行清除
以上皆可於 Help 找到詳細說明.

CareyChen 大哥, 甭糗小弟了! 只是看沒人回, 就提示一下而已!
編輯記錄
herbert2 重新編輯於 2008-12-16 19:56:39, 註解 無‧
herbert2 重新編輯於 2008-12-16 20:00:01, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-16 16:49:22 IP:60.248.xxx.xxx 訂閱
Hi, 您可以試試下面這樣,自己拉兩個 TextBox 叫 edtX 和 edtY 

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Width, Height, Spacing: Integer;
begin
X := StrToIntDef(edtX.Text, 0);
Y := StrToIntDef(edtY.Text, 0);
Width := Image1.Width;
Height := Image1.Height;
// X 軸與 Y 軸距離邊界的距離
Spacing := 10;
with Image1.Canvas do
begin
Brush.Color := clBlack;
Pen.Width := 2;
// 畫 X 軸
MoveTo(0, Height-Spacing);
LineTo(Width, Height-Spacing);
// 畫 Y 軸
MoveTo(Spacing, 0);
LineTo(Spacing, Height);
// 畫出座標
Ellipse(Spacing X-4, Height-Spacing-Y-4, Spacing X 4, Height-Spacing-Y 4);

// 座標字樣
Brush.Style := bsClear;
TextOut(Spacing X 5, Height-Spacing-Y 5, '座標(' IntToStr(X) ',' IntToStr(Y) ')');
end;
end;
[/code]

po 完才看到 herbert2 前輩也 Po 了,真是不好意思 @@"

===================引 用 what001 文 章===================
請問一下,如何在按下Button鈕,會自動在Image裡畫下X軸與Y軸兩條線,並可自行指定X軸與Y軸之座標?
謝謝各位的回答!
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-12-16 16:50:27, 註解 無‧
careychen 重新編輯於 2008-12-16 18:55:00, 註解 加座標字樣‧
what001
一般會員


發表:7
回覆:6
積分:2
註冊:2008-11-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-17 15:16:45 IP:192.192.xxx.xxx 訂閱
謝謝herbert2 跟careychen大大的回覆!
可能我表達的意思錯了!
我是想在image裡放張圖片,按下Buttom後會自動在image的圖片上畫出2條X軸跟Y軸線條!
我有照著careychen大大給的程式碼試過但是一直不能在image的圖片上畫2條線,不知道哪裡有問題?
還有想問一下,按下Buttom是否可以直接讀取image圖片的XY軸座標資料到資料庫裡?
謝謝大家的回覆!感謝!
what001
一般會員


發表:7
回覆:6
積分:2
註冊:2008-11-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-17 15:18:19 IP:192.192.xxx.xxx 訂閱
謝謝herbert2 跟careychen大大的回覆!
可能我表達的意思錯了!
我是想在image裡放張圖片,按下Buttom後會自動在image的圖片上畫出2條X軸跟Y軸線條!
我有照著careychen大大給的程式碼試過但是一直不能在image的圖片上畫2條線,不知道哪裡有問題?
還有想問一下,按下Buttom是否可以直接讀取image圖片的XY軸座標資料到資料庫裡?
謝謝大家的回覆!感謝!

===================引 用 careychen 文 章===================
Hi, 您可以試試下面這樣,自己拉兩個 TextBox 叫 edtX 和 edtY

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Width, Height, Spacing: Integer;
begin
X := StrToIntDef(edtX.Text, 0);
Y := StrToIntDef(edtY.Text, 0);
Width := Image1.Width;
Height := Image1.Height;
// X 軸與 Y 軸距離邊界的距離
Spacing := 10;
with Image1.Canvas do
begin
Brush.Color := clBlack;
Pen.Width := 2;
// 畫 X 軸
MoveTo(0, Height-Spacing);
LineTo(Width, Height-Spacing);
// 畫 Y 軸
MoveTo(Spacing, 0);
LineTo(Spacing, Height);
// 畫出座標
Ellipse(Spacing X-4, Height-Spacing-Y-4, Spacing X 4, Height-Spacing-Y 4);

// 座標字樣
Brush.Style := bsClear;
TextOut(Spacing X 5, Height-Spacing-Y 5, '座標(' IntToStr(X) ',' IntToStr(Y) ')');
end;
end;
[/code]

po 完才看到 herbert2 前輩也 Po 了,真是不好意思 @@"

===================引 用 what001 文 章===================
請問一下,如何在按下Button鈕,會自動在Image裡畫下X軸與Y軸兩條線,並可自行指定X軸與Y軸之座標?
謝謝各位的回答!
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-17 16:21:59 IP:60.248.xxx.xxx 訂閱
Hi, 就小弟知道的部份,您應該是 load 了 Jpeg 的圖,而 Jpeg 是無法直接畫的,要轉 Bitmap 才行
而如果載入了 Bmp 要畫出現的話,原程式中的

with Image1.Canvas do

就要改成

with Image1.Picture.Bitmap.Canvas do

如果要知道如何從 Jpeg 轉 Bmp ,找了一篇由副站長的文章給您看一下 想請問處理JPEG檔的問題

===================引 用 what001 文 章===================
謝謝herbert2 跟careychen大大的回覆!
可能我表達的意思錯了!
我是想在image裡放張圖片,按下Buttom後會自動在image的圖片上畫出2條X軸跟Y軸線條!
我有照著careychen大大給的程式碼試過但是一直不能在image的圖片上畫2條線,不知道哪裡有問題?
還有想問一下,按下Buttom是否可以直接讀取image圖片的XY軸座標資料到資料庫裡?
謝謝大家的回覆!感謝!

===================引 用 careychen 文 章===================
Hi, 您可以試試下面這樣,自己拉兩個 TextBox 叫 edtX 和 edtY

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Width, Height, Spacing: Integer;
begin
X := StrToIntDef(edtX.Text, 0);
Y := StrToIntDef(edtY.Text, 0);
Width := Image1.Width;
Height := Image1.Height;
// X 軸與 Y 軸距離邊界的距離
Spacing := 10;
with Image1.Canvas do
begin
Brush.Color := clBlack;
Pen.Width := 2;
// 畫 X 軸
MoveTo(0, Height-Spacing);
LineTo(Width, Height-Spacing);
// 畫 Y 軸
MoveTo(Spacing, 0);
LineTo(Spacing, Height);
// 畫出座標
Ellipse(Spacing X-4, Height-Spacing-Y-4, Spacing X 4, Height-Spacing-Y 4);

// 座標字樣
Brush.Style := bsClear;
TextOut(Spacing X 5, Height-Spacing-Y 5, '座標(' IntToStr(X) ',' IntToStr(Y) ')');
end;
end;
[/code]

po 完才看到 herbert2 前輩也 Po 了,真是不好意思 @@"

===================引 用 what001 文 章===================
請問一下,如何在按下Button鈕,會自動在Image裡畫下X軸與Y軸兩條線,並可自行指定X軸與Y軸之座標?
謝謝各位的回答!
------
價值的展現,來自於你用哪一個角度來看待它!!
what001
一般會員


發表:7
回覆:6
積分:2
註冊:2008-11-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-12-19 10:24:13 IP:192.192.xxx.xxx 訂閱
非常謝謝各位的幫忙,謝謝!
系統時間:2024-03-29 1:19:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!