forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Буффер обмена (http://forum.boolean.name/showthread.php?t=12637)

DeeJex 08.06.2010 18:24

Буффер обмена
 
DeeJex's COPYPASTE.dll
Хоть я и неодобряю копипаст пьюровских функций, но тут мне нечего было добавить.

Randomize 08.06.2010 18:27

Ответ: Буффер обмена
 
http://blitzart.at.ua/ и так выгладело не очень, но теперь! Я ужаснулся при виде этого дизайна.

baton4ik 08.06.2010 18:54

Ответ: Буффер обмена
 
"Буфер" с одной "ф" пишется!

EvilChaotic 08.06.2010 19:15

Ответ: Буффер обмена
 
Цитата:

Сообщение от baton4ik (Сообщение 149620)
"Буфер" с одной "ф" пишется!

Ну эт ты так думаешь.

.Squid 08.06.2010 19:34

Ответ: Буффер обмена
 
Странно, но я тоже так думаю. И как не странно, я уверен в своей правоте.

Randomize 08.06.2010 19:55

Ответ: Буффер обмена
 
Либа не нужна.
1) Есть аналоги
2) Блиц устарел
3) пофик на то как пишется буффер

DeeJex 08.06.2010 20:03

Ответ: Буффер обмена
 
Цитата:

Сообщение от Randomize (Сообщение 149632)
1) Есть аналоги

да? я ни одного не видел

Randomize 08.06.2010 20:15

Ответ: Буффер обмена
 
Вы задолбали! Поиск только для избранных чтоли?
http://forum.boolean.name/showthread.php?p=84119
http://forum.boolean.name/showthread.php?t=5583

IGR 08.06.2010 20:24

Ответ: Буффер обмена
 
тем более в последних не такое бросское назавание как
Цитата:

DeeJex's COPYPASTE.dll

EvilChaotic 08.06.2010 21:21

Ответ: Буффер обмена
 
Цитата:

Сообщение от .Squid (Сообщение 149630)
Странно, но я тоже так думаю. И как не странно, я уверен в своей правоте.

?
xSetBuffet()
xBackBuffer()
xFrontBuffer()
xLockBuffer()
xUnlockBuffer()
xSaveBuffer()
xGetCurrentBuffer()
xCreateBufferVectors()
xBufferVectorsSetElement()
xCreateBufferMatrix()
xBufferMatrixSetElement()
xBufferMatrixGetElement()
xBufferFloatsSetElement()
xBufferFloatsGetElement()
xBufferDelete()

....

Английский язык так не думает, это и вызывало сомнения. А на русском беру свои слова обратно)

FireOwl 09.06.2010 14:40

Ответ: Буффер обмена
 
Код:

xSetBuffet xKitchenBuffet()
xPutCake(-10,5,1.6)
xPutCake(-8,5,1.6)

:-D

Venom2 09.06.2010 16:17

Ответ: Буффер обмена
 
Если нужна работа только с текстом, то можно напрямую winapi юзать
Код:

Const GMEM_MOVEABLE% = 2
Const CF_TEXT% = 1

Function ClearClipboard()
        If OpenClipboard(SystemProperty("AppHWND")) Then
                EmptyClipboard()
                CloseClipboard()
        EndIf
End Function

Function SetClipboardText(value$)
        Local length%, bank%, memory%, temp%
        If OpenClipboard(SystemProperty("AppHWND")) Then
                EmptyClipboard()
                length = Len(value)
                If length > 0 Then
                        length = length + 2
                        bank = CreateBank(length)
                        If bank Then
                                temp = length - 1
                                Repeat
                                        PokeByte(bank, temp - 1, Asc(Mid(value, temp)))
                                        temp = temp - 1
                                Until temp <= 0
                                memory = GlobalAlloc(GMEM_MOVEABLE, length)
                                If memory Then
                                        temp = GlobalLock(memory)
                                        MoveMemoryFromBank(temp, bank, length)
                                        GlobalUnlock(memory)
                                        SetClipboardData(CF_TEXT, memory)
                                EndIf
                                FreeBank(bank)
                        EndIf
                EndIf
                CloseClipboard()
        EndIf
End Function

Function GetClipboardText$()
        Local value$, memory%, length%, bank%, address%
        value = ""
        If OpenClipboard(SystemProperty("AppHWND")) Then
                memory = GetClipboardData(CF_TEXT)
                If memory Then
                        length = GlobalSize(memory)
                        If length > 2 Then
                                length = length - 2
                                bank = CreateBank(length)
                                If bank Then
                                        address = GlobalLock(memory)
                                        MoveMemoryToBank(bank, address, length)
                                        GlobalUnlock(memory)
                                        Repeat
                                                length = length - 1
                                                value = Chr(PeekByte(bank, length)) + value
                                        Until length <= 0
                                        FreeBank(bank)
                                EndIf
                        EndIf
                EndIf
                CloseClipboard()
        EndIf
        Return value
End Function

SetClipboardText("Hello World!")
Print GetClipboardText()
ClearClipboard()
Print GetClipboardText()

WaitKey()
End

Ну а картинки лучше в памяти колбасить (структура буфера известна, блок памяти дернуть не проблема, через формат CF_DIB с построением структуры BITMAPINFO по данным того же буфера) и это да, уже только через dll

ЗЫ
Чуть не забыл деклс
Код:

.lib "user32.dll"

OpenClipboard%(window%)
CloseClipboard()
EmptyClipboard()
SetClipboardData(type%, data%)
GetClipboardData%(type%)

.lib "kernel32.dll"

GlobalAlloc%(flags%, bytes%)
GlobalFree(handle%)
GlobalLock%(handle%)
GlobalUnlock(handle%)
GlobalSize%(handle%)
MoveMemoryFromBank(destination%, source*, length%):"RtlMoveMemory"
MoveMemoryToBank(destination*, source%, length%):"RtlMoveMemory"


impersonalis 09.06.2010 21:04

Ответ: Буффер обмена
 
Цитата:

Ну а картинки лучше в памяти колбасить (структура буфера известна, блок памяти дернуть не проблема, через формат CF_DIB с построением структуры BITMAPINFO по данным того же буфера) и это да, уже только через dll
Ммм? http://forum.boolean.name/showthread.php?p=84119
картинка -> буффер
буффер <- картинка
Только системные DLL


Часовой пояс GMT +4, время: 17:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot