問題タブ [lazarus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Lazarus アプリのスプラッシュ スクリーンの問題
Delphi アプリケーションを FPC/Lazarus に移植していますが、このアプリケーションはスプラッシュ スクリーンに情報を表示します。ユニットに初期化セクションがある場合、この初期化セクションは次のようなものを呼び出します。
これは Delphi で動作しますが、FPC/Lazarus を使用してこれをコンパイルすると、スプラッシュ スクリーンでフォームを作成すると例外が発生しました。
Application.Initialize;
が呼び出された後にフォームを作成できることがわかったので、私の回避策は、 ScreenInfo.Initialized=true
. 機能しますが、すべての情報が表示されるわけではありません。ユニット初期化セクションの前にスプラッシュ フォームを表示する方法はありますApplication.Initialize;
か?
delphi - アップデートを確認
私はLazarusでアプリケーションを開発しています。これは、すべての.xmlファイルに新しいバージョンのXMLファイルがあるかどうかを確認する必要がありますForm_Create
。
これどうやってするの?
delphi - TListView のディレクトリにあるファイルの一覧表示
私は on を必要とするプログラムを構築しておりForm_Create
、TListView
呼び出されFileList
た.\Files
TListView
windows - Windows から Linux への移植
Windows 上の Lazarus で書かれたプロジェクトがありますが、Windows コンピューターで Linux 用にクロスコンパイルしたいと考えています。これどうやってするの?
delphi - ファイル名からパスを削除
ファイル名を .csv に解析する必要があるプログラムを開発していますTTextField
。既に知っているファイル拡張子を削除する方法 (または、このようにできると思います):
しかし、どうすれば からファイル パスを削除できますFName
か?
syntax - シンタックスハイライトはどのように構築されていますか?
私は現在、Lazarusを使用して開発者エディターを構築しています。すべての優れた開発者エディターとして、構文を強調表示する必要があります。このため、いくつかのことを知りたいと思います。
- シンタックスハイライトは通常どのように構築されますか(多く
if
のsを使用してフォントを変更しTextField
ますか? TSynEdit
これを行うのはとてもいいですか?- 使い方
TSynEdit
(リンクとリソース)?
mono - Mono(Linux)でのDLLImportのクラッシュ:icall_wrapper_mono_marshal_free
LinuxでのMonoInteropの問題で立ち往生しています。C#アセンブリで使用する必要のあるネイティブ共有ライブラリ(Lazarus製)があります。共有ライブラリは、WindowsおよびLinux上のMono C#アセンブリによって使用されます。
アセンブリは、実行時にDllImportを介して共有ライブラリをロードし、ファイルを生成して新しいファイルの名前の文字列を返すエクスポートされた関数を呼び出します。共有ライブラリの関数は正常に機能しますが、Linuxでは、関数が戻ると、MonoランタイムがObject.__icall_wrapper_mono_marshal_freeでクラッシュします。これは、WindowsでMonoを使用すると正常に機能します。
いくつかのテストを行ったところ、共有ライブラリが実際に機能していることがわかりました(新しいファイルは指定されたパスで生成されます)が、最終的にランタイムがクラッシュします。intを返すエクスポートされた関数を使用すると機能するため、ランタイムには、結果の文字列をアセンブリに戻すマーシャリングに問題があるようです。
私の共有ライブラリは次のようなものです。
呼び出し元のC#アセンブリは次のようになります。
私はいくつかの代替案を試しました(エクスポートされた関数からネイティブ文字列を返す、アセンブリと共有ライブラリで呼び出し規約をstdcallに変更する、DllImportの文字セットを変更する)。
私は何かが足りないと確信していますが、Googleでこの問題について何も見つかりませんでした。
私のクラッシュは次のようになります。
何か案は?
delphi - Lazarus/FPC での WM_COMMAND の問題
MainMenu のフォームがあり、ユーザーがメニューからコマンド項目を選択したときにインターセプトしたい。これは Delphi で機能します。
MainMenu にいくつかの項目を追加し、メニューからそれらの項目を選択すると、Memo1 が次のように入力されます。
このアプリケーションを FPC/Lazarus に移植しましたが、WM_COMMAND ハンドラが呼び出されていないようです! Delphi でブレークポイントを設定するとTForm1.WMCommand
、メイン フォームが表示される前に Delphi が何度も停止しました。Lazarus は、このブレークポイントで停止することはありませんでした。Lazarus の WM_COMMAND で何かが壊れていると思いますが、何かわからないことがあります。何か案が?
WinXP で FPC 2.2.4 を搭載した Lazarus 0.9.28.2 ベータ版を使用しています。
編集:
Winspector を使用して、MainMenu が WM_COMMAND を生成することを確認しました。
Lazarus/FPC の WM_COMMAND メッセージ メソッドの処理にバグがあると思い、報告しました: http://bugs.freepascal.org/view.php?id=15521
properties - Lazarusコンポーネントでプロパティを公開すると、「アクセス違反」が発生します
LinuxのLazarusでは、クラスをコンポーネントとして登録して、フォームにドロップできるようにしました。
公開できるプロパティが文字列や整数などの単純な型に制限されていることを除けば、チャームのように機能します。
TStringListやTImageなどのプロパティを公開しようとすると、オブジェクトインスペクターでクリックすると、「アクセス違反」が発生します。
コードを標準コンポーネントと比較しましたが、それらがどのように異なって動作しているかがわかりません。
では、オブジェクトインスペクターでそのようなプロパティを使用するために必要な追加の手順は何ですか?
bitmap - Lazarus で、MenuItem にビットマップが割り当てられているかどうかを確認する方法は?
メイン メニューのメニュー項目をループし、各メニュー項目にビットマップが割り当てられているかどうかを確認する必要がある Lazarus コードをいくつか書きました。
で確認してみた
ただし、ビットマップが割り当てられているかどうかに関係なく、これは常に true を返します。
実際の画像が割り当てられていない場合、ビットマップは空のビットマップで埋められると思います。
では、画像が有効か空かを確認するにはどうすればよいでしょうか。