Jeg har lavet et program som benytter et antal StringGrids. Når det færdige program benyttes skal brugeren have mulighed for at kunne kopiere tekst i enkelte celler med Ctrl+C/Ctrl+V som i Excel. Tilsvarende kopiere et større antal markerede celler med Ctrl+C/Ctrl+V. Hjælp søges
Den simple måde er nok at kopiere det til klippebordet som formateret streng (uden hensyntagen til faste kolonner og rækker; den kopierer alt):
uses ClipBrd;
procedure TfrmMain.btnDoItClick(Sender: TObject); var st: string; x, y: integer; begin st := ''; for y := 0 to sgStringGrid.RowCount - 1 do for x := 0 to sgStringGrid.ColCount - 1 do if x < sgStringGrid.ColCount - 1 then st := st + sgStringGrid.Cells[x,y] + #9 else if y < sgStringGrid.RowCount - 1 then st := st + sgStringGrid.Cells[x,y] + #13#10 else st := st + sgStringGrid.Cells[x,y]; Clipboard.AsText := st; end;
Det jeg skal lave er sådan at brugeren af programmet kan markere et antal celler i en StrinGrid og kopiere disse celler til et andet sted i StringGrid'en eller f.eks. til Excel. Kan være en opsætning i StringGrid jeg ikke kan få til at fungere? /Peter
Hvis du vil have valgte sektion med, kan det gøres sådan:
procedure TfrmMain.btnDoItClick(Sender: TObject); var st: string; x, y: integer; XMin, XMax, YMin, YMax: integer; begin st := ''; XMin := sgStringGrid.Selection.Left; XMax := sgStringGrid.Selection.Right; YMin := sgStringGrid.Selection.Top; YMax := sgStringGrid.Selection.Bottom;
for y := YMin to YMax do for x := XMin to XMax do if x < XMax then st := st + sgStringGrid.Cells[x,y] + #9 else if y < YMax then st := st + sgStringGrid.Cells[x,y] + #13#10 else st := st + sgStringGrid.Cells[x,y]; Clipboard.AsText := st; end;
Metoden med at bygge strengen op (st := st + 'et eller andet') er den langsommeste, men i praksis vil det være en fin løsning.
Hvordan du klistrer det ind i et andet/andet sted i stringgrid skal jeg lige tænke over.
Lige på midlertidig hold, men vender tilbage i løbet af få uger.
/Peter
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.