問題タブ [tcomponent]
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 - 非ビジュアル Delphi コンポーネントの設計位置にアクセスするには?
IDE でフォームを設計する場合、非ビジュアル コンポーネント(TMainMenus、TDatamodules など)を自由に配置および配置できます。位置は保持されるため、フォームをリロードすると、これらのコンポーネントが正しい場所に表示されます。
しかし、TComponent には Top または Left プロパティがありません。
では、私のコードは、非ビジュアル コンポーネントの「設計された位置」にどのようにアクセスできますか?
delphi - .Create(Application) の代わりに .Create(Nil) を使用できますか
TComponent の変数を持つユニットがあり、次のようにユニットの初期化でこのコンポーネントを作成します。
ユニットをインストールした後、Delphi を閉じたときに Access Violation エラー メッセージ (EAccessViolation) が表示される
しかし、作成者を次のように変更したとき
すべてうまくいきました...違いを知りたいですか?そして何が良いですか?
注:エラーは、デルファイを閉じるときにのみ表示されます(設計時を意味します)。
ありがとう。
delphi - デフォルトのWriteComponentアクションを使用して、Delphi TPersistentをTComponentのフィールドとしてシリアル化できますか?
TPersistentフィールドを持つTComponentからプロパティを書き出す方法について非常に混乱しています。たとえば、私は持っています:
次のライターコードを使用する場合:
私は次のものだけを取得します:
つまり、TPersistentTChildObjがありません。
コンポーネントのシリアル化に関するこの記事では、「コンポーネントはデフォルトで、TComponentではないタイプTPersistentのプロパティをストリーミングします。TPersistentプロパティはコンポーネントと同じようにストリーミングされ、ストリーミングされる他のTPersistentプロパティがある場合があります。」ただし、System.Classesにステップインすると、12950行目(XE3)付近にテストがあります。
これは、コンポーネントとサブコンポーネントのみがシリアル化されていることを示しているようです。TChildObjをTComponentから派生させる(そしてそれに名前を付ける)と、書き込まれたファイルにその名前が表示されます(ただし、プロパティは表示されません)。
私が本当に理解していないのは、TControl(コンポーネント)にはFontプロパティ(TPersistent)があり、たとえばTLabelを作成すると、これが正常にストリーミングされることです。
それとも、これはデフォルトのプロパティと関係がありますか?
助けていただければ幸いです。
android - Delphi XE5 ComponentCount セグメンテーション違反 (親の tcomponent を検索)
このコードは、指定されたルート コンポーネント内のすべての TFMXControl を収集します。親とコンポーネント名の先頭を調べます。このコードは、Win32 32.bit Windows ターゲットでは正常に動作しますが、Nexus (Android プラットフォーム) では動作せず、LANC soubrutine の最初の行でページ フォールトが発生します。何も思いつきません.. :(
これも機能しませんが、非常に簡単です。(Win32 は正常に動作) (Tform1 シンプル モバイル フォーム)
delphi - Delphi: TComponent を Clientdataset blob フィールドに保存
以下のような TComponent クラスの派生物があり、clientdataset blob フィールドに保存しようとしています: (インターネットからコピー、クレジットによる)
ファイヤーバードテーブルは…
データベースに書き込み中...
(Globalsetting は TSaveComponent です。)
データベースから読み取り中...
問題: Stream.ReadComponent(self) 行の「ストリーム読み取りエラー」が常に発生します。これを解決する方法を教えてください。
コンポーネントの保存が機能することを確認できます。テーブルを調べて、GlobalSetting で公開されたフィールドを確認しましたが、それが正しい形式であるかどうかはわかりません。(必要に応じて 16 進表現を表示できます)
編集:
ソリューション全体が IBX コンポーネントで動作します。DBExpress/Clientdataset コンポーネントでは、blob フィールドからストリームを読み取ると、常に次の結果になります。'Stream read error.'