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

StringGrid刪除Row或是Col的問題(已解決)

 
papjaj
一般會員


發表:11
回覆:15
積分:5
註冊:2007-01-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-29 09:58:10 IP:219.87.xxx.xxx 訂閱
小弟有bcb方面問題請教各位先進
小弟想做出點選某個Row或Col後,按下某個Button即可刪除所選定的那個Row或Col
小弟使用
StringGrid->Rows[i]->Delete(i);
的方式想達到刪除的功能
但卻會在按下button時出現錯誤
"Can't not insert or delete rows from grid"
這問題困擾了我很久
想請問各位大大解決及實現方法...
tylin123
初階會員


發表:33
回覆:53
積分:32
註冊:2003-05-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-29 10:58:54 IP:220.130.xxx.xxx 訂閱
我建議你不妨試試 TAdvStringGrid 功能會好很多.

papjaj
一般會員


發表:11
回覆:15
積分:5
註冊:2007-01-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-29 12:19:21 IP:219.87.xxx.xxx 訂閱
 謝謝這位大大
但是小弟因為已經接近完成狀態
所以希望能在不重新來過的前提之下
達到StringGrid欄位的增刪
增加沒有什麼大問題
但是刪卻無法刪除指定的欄位(整欄刪除,資料不用在意)
希望能有先進指點一下小弟
===================引 用 文 章===================

我建議你不妨試試 TAdvStringGrid 功能會好很多.

Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-29 13:07:02 IP:210.65.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var
c,i : Integer;
begin
// Delete Column
c := StringGrid1.Col;
if c > 0 then
begin
for i := c to Stringgrid1.ColCount - 1 do
StringGrid1.Cols[i] := Stringgrid1.Cols[i 1];
StringGrid1.ColCount := StringGrid1.ColCount - 1;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
r,i : Integer;
begin
// Delete Row
r := StringGrid1.Row;
if r > 0 then
begin
for i := r to Stringgrid1.RowCount - 1 do
StringGrid1.Rows[i] := Stringgrid1.Rows[i 1];
StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;
end;


Fishman
------
Fishman
papjaj
一般會員


發表:11
回覆:15
積分:5
註冊:2007-01-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-29 13:53:34 IP:219.87.xxx.xxx 訂閱
這位大大...
小弟使用的是bcb..
delphi我看不懂>"<
有bcb的範例可以看嗎
謝謝您的回覆
===================引 用 文 章===================

procedure TForm1.Button1Click(Sender: TObject);
var
c,i : Integer;
begin
// Delete Column
c := StringGrid1.Col;
if c > 0 then
begin
for i := c to Stringgrid1.ColCount - 1 do
StringGrid1.Cols[i] := Stringgrid1.Cols[i 1];
StringGrid1.ColCount := StringGrid1.ColCount - 1;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
r,i : Integer;
begin
// Delete Row
r := StringGrid1.Row;
if r > 0 then
begin
for i := r to Stringgrid1.RowCount - 1 do
StringGrid1.Rows[i] := Stringgrid1.Rows[i 1];
StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;
end;


Fishman
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-29 14:15:02 IP:59.124.xxx.xxx 未訂閱
那試試下面的程式碼吧,修改Fishman前輩的code

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i, c;
c = StringGrid1->Col;
if (c>0)
{
for (i=c; iColCount-1; i )
{
StringGrid1->Cols[i] = StringGrid1->Cols[i 1];
}
StringGrid1->ColCount = StringGrid1->ColCount - 1;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
int r, i;
r = StringGrid1->Row;
if (r>0)
{
for (i=r; iRowCount-1; i )
{
StringGrid1->Rows[i] = StringGrid1->Rows[i 1];
}
StringGrid1->RowCount = StringGrid1->RowCount - 1;
}
}
//---------------------------------------------------------------------------


papjaj
一般會員


發表:11
回覆:15
積分:5
註冊:2007-01-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-01-29 15:11:08 IP:219.87.xxx.xxx 訂閱
謝謝兩位大大的幫忙唷
我的問題已經解決了
真是感謝
系統時間:2024-05-04 5:22:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!