Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

Как удалить из StringGrid выделенную строку   Найти похожие ветки 

 
Lin Grey ©   (2002-07-06 19:41) [0]

Как удалить из StringGrid выделенную строку


 
^Sanya ©   (2002-07-06 20:56) [1]

Код взял из своей программы- универсального справочника.
Я делал так:
1-очистить данную строку
2-сдвинуть все нижеследующие строки на одну позицию вверх
3-убрать последнюю пустую строку
4-в конце всегда остаётся одна пустая строка для внесения новой записи (в случае, если StringGrid используется как редактируемая таблица)

//Смотри как бы "снизу вверх"
//Итого: 3 универсальные процедуры

procedure Correct(frm, SG : TObject);
var
i,x,y:byte;
begin
with (frm as TForm) do with (SG as TStringGrid) do

begin

for i:=(RowCount-1) downto 1 do

//проверяем наличие пустых строк между полными и удаляем пустые строки
//путём "сдвига" нижних строк на позицию вверх

if (((Cells[0,i]<>"") and (Cells[0,i]<>" "))
and
((Cells[0,i-1]="") or (Cells[0,i-1]=" ")))
then
begin
for x:=i to (RowCount-1) do //цикл "сдвига"
for y:=0 to (ColCount-1) do begin
Cells[y,x-1]:=Cells[y,x];
Cells[y,x]:=""; end;
end;

//добавление пустой строки ("снизу") при её отсутствии для создания новой записи

if ((Cells[0,RowCount-1]<>"") and (Cells[0,RowCount-1]<>" ")) then
RowCount:=RowCount+1;

//удаление лишней пустой строки (при наличии 2-х и более) в конце главной
//таблицы для экономии места - дело принципа!
if RowCount>2 then begin
if (((Cells[0,RowCount-1]="") or (Cells[0,RowCount-1]=" "))
and
((Cells[0,RowCount-2]="") or (Cells[0,RowCount-2]=" ")))
then RowCount:=RowCount-1;
end;
end;

end;

procedure DeleteNote(frm : TObject; SG : TObject);
var
i:byte;
begin
with (frm as TForm)do with (SG as TStringGrid) do
begin
for i:=0 to ColCount-1 do
Cells[i,Row]:="";
Correct((frm as TForm), (SG as TStringGrid));
end;
end;

procedure TfrmMain.sgMainGridKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if (Key=vk_delete) then DeleteNote(frmMain, sgMainGrid);

end;




 
MBo ©   (2002-07-06 21:48) [2]

1)delphibase.endimus.com
раздел Управление компонентами

2)
type
TXGrid=class(TStringGrid);
...
TXGrid(StringGrid1).DeleteRow(2);





Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
14-58290
Voldemar2
2002-06-21 17:30
2002.07.18
Как изменить свойство о кучи однотипных элементов?


8-58233
Diamond
2002-03-06 20:56
2002.07.18
Сравнение 2х bitmap


1-58148
chips
2002-07-05 14:14
2002.07.18
stringgrid - свойства


1-58079
Stuart
2002-07-05 15:20
2002.07.18
Изменить ресурсы в exe-файле


7-58346
BAPBAP
2002-04-27 06:19
2002.07.18
Удалить директории по списку в memo1.List