Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.004 c
14-26232
Konsul
2002-03-31 00:22
2002.05.09
Звук через сеть


1-26121
MegaVolt
2002-04-24 10:31
2002.05.09
---|Ветка была без названия|---


1-26187
ERW
2002-04-25 16:12
2002.05.09
Как сделать переход из DBGrid-a по TabOrder-у


14-26252
vopros
2002-04-02 11:08
2002.05.09
Как думать и работать при температуре >38 гр тела


1-26060
Бульбаш
2002-04-24 11:03
2002.05.09
Как в QRLabel расположить текст вертикально???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский