控えめに言っても、私は Pascal の経験が浅いことをすぐに認めます。ですから、私が得ることができるどんな助けも大歓迎です。:)
大規模なプログラムの一部として、文字列変数をクリップボードに書き込む必要があります。Lazarus (バージョン 1.0.12) で新しいプロジェクトを作成したので、余分な不要なコードによって引き起こされる複雑さを回避する方法を見つけようとすることができます。以下にそのコードを含めます。
program varToClipboard;
uses Clipbrd;
var
textToCopy:string;
begin
textToCopy := 'Test text from Pascal';
Clipboard.AsText := textToCopy;
end.
上記のコードを必要なLCLBase
依存関係と共に使用すると、コンパイルされた EXE を実行すると、CMD で次のエラーが発生します。
An unhandled exception occurred at $000000000043D45E :
EAccessViolation : Access violation
$000000000043D45E CLIPBOARDREGISTERFORMAT, line 98 of ./include/lclintf.inc
$000000000043C35B PREDEFINEDCLIPBOARDFORMAT, line 185 of lclintf.pas
$0000000000415B0C TCLIPBOARD__SETASTEXT, line 452 of ./include/clipbrd.inc
$0000000000401802 main, line 12 of varToClipboard.lpr
ドキュメントによると、私はすべてを正しく行っているようです。ただし、ドキュメントが不足していることがわかりました... ときどき不足しています。
また、コンソール ウィンドウがポップアップせずにコンパイル済みの EXE (文字列を生成してクリップボードに書き込むだけ) を実行できるようにするには、どうすればよいですか?