for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Как программно скопировать цифру в буфер обмена?
ZenTigra
Автор

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

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



Исправлено: ZenTigra, 28.12.20 16:13
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 292
Дата: 28.12.20 15:01:44
_CLIPTEXT не подойдет?
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
of63

Сообщений: 20808
Откуда: Н.Новгород
Дата: 28.12.20 16:10:04
() 10.00 - это число, а не цифра. Цифра - это 1, или "1"...
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 292
Дата: 28.12.20 16:23:26
Что потом нужно делать с цифрами из буфера обмена?
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
Penner

Сообщений: 4100
Откуда: Muenster
Дата: 28.12.20 16:33:49
x = 123456.78  
    
  _CLIPTEXT = transform(x,'999,999,999.99')  
    
    
  _CLIPTEXT = transform(x,'999999999.99')


------------------
Никогда не откладывайте на завтра, то, о чем можно забыть навсегда
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
Igor Korolyov

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

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


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




Исправлено: Igor Korolyov, 28.12.20 16:39
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
vnkor

Сообщений: 292
Дата: 28.12.20 16:43:00
Если цифры прописаны в текстовом поле, то на событие Click (или RightClick, или DblClick) можно повесить код:
_CLIPTEXT = ALLTRIM(STR(This.Value,12,2))
Ratings: 0 negative/0 positive

Re: Как программно скопировать цифру в буфер обмена?
ZenTigra
Автор

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

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

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



Исправлено: ZenTigra, 28.12.20 19:03
Ratings: 0 negative/0 positive



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

On-line: 9 Chemberzhy  (Гостей: 8)


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