問題タブ [delphi-2006]

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 投票する
2 に答える
213 参照

delphi - Delphi コードを使用して VC++ でビルドされた DLL ファイルをデバッグする方法は?

私は Delphi に取り組んでいる開発者です。私のプロジェクトでは、VC++ でビルドされた DLL ファイルを追加しました。いくつかの問題を修正するために、DLL ファイルをデバッグする必要があります。

では、Delphi コードで DLL ファイルをデバッグするために必要な手順は何ですか?

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

delphi - DelphiのTSplitterとパネルでこの望ましくない動作を回避するにはどうすればよいですか?

含まれているのは、私の問題を示す小さなプロジェクトです。私はTPageControlメインフォームに合わせています。2つのタブシートのそれぞれに、パネルのクライアントを揃えています。これらの各パネルには、2つのサブパネルとスプリッターがあります。LHパネルとスプリッターは左に配置され、RHパネルはクライアントに配置されます。

基本的に、問題は2つのタブ間の相互作用です。実証するために:

  • プログラムを実行する
  • メインフォームを水平に伸ばします。パネル3は成長します
  • スプリッターを右端まで移動します。パネル2は拡大し、パネル3は10ピクセルの最小幅の制約まで縮小します。
  • タブシート2を選択します。パネル5は設計どおりで、メインフォームが引き伸ばされたときにパネル6が大きくなりました。
  • メインフォームの幅を元の幅に減らします。パネル6の収縮が大きすぎる(望ましくない)
  • タブシート1をクリックします。メインフォームの幅が再び大きくなります(望ましくありません)

OK、動作はおそらく整列されたパネルのルールの観点から説明できますが、誰かが操作の改善を提案できますか?

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

delphi - AlphaBlendValue プロパティを Delphi の TImage に追加する最も簡単な方法は何ですか?

疑わしいパラメーター値がある場合に表示されるダイアログに「注意」イメージがあります。ユーザーは常にそれに気付くとは限らないので、1 秒程度で周期的にフェードインおよびフェードアウトしたいと考えています (そうです、Visible プロパティを切り替えることもできますが、Visible プロパティを切り替えただけのように見えます)。それを独自のフォームに配置してダイアログ上に浮かせる (そしてフォームの AlphaBlendValue プロパティを変更する) よりも簡単な方法はありますか?

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

delphi - PNG画像をフェードするこのD2006コードが機能しないのはなぜですか?

この質問は以前の質問から生まれました。ほとんどのコードは、Delphi の以降のバージョンでおそらく機能する、提案された回答からのものです。D2006 では、不透明度の全範囲を取得できず、画像の透明部分が白く表示されます。

画像はhttp://upload.wikimedia.org/wikipedia/commons/6/61/Icon_attention_s.pngからのものです。
DFM が保存された後、画像がそのまま残らないため、実行時に PNGImageCollection から TImage に読み込まれます。動作を説明する目的では、おそらく PNGImageCollection は必要なく、設計時に PNG 画像を TImage にロードし、IDE から実行するだけで済みます。

フォームには 4 つのボタンがあり、それぞれが異なる不透明度の値を設定します。不透明度 = 0 で問題なく動作します (ペイントボックスの画像は表示されません。不透明度 = 16 は白い背景を除いて問題ないように見えます。不透明度 = 64、255 も同様です。不透明度は約 10% で飽和しているようです。

何が起きているかについてのアイデアはありますか?

** このコード (graphics32 TImage32 を使用) はほぼ動作します **

** (UPDATE) このコード (graphics32 TImage32 を使用) は動作します **

次のコードは、実行時に PNG 画像を Graphics32.TImage32 に割り当てることに成功しています。アルファ チャネルを持つ PNG 画像は、設計時に TPNGImageCollection (任意のサイズの画像を混在させることができるため、非常に便利なコンポーネント) に読み込まれます。フォームの作成時にストリームに書き込まれ、 LoadPNGintoBitmap32 を使用してストリームから Image32 に読み込まれます。これが完了したら、TImage32.Bitmap.MasterAlpha に割り当てることで不透明度を制御できます。OnPaint ハンドラを気にする必要はありません。

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

delphi - メイン フォームのサイズ変更で長い遅延の原因を特定するにはどうすればよいですか?

タブにページ コントロールやさまざまなグリッドなどを含む D2006 アプリがあります。メイン フォームのサイズを変更すると (何かに合わせてフォーム上のほぼすべてが波及してサイズ変更されます)、数秒などの長い遅延が発生します。アプリがフリーズし、アイドル ハンドラーが呼び出されず、実行中のスレッドも停止しているように見えます。

問題のあるコード内で実行を中断しようとして、これが発生している間、IDE で実行を一時停止しようとしましたが、IDE はメッセージを受け取りません。

明らかに、誰かが間違ったコードを指摘してくれるとは思っていませんが、助けになる可能性のあるアプローチをデバッグした後です。アプリ全体に大規模な実行タイミング コードがあり、長い遅延はどのデータにも表示されません。たとえば、メイン フォームの OnResize ハンドラの実行時間は最小限です。

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

delphi - Delphiプロジェクトに関連付けられているすべてのソースファイルを見つける簡単な自動化された方法はありますか?

バージョンをリリースするときに、プロジェクトのソースコードセットをバックアップするのが好きです。私はGExpertsプロジェクトバックアップを使用しています。これは、プロジェクトマネージャー内のすべてのファイルをZIPファイルにまとめているようです。このファイルセットに任意のファイルを追加することもできますが、必ずしもすべてのファイルを取得しているわけではないことを常に意識しています。特にuses句を調べて、ソースのあるすべてのユニットをプロジェクトに追加しない限り、インストール可能ファイル/実行可能ファイルを再作成するために必要なすべてのファイルを確実に保存することはできません。

アプリをローリングしてプロジェクトをトラバースし、使用されているすべてのユニットを追跡し、すべての検索パスを調べて、そのユニットで使用できるソースファイルがあるかどうかを確認し、その方法でバックアップするファイルのリストを作成することを考えました。しかしねえ-多分誰かがすでに仕事をしましたか?

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

delphi - Delphi - 繰り返される「ゴースト」トレイ バルーン ポップアップのソースを見つけるにはどうすればよいですか?

トレイ バルーン ヒントを介してさまざまなイベントを通知する D2006 アプリがあります。頻繁ではありませんが、アプリの呼び出しの 10 回に 1 回の頻度で、ヒントの 1 つが何度も何度もポップアップすることを決定します... 永遠に。それを止める唯一のことは、アプリを閉じることです。

アプリが別のバルーン int を発行すると、ファントム ヒントが置き換えられますが、新しいヒントがタイムアウトした後、ファントム ヒントが返されます。同様に、ファントム ヒントを閉じると、すぐに戻ります。

ヒントを作成するコードが繰り返し呼び出されていないことを確認しました。そのヒントは、どこか腸の奥深くから発生しています。

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

sql-server - RTF 画像データをプレーン テキストに変換する (SQL Server および Dephi BDS 2006)

しばらくの間、これに苦労していました。画像タイプのデータを持つ古いテーブル (SQL Server) があります。テキストを取得したい。

これまでのところ、これは私がやったことです。

  • 変換またはキャストを試みます (許可されていません)
  • SP を呼び出して、データを Delphi に持ち込もうとします (バリアントにデータを割り当てるところまで来ました)。
  • RTFからテキストへの関数を調べました(画像データを文字列に入れることができれば、SOで何かが見つかりました)。

これは私がこれまでに持っているコードです。今のところボタンクリックに添付されています(サービスで実行されます)。report var への代入が正しくないと思いますし、SetString も正しくない可能性があります。私がこれを正しい方法で行っているかどうかさえわかりません。

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

delphi - Delphi 2006:PNGをTImageに実行時に割り当てると、アルファ透明度が失われます

Delphi2006のTImageはPNGを完全にはサポートしていません。フォームにアルファ透明度の画像を表示するには、実行時に画像を読み込む必要があります。設計時にロードすることはできますが、PNGがDFMファイルに保存されていないため、存続しないと思います。最新のDelphiでは、これはすべて厄介なことだと確信していますが、現時点ではアップグレードできません。

とにかく、私は実行時にそれらをロードしていました:

PNGImageCollectionコンポーネントは、さまざまなサイズのすべてのPNGを保持し(これらは設計時に作成およびロードされます)、FormCreateイベントでそれぞれのTImageに割り当てます。

フォームで使用した後、これらの画像の1つを別の場所で再利用しようとして問題が発生するまで、これは問題なく機能しました。TPictureを割り当てる行為により、Assignの結果としてTPictureが空の画像に設定されていることがわかりました。これは、ルーチンTPicture.ForceTypeで発生していました。このルーチンは、AFAICTがFGraphicのタイプをチェックし、目的のタイプでない場合は、FGraphicを解放して、要求されたタイプの新しいインスタンスを作成します。

わかった。少しスクラッチした後、多分私は本当にこれを行うべきであることがわかります:

これは、Assignが画像を覆い隠さなかったという点でトリックを行いましたが、画像は半透明のビットで不透明として表示されます。

Image1.Picture.Bitmap.Assignで割り当てられた場合のTImage

それ以外の:

Image1.Picture.Assignで割り当てられた場合のTImage

この画像でアルファ透明ビットを正しく表示するにはどうすればよいですか?(および補足の質問:Image1.Picture.Bitmap.Assignはそれを行う正しい方法ですか?)

コードをもう少し詳しく説明します。

TImageの「再利用」に問題があったコードでは、シーケンスは次のとおり
でした。

(PNGIMageは会社のロゴであり、LogoImage1はメインフォームにあります)。

印刷レポートヘッダー:

ロゴを印刷するルーチンが最初に呼び出されると、エラーなしで実行されますが、PrintBitmapRectの呼び出し後、LogoImage.Pictureはクリアされたままになります。次に印刷ヘッダールーチンが呼び出されると、画像の幅と高さがゼロであるため、CalcGraphicHeightの呼び出しは失敗します。

Picture.AssignをPicture.Bitmap.Assignに変更すると、ヘッダー印刷ルーチンのRTEが修正されますが、同じ「修正」をPNGから割り当てられた他の静止画像(上記の歯車など)に移植すると、aplhaチャネルが失われました。

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

delphi - DBGrid コンポーネントは、表示する最初の列幅をどのように決定しますか?

DBGrid (実際には TMS の DBGrid) で列幅を保存/リロードするのに苦労しています。TMS には、正しく機能している列幅を保存/再ロードするための組み込みメソッドが含まれています (ini ファイルで値を読み取ることができます)。ただし、私のコードのどこかで、保存されている値が上書きされています。問題をデバッグできるように列幅がどのように決定されるかについて、私は十分に知りません。

グリッドは最終的に ClientDataSet ファイルに接続されます。