Подземелье Кода

28-ое февраля 2006

Демонстрация: Манипулировать Clipboard в Делфи

Сохранено вниз: 5:07 pm Делфи - Брайан @

Здесь быстрая демонстрация как легкий программировать в Делфи.

Этот малый app позволяют вам скопировать текст и прошлый оно снова выпрямляет - прочь с им преобразовал к правильным случаю или верхушке - случай.  Это было написано для потребителя ZTree который имел пук архивов которым он хотел t переименует к частично uppercase.  Был никакой путь выбрать вне часть имени он хотел в верхушке - случае. Так я написал этот режим для того чтобы позволить ему выделить часть текста, экземпляр удара и после этого ударить затир.  И альт, он оно был бы фикчирован.

Так в Делфи, как вы достигаете доски зажима? Наилучшим образом, она не смогла быть простоее.  Как раз добавьте блок clipbrd к вашему заявлению польз как это:

ДЕЛФИ:
  1. пользы Clipbrd;

После этого вы можете прочитать и написать к clipboard как текст как это:

ДЕЛФИ:
  1. A: = Clipboard.AsText;
  2. Clipboard.AsText: = a + BC'; `

Конечно самое лучшее проверить что вы общаетесь с befor текста вы пробуете получить информацию назад от clipboard.  То можно сделать как это:

ДЕЛФИ:
  1. если (Clipboard.HasFormat, то (CF_TEXT)) после этого DoIt;

См.! Оно ТО прямодушное.  Если вы хотите увидеть, то чего другие формы clipboard там, как раз выделить CF_TEXT в Делфи и ударить F1 и вас получат полный список.

Значение Смысль
CF_TEXT Текст с комбинацией CR-LF в конце каждой линии. Нулевой характер определяет конец текста.
CF_BITMAP График поэлементного карты Windows.
CF_METAFILEPICT График metafile Windows.
CF_PICTURE Предмет типа TPicture.
CF_COMPONENT Любой упорний предмет.

Так инструкции создать полный app довольно просто:
В Делфи, создайте новый app. В контролере предмета, назовите главное frmCBFix формы, измените тип граници к bsToolWindow, и измените тип формы к fsStayOnTop

Установьте TEdit на форме и назовите его editCorrected текст, освобождая значение текста значения по умолчанию.

Добавьте Clipbrd к пользам.

Оденьте в TTimer форма и двойной щелчок случай отметчика времени в контролере предмета.

Наклеите следующий Код в блок заменяя автоматическую произведенную процедуру по Timer1Timer:

ДЕЛФИ:
  1. {******************************************************************************
  2.   ProperCase
  3.   Преобразовывает шнур к правильному случаю путем писать каждое письмо прописными буквами после космоса или
  4.   пунктуация.  Единственная общяя не используемая пунктуация апостроф/определяет
  5.   цитата.  Это во избежание изменить не делает не делает, а будет закавыченные предложения
  6.   внутренние одиночные кавычки не будут иметь их первое написанное прописными буквами письмо.
  7. ******************************************************************************}
  8. функция ProperCase (aSrcStr: Шнур): Шнур;
  9. var
  10.   Len, индекс: интежер;
  11. начните
  12.   aSrcStr: = строчная буква (aSrcStr);
  13.   Len: = длина (aSrcStr);
  14.   aSrcStr [1]: = UpperCase (шнур (aSrcStr [1]))[1];
  15.   для индекса: = 1 к Len - 1
  16.   начните
  17.     если (aSrcStr [индекс] в, то [``, `$ ', `«', `(', `) ', `` ', `! ', `? ', `< ', `! ', `> ', `# ', `= ', `+ ', `: ', `, ', `/', `. ', `& ', `- ', `{', `} «, «[»,»] `, `|'])
  18.     после этого aSrcStr [индекс + 1]: = UpperCase (шнур (aSrcStr [индекс + 1]))[1];
  19.   конец;
  20.   Результат: = aSrcStr;
  21. конец;
  22.  
  23. {******************************************************************************
  24.   Timer1Timer
  25.   Пожары периодически (первоначально каждое 250ms), проверки доска зажима для текста,
  26.   если он изменял, то преобразуйте его к правильному случаю и положите результат в
  27.   clipboard и управление редактировать.
  28. ******************************************************************************}
  29. процедура TfrmCBFix.Timer1Timer (прислужник: TObject);
  30. начните // Timer1Timer
  31.   если Clipboard.HasFormat, то (CF_TEXT)
  32.   после этого начните
  33.     если (<> Clipboard.AsText editCorrectedText.Text), то
  34.     после этого начните
  35.       editCorrectedText.Text: = ProperCase (Clipboard.AsText);
  36.       Clipboard.AsText: = editCorrectedText.Text;
  37.     конец;
  38.   конец;
  39. конец// Timer1Timer

И вы сделаны!

Здесь архивы для этого проекта:
http://www.TheCodeCave.com/downloads/delphi/CBFixerUpper.exe
http://www.TheCodeCave.com/downloads/delphi/CBFixerUpper.dpr
http://www.TheCodeCave.com/downloads/delphi/u_CBFix.dfm
http://www.TheCodeCave.com/downloads/delphi/u_CBFix.pas

1 комментарий »

  1. [...] Поэтому чего Код вышеуказанный делает просит документ в окне родителя (одном в котором вы щелкнутое правое). Оно после этого просит настоящий выбор (если любой). Оно после этого получает настоящий выбор по мере того как текст и после этого просит предмет clibboard для настоящего окна. На тот этап просто звонок к SetData и выбранный текст добавлен (с немного добавлений) к clippboard. Нет очень больше чем то. Одна вещь которая должна быть замечена что тип данных в clibboard необходимо определить, в этот случай, как текст. Вы можете прочитать больше о других типах данных которые доска clib может отрегулировать в моей статье о манипуляции Clipboard с Делфи ЗДЕСЬ: [...]

    Pingback подземельем Кода - 12:48 am 2-ое июня 2006 @

Питание RSS для комментариев на этом столбе. URL TrackBack

Выйдите комментарий

Приведено в действие WordPress