問題タブ [tform]

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.

0 投票する
1 に答える
3352 参照

delphi - Delphi:フレームのプロパティが期待どおりに更新されない (スタックする)

フォームにフレームがあります。フレーム (追加/削除ボタン、ラベル) を変更すると、フォームに変更が表示されないか、コントロールがフレーム内のフォーム内の他の位置に表示されます。フォームからフレームを削除して再度追加する場合 -> OK。

なんで?私の記憶では、Delphi 2010 (現在の Delphi XE) では問題はありませんでした。

ありがとう。

0 投票する
5 に答える
2397 参照

delphi - メインフォームのOnShowでモーダルフォームを表示すると、メインフォームが表示されませんか?

メインフォームがメインフォームのFormShowイベントでサブフォームを呼び出すアプリケーションを1つ作成しました。サブフォームが表示され、2つのオプションを選択できます。サブフォームの最初のオプションを選択すると、メッセージが表示され、その後メインフォームが表示されます。これで、アプリケーションを初めて実行すると、サブフォームMeassageで選択したオプションが表示されます。しかし、メインフォームを背景としてメッセージを表示したい。だからこれに対する解決策。以下はFormShowコードです。

0 投票する
3 に答える
1361 参照

delphi - Delphi:OnFormShowイベントで、1ミリ秒でも表示されないようにフォームに指示することは可能ですか?

OnFormShowイベントでは、(特定の条件のセットに対して)フォームを表示しないようにする必要があります。

「カウンタ>15の場合、フォームが表示されない」など。

もちろん、フォーム作成で多くのものをリファクタリングして移動することもできますが、これは一般的なフォームであり、変更が多すぎるため、これは多くの作業です。

OnFormShowの最後でフォームを閉じますが、とにかくフォームが数ミリ秒表示されます。

残念ながら、フォームを表示しないように指示する条件は、OnFormShow内で決定されます。フォームを表示しないようにするためのトリックはありますか?

0 投票する
1 に答える
1286 参照

delphi - Delphi: モーダル フォームがちらつく

ラベル、ボタン、グループ ボックスを含むモーダル フォームがあります。

ボタンのクリックで Form 1 から呼び出します。Form2.ShowModal;

フォーム 2 が最初に表示されたら、ブレンド効果によりすべて問題ありません。しかし、次のフォームの外観、特にラベル、ボタンがちらつきます。使ってみましたDoubleBuffered:=True/False and ParentFont:=True/False (in case of a group box, frame)。役に立ちません:(

誰でも助けてもらえますか?ありがとう!

0 投票する
4 に答える
2223 参照

delphi - 別のフォームイベントプロシージャを使用する

あるフォームが別のフォームのイベントプロシージャを使用できるようにする方法はありますか?

たとえば、PongFormというフォームとObstPongFormという別のフォームがあります。PongFormにはティッカーがあり、ObstPongFormには別のティッカーがあります。ObstPongFormに、PongFormの「tick」イベントのコードを独自の「tick」イベントで使用させることは可能ですか?たぶん、ObstPongFormにPongFormから継承させることによって?

0 投票する
1 に答える
358 参照

delphi - Delphi 6 イベント ハンドラのプロパティをリファクタリングするためのツール/ユーティリティ?

アプリケーション コード ベース (つまり、複数のアプリケーション) で広く使用されているコンポーネントがあります。一般的に使用されるイベント ハンドラー プロパティの 1 つを変更したいと考えています。Delphi 6 フォーム ソース ファイル(DFM + PAS)を調べて、フォーム上のコンポーネントのインスタンスに対して現在定義されているイベント ハンドラを検索および置換するツール/ユーティリティが必要です。

例えば。現在次のように定義されているコンポーネントにイベント ハンドラー プロパティがあるとします。

TOldEventHandlerProc は次のように定義されています。

TOldEventHandlerProc を次のように変更します。

ユーティリティで Form の DFM/PAS ファイル ペアの内容を調べて、定義されている FOnEvent のすべてのインスタンスを見つけ、TOoldEventHandlerProc の新しい定義に基づいて、古いパラメータ リストを新しいパラメータ リストに交換する必要があります。たとえば、MyComp1 という名前のコンポーネントのインスタンスを持つ MyForm1 という名前のフォームがある場合、イベント ハンドラーに対して次の IDE 生成宣言が作成されます。

イベント ハンドラーの本体を次のように宣言します。

ユーティリティは、OnEvent() ハンドラーの各インスタンスを検索し、イベント ハンドラーの代わりにヘッダー宣言を、イベント ハンドラーの本体宣言を置き換え、パラメーター リストを交換して結果を次のようにする必要があります。

イベント ハンドラーの本体を次のように宣言します。

そのようなツールが見つからない場合は、簡単で汚いものを自分で書きますが、時間を節約できるかどうかを尋ねてみようと思いました。そのようなリファクタリングツールを知っている人はいますか?

0 投票する
5 に答える
1565 参照

delphi - TForm に対して OnShow が呼び出されないのはなぜですか?

私は Delphi 7 のプロジェクトに取り組んでいますが、言語やランタイムにあまり詳しくありません。フォームが表示されて描画されるなどの問題をデバッグしようとしていますが、何らかの理由で OnShow イベントが呼び出されません。これはどのような場合に起こりますか?正確にどこを見ればいいですか?

0 投票する
1 に答える
3762 参照

delphi - Delphi 7 - フォームに埋め込まれたフレームの MouseWheel イベントを処理しますか?

こんにちは、いくつかのフレームを含むフォームがあります。

一部のフレームでは、コンテンツをスクロールしたい (または少なくともマウスホイール イベントを処理したい)。

私は次のことを試しました:

フレームごとに OnMouseWheel イベント ハンドラを割り当てるだけ

親フォームの MouseWheel イベントをオーバーライドします。

残念ながら、どちらも機能していないようです。

  • ケース 1 では、イベントは決してトリガーされませんが、親フォームのマウス ホイール ハンドラーはトリガーされます。
  • ケース 2 では、フォーカスを受け取るコントロールは、マウスホイール イベントを送信したいフレームを保持するパネルです。

簡単に言えば、マウスホイールイベントをマウスカーソルが上にある一番上のコントロールに向けるにはどうすればよいですか(カーソルがどのフレーム/親/フォームなどに関係なく)?

0 投票する
1 に答える
3362 参照

delphi - Delphi-TForm.showModalの非表示動作をオーバーライドします

私は現在、既存のDelphiアプリケーション用のウィンドウシステムを作成しています。

現在、このプログラムは、必要な順序でモーダルに表示される多数のフルサイズのフォームで構成されており、ユーザーが移動することはできません。私の目的は、これらすべてのフォームを移動できるようにすることです。以前はフォームが互いに積み重ねられていましたが、移動できなかったため、背景のフォームはユーザーに表示されませんでした。これまでの私の解決策は、新しい子を開くときに「親」フォームを非表示にし、その子を閉じるときにそれを再表示することでした。

残念ながら、各子はshowModalで呼び出されるため、親フォームを表示する呼び出しは、モーダルプロセスが完了し、子フォームが非表示になるまで行われないため、フォームが表示されていない場所で一瞬のフラッシュが表示されます。

プロセスの完了後にモーダルフォームが自動的に非表示になるのを防ぐ方法はありますか?これにより、親フォームが再び表示されたら、手動で非表示にすることができます。各子フォームのFormHideイベントでこれをスケジュールしようとしましたが、子フォームが自分の子の1つを開くときにも非表示になるため、これは機能しません。

編集:

これが私がこれまでにレミーのアドバイスに基づいて持っているものです

これはうまく機能しますが、唯一の問題は、子がエスケープされた後でもアクティブな繰り返しループが中断しないため、親フォームが再表示されないことです。これを解決する方法はありますか?

0 投票する
2 に答える
4884 参照

delphi - *.dfmファイルと*.pasファイルがなくても動的にフォームを作成することは可能ですか?

ソースファイルがなくてもTFormを作成して表示することは可能ですか?実行時にフォームを作成したいのですが、空の*.dfmファイルと*.pasファイルがあると役に立たないようです。

ありがとうございました