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

如何在StringGrid 下指令給予Default值

尚未結案
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-16 15:50:00 IP:61.218.xxx.xxx 未訂閱
請問當我曾經選取stringGrid.cell[x,y] 之位置上時 當我要clear StringGrid之值後 想將stringGrid.cell[x,y] 置於剛始畫面時初始值位置或指定於某一位置時 該如何作業   Thanks
------
doll_candy
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-16 16:04:57 IP:211.74.xxx.xxx 未訂閱
可以把你要的再解釋清楚一點嗎??
引言: 請問當我曾經選取stringGrid.cell[x,y] 之位置上時 當我要clear StringGrid之值後?? 想將stringGrid.cell[x,y] 置於剛始畫面時初始值位置或指定於某一位置時 該如何作業 Thanks >< face="Verdana, Arial, Helvetica">
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-16 16:22:30 IP:61.218.xxx.xxx 未訂閱
應該說是當Grid畫面上當我們點選之後,focse即會更改 例如:當我點選cells[5,5],即focse於此  但當我清除畫面值時,我想自己指定初使位置於cells[3,1] 當combox.onchange時,我想更改其focse位置於cells[3,1]       Thanks 
------
doll_candy
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-16 16:26:28 IP:61.218.xxx.xxx 未訂閱
妳可以用變數將所點選的col / row 先存起來,然後再指定 可以參考下面範例 var         iCol,iRow:integer;  //以全域變數保存最新的位置 procedure TForm1.StringGrid1Click(Sender: TObject); begin          //於最新的位置指定資料         StringGrid1.Cells[icol,irow]:=inttostr(icol)+':'+inttostr(irow) ; end;    //取得目前mouse 所點的位置 procedure TForm1.StringGrid1MouseDown(Sender: TObject;   Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin      StringGrid1.MouseToCell(x,y,iCol,iRow); end;     發表人 - ddy 於 2003/04/16 16:29:17
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-16 16:47:48 IP:61.218.xxx.xxx 未訂閱
我應該說的是我要的是 更改目前位置於我想置放的位置 當我要清除畫面時 而非取得Grid之值 Thanks
------
doll_candy
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-16 17:07:00 IP:61.218.xxx.xxx 未訂閱
引言:更改目前位置於我想置放的位置
怪怪~~不就是 StringGrid1.Cells[icol,irow]:= xxxxxx 嗎? 妳所指定的icol / irow 就是你要放的位置
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-16 17:25:28 IP:218.16.xxx.xxx 未訂閱
我不明白 "當我要清除畫面時" 是甚麼意思,但若你想 Focus 轉去某一特定的 Cell 用 : StringGrid1.Col := 3; StringGrid1.Row := 1; 不就可以了嗎?
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-16 18:14:53 IP:210.202.xxx.xxx 未訂閱
你要先在 FormCreate 時就把 [x, y] 的值給紀錄下來, 然後在自己寫一個 procedure 來作重設的動作, 如果還要加上可以指定位置的功能, 就在加入判斷如果有指定就用指定的 [x, y] 位置, 不然就用所紀錄下來的預設位置來重新設定. 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-16 18:34:05 IP:61.216.xxx.xxx 未訂閱
請問一下你所述的 1.要怎麼去知道要更改位置 2.怎麼知道你要清除畫面??
引言: 更改目前位置於我想置放的位置 當我要清除畫面時
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-16 19:06:39 IP:210.202.xxx.xxx 未訂閱
如果你是要 Focus Cell[x,y] 的話, 下列程式碼參考看看吧 procedure TForm1.Button1Click(Sender: TObject); var iX,iY:integer; myRect: TGridRect; begin iX:=3; iY:=4; myRect.Top := iX; myRect.Left := iY; myRect.Bottom := iX; myRect.Right := iY; StringGrid1.Selection := myRect; StringGrid1.SetFocus; end; 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-17 00:47:55 IP:61.223.xxx.xxx 未訂閱
引言: 請問一下你所述的 1.要怎麼去知道要更改位置 2.怎麼知道你要清除畫面??
引言: 更改目前位置於我想置放的位置 當我要清除畫面時
//////////////////////////////////// 我的程式片斷如下: //依據Col 1之NO 條件開啟另一畫面 procedure TFSales_Q.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin iCol := ACol-2; CanSelect := (StringGrid1.Cells[ACol,ARow]<> ''); SalesNO := StringGrid1.Cells[1,ARow]; SalesName := StringGrid1.Cells[2,ARow]; if SalesNO ='' then begin MessageDlg('NO IS EMPTY',mtWarning,[mbOK],0); exit; end; if iCol>=1 then begin if CanSelect then begin Application.CreateForm( TFSalesSelectCell , FSalesSelectCell ); FSalesSelectCell.ShowModal ; end else begin MessageDlg('Cells Is Empty',mtWarning,[mbOK],0); exit ; end; end else begin MessageDlg('Cells is no Value',mtWarning,[mbOK],0); exit ; end; end; //清除資料並恢復成剛開使畫面 procedure TFSales_Q.ComboBox1Change(Sender: TObject); begin with ComboBox1 do begin IF ComboBox1.ItemIndex = -1 Then Begin ShowMessage('Please repeat again'); ComboBox1.SetFocus; End; PageControl1.ActivePageIndex := 1; DBList.Items.Clear; KHList.Items.Clear; IF DBList.Visible = TRUE THEN DBList.Visible:=False; IF btDB.Visible = TRUE THEN btDB.Visible:=False; IF KHList.Visible = TRUE THEN KHList.Visible:=False; IF btKH.Visible = TRUE THEN btKH.Visible:=False; for i := 1 to StringGrid1.Rowcount-1 do StringGrid1.Rows[i].Clear; StringGrid1.RowCount := 2; //--尚不會寫--// // 將focus cells[3,1]; end; // //////////////////////////////////////////////////////////////// 這是拙作,請多指教 Thanks 明早到公司才能測下午近
------
doll_candy
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-17 01:48:53 IP:210.202.xxx.xxx 未訂閱
引言: //////////////////////////////////// 我的程式片斷如下: //清除資料並恢復成剛開使畫面 procedure TFSales_Q.ComboBox1Change(Sender: TObject); begin with ComboBox1 do begin IF ComboBox1.ItemIndex = -1 Then Begin ShowMessage('Please repeat again'); ComboBox1.SetFocus; End; PageControl1.ActivePageIndex := 1; DBList.Items.Clear; KHList.Items.Clear; IF DBList.Visible = TRUE THEN DBList.Visible:=False; IF btDB.Visible = TRUE THEN btDB.Visible:=False; IF KHList.Visible = TRUE THEN KHList.Visible:=False; IF btKH.Visible = TRUE THEN btKH.Visible:=False; for i := 1 to StringGrid1.Rowcount-1 do StringGrid1.Rows[i].Clear; StringGrid1.RowCount := 2; //--尚不會寫--// // 將focus cells[3,1]; end; // //////////////////////////////////////////////////////////////// 這是拙作,請多指教 Thanks 明早到公司才能測下午近>< face="Verdana, Arial, Helvetica"> 果然是要 Focus Cell... 我上面就有貼出來了喔 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
系統時間:2024-07-03 19:38:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!