Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мастера у меня вопрос связанный с буфером обмена? [D5, Win95/98, Win2k]


Студент ©   (2003-01-09 02:25:00) 

Можно ли скопировать данные в буфер обмена без потери уже находящихся данных в буфере обмена(текста или графики)?
Т.е. можно ли создать что называется свой отдельный временный буфер обмена.
Прошу мастеров привести пример по подробнее.


Студент   (2003-01-09 10:55:00) [1]

OK.


Digitman   (2003-01-09 10:51:00) [2]

"по подробнее" - см. хэлп Win32 API Programmer"s reference, topic "Clipboard Functions"


Студент   (2003-01-09 10:46:00) [3]

Anatoly Podgoretsky © я с Вами согласен, но где выход?
Digitman © можно по подробнее.


Digitman   (2003-01-09 10:37:00) [4]


> в системном буфере может быть ни текст а графика


Не трогай данные иных форматов нежели CF_TEXT - и ничего с ними не случится, никуда не исчезнут


Anatoly Podgoretsky   (2003-01-09 10:30:00) [5]

Буфер должен управляться только пользователем, программисту не допустимо использовать его для своих целей


Студент   (2003-01-09 10:23:00) [6]

Объясняю: первоначально я копировал данные из системного буфера в RXRichEdit1 затем из другого Рича2 копировал данные в системный буфер(эти данные я вставлял в MS Excel-собственно для этого все я и делал из-за скорости-данных много)ну а затем из первого Рича1 вставлял назад в системный буфер(Весь этот гемор- для корректности операции вдруг пользователь в данный момент держит в буфере нужную информацию!). Но столкнулся с той проблемой что в системном буфере может быть ни текст а графика, а тут уже сложнее для меня так как я новичок.


Anatoly Podgoretsky   (2003-01-09 10:14:00) [7]

Зачем вообще тебе здесь клипбоард, почему бы не сразу из Memo1 в Memo2?


vlad40   (2003-01-09 10:09:00) [8]

А почему перед записью текста из Memo2 не прочитать ClipBoard и записать потом в него уже результат объединения того, что было в буфере и Memo2.Text ?


Digitman   (2003-01-09 10:04:00) [9]

В каждый момент времени системный клипборд может хранить только один экземпляр структурированных данных конкретного формата.

Т.е. если ты перед MyClipboard.AsText := Memo1.Text самостоятельно не примешь меры по временному сохранению данных формата CF_TEXT, то после MyClipboard.AsText := Memo1.Text старые данные будут безвозвратно утеряны


Студент   (2003-01-09 09:53:00) [10]

Неужели никто не знает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Студент   (2003-01-09 09:37:00) [11]

Я сделал так: из одного Memo1 копирую данные в MyClipboard
потом из MyClipboard вставляю в Memo2 однако при данной операции данные в системном буфере уничтожаются и заменяются данными которые я копирую в MyClipboard. Но нужно данные в системном буфере оставить без изменения в чем ошибка? Вот пример кода:
//копирую в мой буфер
procedure TForm1.Button1Click(Sender: TObject);
var
MyClipboard: TClipboard;
begin
MyClipboard := TClipboard.Create;
MyClipboard.AsText := Memo1.Text;

MyClipboard.Free;
end;

//вставляю из моего буфера
procedure TForm1.Button2Click(Sender: TObject);
var
MyClipboard: TClipboard;
begin
MyClipboard := TClipboard.Create;

Memo2.Text :=MyClipboard.AsText;


MyClipboard.Free;

end;


Студент   (2003-01-09 06:22:00) [12]

Спасибо ЮЮ © . Если не трудно не моглибы привести пример хотябы в общих чертах, а то я даже не чайник а еще хуже чем чайник разбираюсь в Delphi . Заранее благодарен.


ЮЮ   (2003-01-09 04:03:00) [13]

Использовать не системную Clipboard, а свою MyClipboard := TClipboard.Create;


Наверх

Титульная страница Поиск, карта сайта Написать письмо