CopyToClipboard въпросче

4 отговора 115 прегледа
#1

CopyToClipboard въпросче

Как да копирам определена клетка от DBGrid в Clipboard-a? Някаква API-function...

Отговор
в отговор на VladoVasilev #2

Re: CopyToClipboard въпросче

TClipBoard, ако си с Делфи 7, за назад не знам дали го има.
Май ще се наложи да си регистрираш ClipBoard формата ти.

Отговор
в отговор на VladoVasilev #3

Re: CopyToClipboard въпросче

Всички версии на Делфи имат TClipboard. Клипборда на windows поддържа различни формати на данните в него. В твоя случай предполагам, че искаш да копираш текст в него. Това става най-просто с ClipBoard.AsText := 'някакъв текст'; (uses ClipBrd;). Текстът, който искаш да копираш ще е най-добре да го вземеш от dataset-а, който визуализираш. Текущият запис в него е редът, който ти е избран в грида. Избраният фийлд (колона) можеш да разбереш от SelectedField пропъртито на грида. Т.е. правиш следното:

if Assigned(DBGrid1.SelectedField) then
Clipboard.AsText := DBGrid1.SelectedField.Text;

Трябва да си правиш проверката за избрания фийлд, защото това пропърти в някой случаи може да ти върне nil. Например ако от опциите си включил да се избират целите редове. Но тогава ти нямаш избрана клетка и не ми е ясно какво би искал да копираш в клипборда.

Отговор
в отговор на andrew_nikoloff #4

Re: CopyToClipboard въпросче

po-dobre ne Text, che ako e TMemoField texta shte e '(MEMO)'

AsString

-------------
Special killer double trouble triple extra nicotine monster!
Отговор
в отговор на z_free #5

Re: CopyToClipboard въпросче

А ако е AsString ще си загуби форматирането

Отговор