:: Visual Foxpro, Foxpro for DOS
Как программно скопировать цифру в буфер обмена?
ZenTigra
Автор

Сообщений: 514
Дата регистрации: 03.12.2004
Нужно скопировать число в буфер обмена, с сохранением нулей после запятой. Ctrl+C не предлагать

Например нужно скопировать 10.00 или 99.01



Исправлено 1 раз(а). Последнее : ZenTigra, 28.12.20 16:13
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 324
Дата регистрации: 04.10.2007
_CLIPTEXT не подойдет?
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() 10.00 - это число, а не цифра. Цифра - это 1, или "1"...
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 324
Дата регистрации: 04.10.2007
Что потом нужно делать с цифрами из буфера обмена?
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
x = 123456.78
_CLIPTEXT = transform(x,'999,999,999.99')
_CLIPTEXT = transform(x,'999999999.99')


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Какая разница, если среди стандартных форматов содержимого буфера обмена всё равно нет ни "цифр", ни "чисел"?
Стандартно там бывают тексты (возможно с форматированием) и изображения.
Для создания и поддержания кастомного формата надо прилично потрудится на довольно низком уровне работы с АПИ, и что ещё более важно, он будет работать лишь в ПО разработанном тобой же - никакой ворд/эксель не начнёт сам по себе поддерживать новые форматы.

P.S. И на то будет или нет принимающая сторона распознавать "незначащие нули после десятичной точки", повлиять может в основном лишь сама эта принимающая сторона - например выставив в экселе соответствующий формат ячейки.
Теоретически можно поместить в буфер обмена данные во внутреннем формате экселя (со всем форматированием и т.п.) - боюсь только что это работа не для обычного разработчика на фоксе...


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 28.12.20 16:39
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 324
Дата регистрации: 04.10.2007
Если цифры прописаны в текстовом поле, то на событие Click (или RightClick, или DblClick) можно повесить код:
_CLIPTEXT = ALLTRIM(STR(This.Value,12,2))
Ratings: 0 negative/0 positive
Re: Как программно скопировать цифру в буфер обмена?
ZenTigra
Автор

Сообщений: 514
Дата регистрации: 03.12.2004
Спасибо за ответ, но я думал что есть какая то функция в VFP. Ну раз нету таковой, значит буду вот это юзать...

_CLIPTEXT=LTRIM(RTRIM(ALLTRIM(STR(THIS.Value,20,4),'0'),','))

PS.Больше 4 знаков после запятой, я не использую.



Исправлено 1 раз(а). Последнее : ZenTigra, 28.12.20 19:03
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 38 (Гостей: 38)

© 2000-2024 Fox Club 
Яндекс.Метрика