Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
ВнизКак удалить строку из середины Stringgrid а? Найти похожие ветки
← →
rank (2002-04-25 02:07) [0]Друзья! Подскажите пожалуйста как мне удалить строку из этого несчастного stringgrid"a. Проблема в том, что строка не последняя, а находится где-то внутри stringgrida, необходимо не просто стереть ее , но и сдвинуть всю таблицу вверх.
Заранее спасибо!!!!
← →
3d[Power] (2002-04-25 03:46) [1]делаешь цикл, удаляешь строку стринггрида, а все последущие смещаешь вверх. после чего уменьшаешь rowcount на 1.
← →
KilkennyCat (2002-04-25 05:53) [2]если воспользуешься TAdvStrigGrid,
то никахих проблем , удаляй хоть несколько нерядом лежащих строк, сдвиг будет автоматом.
← →
Dy-Ty (2002-04-25 09:09) [3]Попробуй так, не проверял, но должно получиться, а вообще почитай Кулибу, там много чего можно найти
type
TCSGrid = class(TStringGrid)
private
public
procedure MoveRow (FromIndex, ToIndex: Longint);
end;
//-----------------------------------------------------------
procedure TCSGrid.MoveRow(FromIndex,ToIndex: Longint);
begin
RowMoved(FromIndex, ToIndex); { Защищенный метод TStringGrid }
end;
//------------------------------------------------------------
procedure DeleteRow(Sender: TStringGrid; FromIndex: Longint);
begin
if FromIndex>l;=0 then
with TCSGrid(Sender) do
if (RowCount>0)and(FromIndex<RowCount) then begin
if (FromIndex<RowCount-1) then
MoveRow(FromIndex,RowCount-1);
Rows[RowCount-1].Clear;
RowCount := RowCount-1;
end else MessageBeep(0)
else MessageBeep(0);
end;
уважаю авторские права
Создано: Dennis Passmore
1929 Mango Tree Drive
Edgewater, Fl. 32141
CIS: 71640,2464
Март 1, 1996
← →
Андрей Сенченко (2002-04-25 09:21) [4]Я так делал:
GridRow := { здесь ставим номер удаляемой строки } ;
// Перемещаем строки наверх
For i := 0 to FmMain.StGridWork.ColCount - 1 do
For j := GridRow to FmMain.StGridWork.RowCount - 1 do
FmMain.StGridWork.cells[i,j] := FmMain.StGridWork.cells[i,j+1];
FmMain.StGridWork.RowCount := FmMain.StGridWork.RowCount - 1;
← →
Андрей Сенченко (2002-04-25 09:23) [5]Я так делал:
GridRow := { здесь ставим номер удаляемой строки } ;
// Перемещаем строки наверх
For i := 0 to FmMain.StGridWork.ColCount - 1 do
For j := GridRow to FmMain.StGridWork.RowCount - 1 do
FmMain.StGridWork.cells[i,j] := FmMain.StGridWork.cells[i,j+1];
FmMain.StGridWork.RowCount := FmMain.StGridWork.RowCount - 1;
← →
MBo (2002-04-25 12:29) [6]Удаление строки из позиции N (SG-StringGrid1)
if N<SG.RowCount-1 then
for i:=N to SG.RowCount-2 do
SG.Rows[i].Assign(SG.Rows[i+1]);
SG.RowCount:= SG.RowCount-1;
альтернатива – использование protected метода TCustomGrid DeleteRow
type
TXGrid=class(TCustomGrid);
if N<SG.RowCount then
TXGrid(StringGrid1).DeleteRow(N);
← →
PaRL (2002-04-25 13:43) [7]Намудрили-то, намудрили...
var k, m : integer;
begin
if Form1.SG.RowCount < 3 then Exit;
for k := Form1.SG.Row to Form1.SG.RowCount-1 do
for m := 0 to SG.ColCount-1 do
SG.Cells[m,k] := SG.Cells[m,k+1];
Sg.RowCount := SG.RowCount-1;
SG.Height := SG.Height-24;
end;
← →
rank (2002-04-26 02:34) [8]Спасибо ребята! Усе испробую!!!!!!
← →
KilkennyCat (2002-04-26 03:09) [9]Если все испробуешь - то уже не одну строку, а 7 удалишь.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c