[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿時間:06/03/06(Mon) 09:51
投稿者名:Lunax
URL :
タイトル:[Plugin作成]クリップボードにコピー

はじめまして、Lunaxと申します。
早速なのですが、Becky Plugin SDK for Delphiにて「選択文字列を半角変換後コピー」というプラグインを作成しています。
下記にコードを記述します。

=======================================================
// Beckyに対してコピーコマンド実行
bka.Command(0, 'EditCopy');
// Beckyに対してコピーコマンド実行
Str := Clipboard.AsText;
// 全角を半角に変換(Str => Chr)
LCMapString(GetUserDefaultLCID(), LCMAP_HALFWIDTH, PChar(Str), Length(Str) + 1, Chr, Sizeof(Chr));
// 半角変換後のChrをクリップボードにコピー
Clipboard.AsText := Chr
=======================================================

という簡単な処理を行っています。
ところが「bka.Command(0, 'EditCopy')」でクリップボードにコピー出来ていないっぽいのです。
しかし「bka.Command(0, 'EditCopy');」と「Str := Clipboard.AsText;」の間にShowMessageを挟むとうまくコピーできるのです。

=======================================================
bka.Command(0, 'EditCopy');
ShowMessage('クリップボードにコピーしました');
Str := Clipboard.AsText;
LCMapString(GetUserDefaultLCID(), LCMAP_HALFWIDTH, PChar(Str), Length(Str) + 1, Chr, Sizeof(Chr));
Clipboard.AsText := Chr
=======================================================

ShowMessageはメッセージを表示するかしないかなので、本来の処理には関係ないはずなのですが、
ShowMessageを追加することによって上手くコピーできているようです。

また、当方Delphi7、usesにClipbrdとDialogsユニットを追加しています。
メニュー追加は、BKC_OnMenuInitに
case nType of
BKC_MENU_MSGVIEW : begin // 右クリックメニューに追加
AppendMenu(hTargetMenu, MF_SEPARATOR, 0, Nil);
nID := bka.RegisterCommand('Test for BKC_MENU_MSGVIEW Plugin', nType, @CmdProc);
AppendMenu(hTargetMenu, MF_STRING, nID, 'Plugin Test BKC_MENU_MSGVIEW');
end;
end;
で、メッセージビューに対して右クリックメニューに追加しています。

もし、上記について情報などありましたらよろしくお願い致します。


このメッセージに返信する場合は下記フォームから投稿して下さい。

おなまえ
Eメール メールアドレスを書いておくと回答を送信します。(未公開)
題   名
メッセージ    手動改行 強制改行 図表モード
URL
削除キー (記事削除時に使用。英数字で8文字以内)
プレビュー
スパムですか? はい いいえ スパムとは

以下のフォームから自分の投稿した記事を削除できます
■記事No ■削除キー



- Web Forum -