按下Buttom讀取數值資料 |
答題得分者是:st33chen
|
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
1. 設一個 boolean 變數 can_get_mouse_pos 初值為 false 2. button1 的 o n c l i c k 事件 : if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label1.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 3. image1 的 o n m o u s e u p 事件 if can_get_mouse_pos then begin // 取 x, y 值 : 就是傳進來的 x, y // 存資料庫要看您如何處理, 例如就單純新增 : query1.sql.text := 'insert into tablename (..., posx, posy, ...) values (..., ' inttostr(x) ', ' inttostr(y) ', ...'; query1.execsql; end; 不知是否切題, 參考一下 LO. ===================引 用 a80256 文 章=================== 請問一下,我設計了一個But0tom跟Image,要如何按下Buttom後會自動讀取我滑鼠在Image上圖片所點選的XY軸座標資料進入資料庫中! 該用什麼方式比較好設計!謝謝各位的回答!
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
你好按照大大你的方式
我是要先在外面設變數can_get_mouse_pos 初值為 false public can_get_mouse_pos : boolean; can_get_mouse_pos :=false; 之後再寫buttom內容是嗎? ===================引 用 st33chen 文 章=================== 您好, 1. 設一個 boolean 變數 can_get_mouse_pos 初值為 false 2. button1 的 o n c l i c k 事件 : if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label1.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 3. image1 的 o n m o u s e u p 事件 if can_get_mouse_pos then begin // 取 x, y 值 : 就是傳進來的 x, y // 存資料庫要看您如何處理, 例如就單純新增 : query1.sql.text := 'insert into tablename (..., posx, posy, ...) values (..., ' inttostr(x) ', ' inttostr(y) ', ...'; query1.execsql; end; 不知是否切題, 參考一下 LO. ===================引 用 a80256 文 章=================== 請問一下,我設計了一個But0tom跟Image,要如何按下Buttom後會自動讀取我滑鼠在Image上圖片所點選的XY軸座標資料進入資料庫中! 該用什麼方式比較好設計!謝謝各位的回答! |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
如果您沒改 form 的 name, 在 .pas 中找到 Form1: TForm1; 的地方, 加在下面 應該類似是 : var Form1: TForm1; can_get_mouse_pos : boolean; ( delphi 的內定初值為 false, 所以設初值的部份可以不寫, sorry ) implementation {$R *.dfm}
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
大大你好我按照你給的方式寫了!但是不知道為什麼無法執行不知道是哪裡出問題了
我PO我寫的程式碼看是哪裡出錯了 procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin adoquery1.SQL.Add:=Insert INTO tablename (fofs) values (" inttostr(x)"); ADOquery1.execsql; end; procedure TForm1.Button3Click(Sender: TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label3.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 如果我只是要讀取X的座標值的話這樣寫對嗎? 還有我是否要設定資料表的名稱跟欄位名稱才能只到所要的位址 謝謝大大的幫忙!!! ===================引 用 st33chen 文 章=================== 如果您沒改 form 的 name, 在 .pas 中找到 Form1: TForm1; 的地方, 加在下面 應該類似是 : var Form1: TForm1; can_get_mouse_pos : boolean; ( delphi 的內定初值為 false, 所以設初值的部份可以不寫, sorry ) ? implementation ? {$R *.dfm}
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
===================引 用 a80256 文 章=================== 大大你好我按照你給的方式寫了!但是不知道為什麼無法執行不知道是哪裡出問題了 我PO我寫的程式碼看是哪裡出錯了 procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin // adoquery1.SQL.Add:=Insert INTO tablename (fofs) values (" inttostr(x)"); // 假設您的資料表名是 TABLE_A, 存 X 的欄位名是 FOFS 且為整數型態, 要把 INSERT 命令整個包成一個字串 adoquery1.SQL.TEXT := 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')'; // 或是 // adoquery1.sql.clear; // adoquery1.sql.add( 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')' ); ADOquery1.execsql; end; procedure TForm1.Button3Click(Sender: TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label3.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 如果我只是要讀取X的座標值的話這樣寫對嗎? 還有我是否要設定資料表的名稱跟欄位名稱才能只到所要的位址 謝謝大大的幫忙!!! ===================引 用 st33chen 文 章=================== 如果您沒改 form 的 name, 在 .pas 中找到 Form1: TForm1; 的地方, 加在下面 應該類似是 : var Form1: TForm1; can_get_mouse_pos : boolean; ( delphi 的內定初值為 false, 所以設初值的部份可以不寫, sorry ) ? implementation ? {$R *.dfm}
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
大大你好之前你回覆的答案我試過了!可是不知道為什麼都是不能執行!我PO了程式碼不知道大大是否可以看是哪裡出了問題?
以下是全部的程式碼! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; ADOQuery1: TADOQuery; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure TForm1Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; can_get_mouse_pos : boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(sender:TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label2.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin adoquery1.SQL.TEXT := 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')'; ADOquery1.execsql; end; end. ===================引 用 st33chen 文 章=================== ===================引 用 a80256 文 章=================== 大大你好我按照你給的方式寫了!但是不知道為什麼無法執行不知道是哪裡出問題了 我PO我寫的程式碼看是哪裡出錯了 procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin // adoquery1.SQL.Add:=Insert INTO tablename (fofs) values (" inttostr(x)"); // 假設您的資料表名是 TABLE_A, 存 X 的欄位名是 FOFS 且為整數型態, 要把 INSERT 命令整個包成一個字串 adoquery1.SQL.TEXT := 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')'; // 或是 // adoquery1.sql.clear; // adoquery1.sql.add( 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')' ); ADOquery1.execsql; end; procedure TForm1.Button3Click(Sender: TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label3.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 如果我只是要讀取X的座標值的話這樣寫對嗎? 還有我是否要設定資料表的名稱跟欄位名稱才能只到所要的位址 謝謝大大的幫忙!!! ===================引 用 st33chen 文 章=================== 如果您沒改 form 的 name, 在 .pas 中找到 Form1: TForm1; 的地方, 加在下面 應該類似是 : var Form1: TForm1; can_get_mouse_pos : boolean; ( delphi 的內定初值為 false, 所以設初值的部份可以不寫, sorry ) ? implementation ? {$R *.dfm}
|
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
|
a80256
一般會員 發表:3 回覆:5 積分:1 註冊:2008-12-17 發送簡訊給我 |
大大你好感謝你的幫忙我的問題目前解決了!
但是現再我發現一個小問題! 就是我如果使用2個按鈕X,Y 按下x按鈕會讀取X軸值y按鈕會讀取Y軸值!我程式碼改過卻無法讓2個按鈕同時存再如果寫在一起會出現錯誤! 不知道是哪裡出問題了!麻煩大大的幫忙!!! ===================引 用 a80256 文 章=================== 大大你好之前你回覆的答案我試過了!可是不知道為什麼都是不能執行!我PO了程式碼不知道大大是否可以看是哪裡出了問題? 以下是全部的程式碼! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; ADOQuery1: TADOQuery; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure TForm1Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; can_get_mouse_pos : boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(sender:TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label2.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin adoquery1.SQL.TEXT := 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')'; ADOquery1.execsql; end; end. ===================引 用 st33chen 文 章=================== ===================引 用 a80256 文 章=================== 大大你好我按照你給的方式寫了!但是不知道為什麼無法執行不知道是哪裡出問題了 我PO我寫的程式碼看是哪裡出錯了 procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if can_get_mouse_pos then begin // adoquery1.SQL.Add:=Insert INTO tablename (fofs) values (" inttostr(x)"); // 假設您的資料表名是 TABLE_A, 存 X 的欄位名是 FOFS 且為整數型態, 要把 INSERT 命令整個包成一個字串 adoquery1.SQL.TEXT := 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')'; // 或是 // adoquery1.sql.clear; // adoquery1.sql.add( 'Insert INTO TABLE_A (fofs) values (' inttostr(x) ')' ); ADOquery1.execsql; end; procedure TForm1.Button3Click(Sender: TObject); begin if can_get_mouse_pos then begin can_get_mouse_pos := false; label1.caption := ''; end else begin can_get_mouse_pos := true; label3.caption :='可點 image 存 mouse 座標'; // 最好有訊息提醒使用者 end; 如果我只是要讀取X的座標值的話這樣寫對嗎? 還有我是否要設定資料表的名稱跟欄位名稱才能只到所要的位址 謝謝大大的幫忙!!! ===================引 用 st33chen 文 章=================== 如果您沒改 form 的 name, 在 .pas 中找到 Form1: TForm1; 的地方, 加在下面 應該類似是 : var Form1: TForm1; can_get_mouse_pos : boolean; ( delphi 的內定初值為 false, 所以設初值的部份可以不寫, sorry ) ? implementation ? {$R *.dfm}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |