TstringGrid multi-selection copy and copy

xiaoxiao2021-03-06  52

Uses clipbrd;

Function stringgridselecttext (MSTRINGGRID: TSTRINGGRID): String;

VAR

I, J: Integer;

String;

Begin

Result: = '';

IF NOT Assigned (MstringGrid) THEN EXIT;

For j: = mstringgrid.selection.top to mstringgrid.seetence.bottom do

Begin

S: = '';

For i: = mstringgrid.selection.LesLight to MstringGrid.seection.right

S: = S # 9 MSTRINGGRID.CELLS [i, j];

Delete (s, 1, 1);

Result: = Result s # 13 # 10;

END;

End; {stringgridselecttext}

Procedure stringgridpastefromclipboard (MSTRINGGRID: TSTRINGGRID);

VAR

vTextList: tstringlist;

VLINELIST: TSTRINGLIST;

I, J: Integer;

Begin

vTextList: = tstringlist.create;

VLINELIST: = TSTRINGLIST.CREATE;

VLINELIST.DELIMITER: = # 9;

Try

vTextList.text: = clipboard.astext;

For j: = 0 to vTextList.count - 1 DO

Begin

IF J MStringGrid.row> = mstringgrid.rowcount dam;

VLINELIST.DELIMITEDTEXT: = vTextList [J];

For i: = 0 to VLINELIST.COUNT - 1 DO

Begin

I mstringgrid.col> = mstringgrid.colcount dam

MstringGrid.cells [i mstringgrid.col, j mstringgrid.row]: = VLINELIST [i];

END;

END;

Finally

vTextList.free;

VLINELIST.FREE;

END;

End; {stringgridpastefromclipboard}

Procedure StringGridcopyToclipboard (MSTRINGGRID: TSTRINGGRID);

Begin

Clipboard.astext: = StringGridSelectText (MSTRINGGRID);

End; {stringgridcopytoclipboard}

Procedure TFORM1.MENUITEMCOPYCLICK (Sender: TOBJECT);

Begin

StringGridcopyToclipboard (stringgrid1);

END;

Procedure TFORM1.MENUITEMPASTECLICK (Sender: TOBJECT);

Begin

StringGridPastefromClipboard (StringGrid1);

END;

Procedure TFORM1.STRINGGRID1KEYDOWN (Sender: TOBJECT; VAR Key: Word;

Shift: tshiftstate;

Begin

IF SSCTRL in Shift Then

Case Key of

ORD ('C'): StringGridcopyToclipboard (TstringGrid (Sender));

ORD ('V'): StringGridPastefromClipboard (TstringGrid (Sender));

END;

END;

转载请注明原文地址:https://www.9cbs.com/read-114762.html

New Post(0)