![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера у меня вопрос связанный с буфером обмена? [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;