Avatar billede anold Nybegynder
24. august 2000 - 10:55 Der er 2 kommentarer og
2 løsninger

Slet data i StringGrid

Er der en der kan fortælle mig hvordan jeg sletter de data jeg har i et StringGrid.

Det der sker er at jeg \"lægger\" nogle data ind i et StringGrid som jeg så ønsker at fjerne igen via en knap.
Avatar billede sjensen Nybegynder
24. august 2000 - 11:05 #1
Deletes a specified from the grid.

procedure DeleteRow(ARow: Longint);

Description

Call DeleteRow to remove a row from the middle of the grid. Provide the index of the row to remove as ARow. To remove the last row from the grid, set the RowCount property instead.
Avatar billede anold Nybegynder
24. august 2000 - 11:34 #2
Hej sjensen

Kan du vise med et eks. hvad det er du mener
hilsen anold
Avatar billede sjensen Nybegynder
24. august 2000 - 11:42 #3
Ja, hvis vi siger du vil slette med en knap, så skal du i knappens onclick event skrive følgende:

stringgrid1.deleterow(stringgrid1.row);

Stringgrid1.row er linienr på den linie i gridden der er index/selekteret/den aktive eller hvordan man nu skal sige det.

Hvis du ikke først vælger linien kan du selvfælgeligt ikke bruge stringgrid1.row som linienr, men skal bruge det ønskede linienr. F.eks. hvis du vil slette linie 9 i en stringgrid med 9 eller flere linier:

stringgrid1.deleterow(8);  // 8 er fysisk linie 9 fordi første linie er linie 0

men som nævnt vil stringgrid1.row være linienummeret på den fremhævede/valgte linie og kan derfor bruges direkte.
Avatar billede borrisholt Novice
24. august 2000 - 11:54 #4
Hej arnold

Her er et lidt mere komplet eksempel .. placer en StrigGrid på en form , lav et FormCreate event samt et onKeyDown event på dit stringrid skriv så det følgende kode ...

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j : Integer;
begin
  Randomize;
  for i:= 0 to pred(StringGrid1.RowCount) do
    for j:= 0 to pred(StringGrid1.ColCount) do
      StringGrid1.Cells[i,j] := IntToStr(Random(5000));
end;

procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
var
  i, j : Integer;
begin
if (key = 46) and  (not (ssShift in Shift)) then
begin
  i := StringGrid1.Col;
  j := StringGrid1.Row;
  StringGrid1.Cells[i,j] := \'\';
end;

if (key = 46) and  ((ssCtrl in Shift)) then
begin
  i := StringGrid1.Col;
  StringGrid1.Cols[i].Clear;
end;

if (key = 46) and  ((ssShift in Shift)) then
begin
  i := StringGrid1.Row;
  StringGrid1.Rows[i].Clear;
end;

end;

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester