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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.