問題タブ [jvcl]
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 - 内部にフラットボタンがあり、電卓がない数値編集コントロール
RADStudioを使用してC++プロジェクトを作成していますが、これはDelphiにも当てはまります。
ユーザーが浮動小数点数(小数点以下第2位)のみを入力でき、編集コントロール自体の内部のボタン(実際にはアイコン)をクリックして元の値(変数から取得、ここでは重要ではありません)を復元できる編集コントロールが必要です。
TJvCalcEdit
これは、JEDIライブラリのを使用して私が行ったことです。
コントロールの定義:
ボタンクリックで呼び出されるメソッド:
問題:このメソッドの最後に、電卓のポップアップがコントロールの下に表示され、ユーザーによるアクションが必要になります。プログラムで値を変更しているので、これが発生しないようにします。このようなボタンは電卓をトリガーするために作られているため、これはデフォルト値だと思います。さらに、表示される値(255)は小数点なしで表示され、電卓を閉じると表示されます。
それで、この動作を無効にできますか?または、誰かが私に別のコントロール(標準、オープンソース、またはとにかく無料)で解決策を提案できますか?
delphi - 管理者以外のユーザーとして実行したときにインストーラーが失敗した場合のJVCLパッケージのインストール方法
Win7を使用しています。DelphiXEにJediVCLコンポーネントをインストールしましたが、正しく機能します。ただし、XEを別のユーザーアカウント(管理者特権がない)として実行しようとすると、JVCLコンポーネントがツールパレットに表示されませんが、クライアントユーザーとして実行してRxLibツールおよびコンポーネントとしてインストールされたものを使用する必要がありますクライアントユーザー。
管理者ユーザーとしてではなく、Jedi VCLコンポーネントをインストールまたは使用する方法はありますか?
お願い助けて...
通常のユーザーとしてbatファイルを実行すると表示されるエラーメッセージは次のとおりです。
少し早いですがお礼を。
delphi - TJvAppIniFileStorageを使用してINIファイルに新しいセクションを追加する方法
Delphi XEで記述され、dbExpressを使用してMySQLデータベースに接続されたデータベースアプリケーションプロジェクトがあります。JVCLグリッドコンポーネントを使用して、データセットのレコードを表示します。別のJVCLコンポーネントを使用してFormStorageを実行できれば、より効率的になります。
フォームの保存に使用することをお勧めしますTJvFormStorage
。TJvAppIniFileStorage
このプロジェクトには多くのフォームがあるため、フォームサイズの値を格納するためにINIファイルに新しいセクションを追加する必要がありますが、TJvAppIniFileStorageを使用してそれを行う方法がわかりません。
TJvAppIniFileStorageは、DefaultSection()メソッドを提供しているだけです。つまり、デフォルトとして宣言されている1つのセクションのみを変更して書き込むことができます。
JVCLのTJvAppIniFileStorageを使用して新しいセクションを追加する方法を誰でも説明できますか?
前もって感謝します。
delphi - TJvFormStorage がフォームの位置を正しく保存しないのはなぜですか?
というフォームがありfmTest
ます。プログラムが終了した場合、 JVCL TJvFormStorageを使用して、フォームの配置、フォームのサイズ、およびフォームの位置を INI ファイルに保存します。
ただし、実行時にWindowsコントロールをタスクバーの近くにのみヘッダー部分が見えるまで下にドラッグしようとすると、それを離してプログラムを終了すると、fmTest
プログラムが開始されたときにその位置から開始されませんまた。
StoredProps
メソッドとStoredValues
メソッドを使用するように提案されましたが、TJvFormStorage
そのメソッドの使用方法がよくわかりません。
TJvFormStorage がフォームの位置を正しく保存しないのはなぜですか? を使用してフォームの位置を正しく保存する方法はありますTJvFormStorage
か?
前もって感謝します。
delphi - TJvAppDBStorage を含むデータ モジュールを解放すると、TComponent.RemoveNotification() でアクセス違反が発生します
解放できないデータ モジュールがあります (おかしいかもしれませんが)。手動で破棄しようとしても、別のコンポーネント ( Application
.
このデータ モジュールには、一連のTADOxxx
コンポーネントに加えて、 two TJvDataSource
、 one TApplicationEvents
、 one TClientDataSet
、および oneが含まれていTJvAppDBStorage
ます。そのコードには、ADO 接続を開く、いくつかのレコードをテーブルに書き込む、いくつかのクエリを実行するなど (何も変わったことはありません) しか含まれていません。上記以外のコンポーネントは所有していません。この偽の電話がどこから発信されているのか、私は困惑していRemoveNotificaion()
ます。何か案は?
アップデート
を削除した後TJvAppDBStorage
、データ モジュールを破棄できます。コンポーネントのプロパティは次のとおりです。
使ったことある人いJvAppDBStorage
ますか?これは正常で予想される動作ですか?
multithreading - Delphi: スレッドを「一時停止しないで」作成する必要がありますか?
Jedi VCL のメモリ リークを追跡しようとしていましたがJvHidControllerClass.pas
、ソース履歴で次の変更に遭遇しました。
古いリビジョン:
現在のリビジョン:
経験から、中断されていないスレッドを作成すると、次のことがわかりました。
その後、スレッドはすぐに実行を開始します。この場合、まだ初期化されていないオブジェクトにアクセスしようとします。
すぐに塗りつぶしReport
て、オブジェクトにアクセスしようとしますDevice
。問題は、それらがまだ初期化されていないことです。これらは、スレッドが開始された後の次の行です。
これは競合状態であることを認識しています。また、ユーザーが本番環境でクラッシュを経験する可能性はかなり低いため、レース クラッシュを放置してもおそらく問題はありません。
しかし、私は道を外れていますか?何か不足していますか?呼び出します:
スレッドを開始してすぐに実行しませんか? これは本当に (意図的に) JVCL に追加された競合状態の回帰ですか? 何か秘密はありますか
それは正しいコードになります:
?
間違えて電話して火傷した後
私は決して正しくないので、私の脳にそれをファイルしました。(値を初期化する必要がある場合) スレッドをすぐに開始できる有効な用途はありますか?
delphi - TJvWizard で Segoe UI Light をプログラムで設定する
コンポーネントを使用していてTJvWizard
、ヘッダーのタイトル フォントを Segoe UI Light を使用するように設定したいと考えています。私のフォームOnCreate
メソッドでは、次のことを行っています。
このコードはフォント サイズを正しく設定しますが、フォントは Segoe UI Light に変更されず、代わりに親フォント (Segoe UI) を使用し続けます。
回避策として、私はこれをしました:
これはうまくいきますが、私には変なにおいがします。また、割り当てがどのように機能するかわかりません。それは参照を保持していますか?f.Free
ラインを維持する必要がありますか?
編集:追加情報として、Office 2013 にこれらのフォントのかなり新しいバージョンをインストールしました。また、InkScape などの他のアプリケーションで Segoe UI Light を選択できないことも確認しました。
また、Delphi プロパティ エディタでは、フォント選択ダイアログを使用して選択できますが、「Segoe UI Light」という名前は表示されません。代わりに、Segoe UI を選択する必要があり、Font Style リストで Light スタイルを選択します。
また、ドロップダウン リストを使用してフォント名を選択しても機能しません。
したがって、これは私が持っているフォントのバージョンといくつかの拡張プロパティに関係していると思います (実際、私の Fonts フォルダーには Segoe UI しか表示されず、それを開くと 10 個のウィンドウが開きます)。
私はまだ回避策を探しています(これは関連しているように聞こえますが、彼らは従いませんでした)