Главная страница
    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.006 c
14-26238
Dimka Maslov
2002-04-01 17:26
2002.05.09
Если уж судьба подложила тебе свинью, постарайся наладить


7-26284
ray_wagner
2002-02-05 15:57
2002.05.09
Эмуляция активной деятельности компа :-)


14-26235
cok
2002-03-30 19:38
2002.05.09
Помогите, пожалуйста (срочно!).


14-26232
Konsul
2002-03-31 00:22
2002.05.09
Звук через сеть


14-26265
Феликс
2002-04-01 23:40
2002.05.09
В поисках кулибы!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский