3. Du kan gemme i en Inifil eller registreringsbasen eller en fil af din egen type, der findes forskellige comp. der kan gemme i inifiler prøv evt. at søge på torry
Data kan du gemme sådan, Lav en FileStream og smid den med som parameter :
procedure SaveToStream( St : TStream ); VAR Cnt,B : Integer; begin Cnt := MyGrid.RowCount; St.Write(Cnt,Sizeof(Cnt)); if MyGrid.RowCount > 0 then for Cnt := MyGrid.RowCount-1 downto 0 do MyGrid.Rows[Cnt].SaveToStream(St);
for Cnt := 0 to MyGrid.RowCount-1 do begin B := MyGrid.RowHeights[Cnt]; St.Write(B,Sizeof(B)); end;
for Cnt := 0 to MyGrid.ColCount-1 do begin B := MyGrid.ColWidths[Cnt]; St.Write(B,Sizeof(B)); end; end;
procedure LoadFromStream( St : TStream ); VAR Cnt,B : Integer; begin MyGrid.ColCount := MyGrid.FixedCols+1; St.Read(Cnt,Sizeof(Cnt)); MyGrid.RowCount := Cnt; while Cnt > 0 do begin MyGrid.Rows[Cnt-1].LoadFromStream(St); Dec(Cnt); end;
for Cnt := 0 to MyGrid.RowCount-1 do begin St.Read(B,Sizeof(B)); MyGrid.RowHeights[Cnt] := B; end;
for Cnt := 0 to MyGrid.ColCount-1 do begin St.Read(B,Sizeof(B)); MyGrid.ColWidths[Cnt] := B; end; end;
MartinLind> den laver ingen fejl men den markerer ingen celle ved koden: MyGrid.Selection := TGridRect(MyGrid.CellRect(2,2)); Du har vel ikke en komplet sourcecode?
Det med din selection har jeg ikke lige løsningen på :(
du kopier mine to procedure Save.. og load..
VAR F : TFileStream;
begin F := TFileStream.Create('MyGrid',fmCreate); // Mode skal være fm Create når du gemmer men fmOpenRead når du læser SaveToStream(F); // Gemmer din Grid der hedder MyGrid F.Free; end;
Har selv fundet løsningen på det med selection.... men prøver lige det med save load..
Synes godt om
Ny brugerNybegynder
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.