/ Forside/ Teknologi / Udvikling / Delphi/Pascal / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
kopiering af TStringGrid ???
Fra : Aki
Vist : 374 gange
20 point
Dato : 16-04-02 12:44

hej allesammen !!

er der nogen af jer der ved hvordan man kan markere en del af en StringGrid og kopiere den ??

enkelte linjer er ikke noget problem at kopiere.....men problemet opstår når det er flere.

er det "CellRect" jeg skal bruge ??

eller er jeg nødt til at kopiere over i en tom StringGrid først, for så at kopiere det tilbage igen ?

håber de er nogen der ved hvad jeg skal gøre

Aki

 
 
Accepteret svar
Fra : Nyhedsbruger

Modtaget 30 point
Dato : 16-04-02 13:25

"Aki" <Aki.news@kandu.dk> skrev i en meddelelse news:6dTu8.32277

> er der nogen af jer der ved hvordan man kan markere en del af en
> StringGrid og kopiere den ??

Brug selection - det indeholder koordinaterne for de valgte celler i
grid'et.

> enkelte linjer er ikke noget problem at kopiere.....men problemet opstår
> når det er flere.

Hvad mener du med at kopiere? Du vil vel have strengene der er valgt? Måske
som nedenstående, der kopierer alle valgte celler over i en TStringList :

procedure TForm1.Button1Click(Sender: TObject);
var T :TStringList;
x,y : integer;
s : string;
begin
T:=TStringList.create;
for x:=stringgrid1.selection.Left to stringgrid1.selection.Right do
begin
for y:=stringgrid1.selection.Top to stringgrid1.selection.Bottom do
begin
s:='('+inttostr(x)+','+inttostr(y)+')'+stringgrid1.cells[x,y];
T.add(s);
end;
end;
end;





Kommentar
Fra : Aki


Dato : 16-04-02 15:02

David, tak for det hurtige svar .

jeg har ikke prøvet om det virker... endnu.

spørgsmålet var måske ikke så godt formuleret, så lad mig forklare problemet jeg har.

problemet er :

jeg har en stringgrid hvor der skal indtastes ml. 50 og 400 linjer, da mange af disse linjer ligner hinanden ville det være godt hvis jeg kunne kopiere f.eks 20 linjer fra starten i "grid'en" og så indsætte dem der hvor der er brug for det.

får jeg et problem med at der ikke er oprettet tomme pladser, til de "rows" der skal indsættes ?

jeg er nybegynder, så det kan godt være at spørgsmålet er dumt

tak for hjælpen
aki

Kommentar
Fra : Aki


Dato : 23-04-02 12:36

dette var løsningen jeg søgte, det kan sikkert laves smartere, men det virker til det jeg skal bruge

procedure Copy_Paste(Grid:TstringGrid);
var
x,y,f,g,z,t : integer;
s : string;
begin
x:= Grid.Selection.Top;
y:= Grid.Selection.Bottom;
z:= Grid.Selection.Left;
t:= Grid.Selection.Right;
for g:=x to y do
begin
Grid.RowCount:= Grid.RowCount +1;
for f:=z to t do
begin
s:= Grid.Cells[f,g];
Grid.Cells[f,Grid.RowCount-1]:=s;
end;
end;
end;


nu ligger det her , hvis der er andre der har/får samme problem.

MVH.
Aki

Godkendelse af svar
Fra : Aki


Dato : 14-07-02 23:52

Tak for svaret David A. D. Konrad.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407845
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste