рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Private

Private - раздел Программирование, Буфер обмена и стандартные компоненты Delphi { Private Declarations } Fclipboardowner:hw...

{ Private declarations }

FClipboardOwner:HWnd;

procedure WMDrawClipboard(var Msg: TWMDrawClipboard);

message WM_DRAWCLIPBOARD;

Я объявил здесь переменную FclipboardOwner типа HWnd. Это тип, который используется для идентификации окна. Вспомни, каждый раз, когда нам нужно было получить или передать указатель на окно, то мы использовали свойство Handle. Вот это свойство имеет тип HWnd, и здесь мы явно объявили переменную такого же типа, чтобы мы могли работать с окнами.

Здесь так же объявлена процедура WMDrawClipboard с одним лишь параметром типа TWMDrawClipboard. Это процедура обработчик события WM_DRAWCLIPBOARD. Об этом говорит соответствующая надпись после объявления процедуры и точки с запятой. Там у нас стоит ключевое слово messageи имя сообщение, на которое должна откликаться процедура. Вот таким нехитрым способом мы вручную описали обработчик системного сообщения, которого нет в Delphi. Имена всех сообщений Windows ты можешь найти в директории Delphi, поддиректории Source/Rtl/Win, в файле Messages.pas. Такие имена всегда начинаются с приставки WM_ (Windows Message – сообщение Windows).

Итак, описанная нами процедура будет вызываться каждый раз, когда изменилось содержимое буфера обмена. Теперь нажимаем Ctrl+Shift+C и Delphi создаёт для нас пустую заготовку описанной процедуры. В ней пишем следующее:

procedure TForm1.WMDrawClipboard(var Msg: TWMDrawClipboard);

begin SendMessage(FClipboardOwner, WM_DRAWCLIPBOARD, 0, 0); Msg.Result := 0; ClipboardChanged; end;

Первые две строчки я опущу, и описывать не буду. Поверь мне, они необходимы. В последней строке я вызываю процедуру ClipboardChanged. Она должна выглядеть так:

– Конец работы –

Эта тема принадлежит разделу:

Буфер обмена и стандартные компоненты Delphi

Глава Буфер обмена...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Private

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Begin if Clipboard.HasFormat(CF_BITMAP) then
begin PasteButton.Enabled := True; Break; end; end; end; Для начала я делаю кнопку «Вставить» неактивной. Потом я запускаю цик

TLineClipboard=class
public LineData:TLineData; procedure CopyToClipboard; procedure PasteFromClipboard; end; Структура TLineData состоит из пяти полей. Именно

Procedure TForm1.CopyButtonClick(Sender: TObject); var
LineClipboard:TLineClipboard; begin LineClipboard:=TLineClipboard.Create; LineClipboard.LineData.Name:=StringGrid1.Cells[0, StringGrid1.Row]; LineClipboard.LineDat

If Clipboard.HasFormat(CF_PERSONDATA) then
begin LineClipboard.PasteFromClipboard; StringGrid1.Cells[0, StringGrid1.Row]:=LineClipboard.LineData.Name; StringGrid1.Cells[1, StringGrid1.Row]:=LineClipboard.LineData.LastName; StringGri

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги