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

按下Buttom讀取數值資料

答題得分者是:st33chen
a80256
一般會員


發表:3
回覆:5
積分:1
註冊:2008-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-18 00:07:58 IP:218.162.xxx.xxx 訂閱
請問一下,我設計了一個But0tom跟Image,要如何按下Buttom後會自動讀取我滑鼠在Image上圖片所點選的XY軸座標資料進入資料庫中!
該用什麼方式比較好設計!謝謝各位的回答!
編輯記錄
a80256 重新編輯於 2008-12-18 00:10:14, 註解 無‧
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-18 08:17:12 IP:220.136.xxx.xxx 未訂閱
您好,
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-18 09:55:25 IP:192.192.xxx.xxx 訂閱
你好按照大大你的方式
我是要先在外面設變數
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-18 10:09:59 IP:122.116.xxx.xxx 未訂閱
如果您沒改 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-18 15:19:47 IP:192.192.xxx.xxx 訂閱
大大你好我按照你給的方式寫了!但是不知道為什麼無法執行不知道是哪裡出問題了
我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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-18 16:55:58 IP:122.116.xxx.xxx 未訂閱

===================引 用 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-02-12 13:55:06 IP:192.192.xxx.xxx 訂閱
大大你好之前你回覆的答案我試過了!可是不知道為什麼都是不能執行!我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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-02-17 11:06:05 IP:192.192.xxx.xxx 訂閱
謝謝大大的指導!我已經解決問題了!很感謝你的指導
a80256
一般會員


發表:3
回覆:5
積分:1
註冊:2008-12-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-02-17 13:14:17 IP:192.192.xxx.xxx 訂閱
大大你好感謝你的幫忙我的問題目前解決了!
但是現再我發現一個小問題!
就是我如果使用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}
系統時間:2024-05-15 13:18:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!