
Буфер обмена.
Для работы с буфером обмена используется готовый объект ClipBoard:TClipBoard. Он описан в модуле Clipbrd
Класс имеет свойства
AsText: String —содержимое буфера обмена в виде строки
FormatCount – кол-во форматов данных буфера обмена
Formats – массив форматов для буфера обмена
Методы
Assign – позволяет копировать объект в буфер обмена и обратно.
Например ClipBoard.Assign(Bitmap1)
Clear – очистка буфера обмена
и другие
Ярлычки (Hints).
Задаются в свойстве Hint элемента управления. Для их показа необходимо включить свойство ShowHint:boolean.
Перетаскивание (Drag & Drop)
С помощью обработки событий. Для автоматического включения возможно d&d у элемента управления свойство dragMode устанавливается в dmAutomatic (вместо dmManual).
При ручном режиме перетаскивание начинается вызоаом метода BeginDrag(immediate:boolean). (параметр определяет начнется ли перетаскивание немедленно или полсе смещения с нажатой кнопкой мыши на 5 точек).
при перемещении компонента над другим элементом управления для последнего возникает событие DragOver. Его обработчик имеет параметры
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:= Source=Button1;
end;
Sender – элемент над которым находится курсор
Source – перетаскиваемый элемент
x,y: коорднаты курсора
state – состояние (курсор появился над объектом dsDragEnter, двигается – dsDragMove или ушел dsDragLeave.
Обработчки должен возвратить в переменную Accept примет ли элемент управления перетаскиваемый объект или нет. Если обработчик этого события отсутствует, то элемент ничего не может принять.
Событие DragDrop возникает при отпускании кнопки мыши надо элементом,готовым к приему.
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
(Source as TButton).Left:=X;
(Source as TButton).Top:=Y;
end;
Пример – перетаскивание строк из одного списка в другой.
procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:= Source = ListBox1;
end;
procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
ListBox2.Items.Add(ListBox1.Items[ListBox1.ItemIndex]);
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
Потоки и процессы. Дарахвелидзе.
Обмен информацией между программами Windows
1. DDE
OLE
COM
Бобровский
Сетевые программы.