如何由StringGrid上建立之Button得知是在哪個Cell? |
答題得分者是:老大仔
|
GDGD
一般會員 發表:6 回覆:1 積分:1 註冊:2009-12-31 發送簡訊給我 |
如題 小弟在StringGrid動態建立了Button (某一Col上所有Row)
procedure TAAA.PreBtn; var ARect: TRect; begin for idx:= 1 to StringGrid1.RowCount - 1 do begin ARect:= StringGrid1.CellRect(_Btn, idx); ABtn:= TButton.Create(Self); ABtn.Parent:= sgGiveMed; ABtn.OnClick:= ABtnClick; ABtn.OnMouseUp:= ABtnMouseUp; ABtn.Name:= _BtnName IntToStr(idx); ABtn.Caption:= 'TEST'; ABtn.Height:= StringGrid1.DefaultRowHeight - 2; ABtn.Width:= 18; ABtn.Left:= ARect.Left Round((ARect.Right - ARect.Left) / 2 - (ABtn.Width / 2)); ABtn.Top := ARect.Top Round((ARect.Bottom - ARect.Top) / 2 - (ABtn.Height / 2)); end; end; procedure TAAA.DelBtnClick(Sender: TObject); begin ...... end; procedure TAAA.ABtnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ...... end; 1. 請問我如何在Button按下時取得目前是在StringGrid1上的哪個Row? 2. Button按下時未何無法觸發 ABtnMouseUp? |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
1. 建議您在Create Button時, 連帶把變數也寫到tag, 如此一來在按下按鈕後,
只要判斷按鈕的tag值就知道是哪個row 2. 呃~是我看錯了嗎....您貼的語法所呼叫的是不是同一個啊??(請見紅色字) ===================引 用 GDGD 文 章=================== ?如題 ?小弟在StringGrid動態建立了Button (某一Col上所有Row) procedure TAAA.PreBtn; var ??ARect: TRect; begin ??for idx:= 1 to StringGrid1.RowCount - 1 do ??begin ?? ?ARect:=?StringGrid1.CellRect(_Btn, idx); ?? ?ABtn:= TButton.Create(Self);?? ? ?? ?ABtn.Parent:= sgGiveMed; ?? ?ABtn.DelBtnClick(Sender: TObject); begin ?? ...... end; procedure TAAA.ABtnMouseUp(Sender: TObject; Button: TMouseButton; ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Shift: TShiftState; X, Y: Integer); begin ?? ?...... end; 1. 請問我如何在Button按下時取得目前是在StringGrid1上的哪個Row? 2. Button按下時未何無法觸發?ABtnMouseUp?
編輯記錄
老大仔 重新編輯於 2010-04-09 16:26:03, 註解 無‧
|
GDGD
一般會員 發表:6 回覆:1 積分:1 註冊:2009-12-31 發送簡訊給我 |
編輯記錄
GDGD 重新編輯於 2010-04-09 17:25:50, 註解 無‧
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
疑...我的紅色字明明有兩段啊...
再補一次~ ABtn.onclick:= DelBtnClick(Sender: TObject); begin ...... end; 照理說您的ABtn的On Click事件應該是要指向DelBtnClick.... 這樣看來 您會不會是呼叫錯了??還是命名錯了?? 實做??簡單來說~ 當在您Create Button時 不是會把一些值給Button嗎?? (Ex:ABtn.Caption:= 'TEST';-->把test這個值給caption) 那只要在這時候再補一行"抓出ABtn的tag是多少不就知道是哪一個row了嗎?? 供參考~ ===================引 用 GDGD 文 章=================== ?紅字的部份其實是我簡寫的?其實是 DelBtn.OnClick:= ABtnClick;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |