Главная страница
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.011 c
3-57974
Новичок в БД
2002-06-25 10:41
2002.07.18
Имя файла?


1-58208
^Sanya
2002-07-07 01:10
2002.07.18
D6->D5


4-58376
ArtGamer
2002-05-16 21:49
2002.07.18
Ну как мне сделать Drag&Drop на SpeedButton???!!!


6-58245
Slavok
2002-05-10 13:59
2002.07.18
Как лучше передать от сервера клиенту изображение рабочего стола?


14-58294
Sergey13
2002-06-21 11:32
2002.07.18
Предложение по организации форума