問題タブ [delphi-xe3]

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 に答える
638 参照

sql-server - Delphi XE 3 LiveBindings AutoInc SQL Server

SQL Server への LiveBinding を備えた Delphi XE3 Firemonkey アプリがあります。グリッド上のすべてのデータを接続して表示できます。SQL の「ID フィールド」(より一般的には AutoInc として知られている) であるフィールド (「id」) があります。

レコードを追加しようとすると、「フィールド 'id' には値が必要です」というメッセージが表示されます。

これまでは、必須フィールドのブール値をオフにすることでこれを修正していました。(たとえば、DBISAM では、データベース自体のフィールドを不要にし、そこに到達すると DB エンジンが入力しますが、MSSQL で ID フィールドを不要にすることはできません。)

TField 自体の要件をオフにしましたが、効果はありません。

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

delphi - firemonkey xe3 xe2 TPath

コードに従って実行すると、パスはxe2では形が良くなりますが、xe3ではばかげています。

0 投票する
0 に答える
279 参照

delphi - Firemonkey ドラッグ画像が画面に表示されない

次の最初の画像は仮想マシンから取得したもので、2 番目の画像は実際の PC から取得したものです。ドラッグした画像が実際の PC に表示されないのはなぜですか?

仮想マシン

ここに画像の説明を入力

リアルPC

ここに画像の説明を入力

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

delphi - WebApplication.SendFileが「応答タイプがすでに設定されている」と失敗するのはなぜですか?

手順:

  1. を使用して新しいIntraWebアプリケーションを作成しましたIntraWeb Application Wizard
  2. フォームにTIWButtonを配置しました。
  3. このコードをOnClickイベントハンドラーに配置します。

WebApplication.SendFile('D:\Temp\ClearAll.sql');

ボタンをクリックするExceptionと、メッセージ付きのタイプの例外が発生しますReply type already set

何が悪いのか考えてみませんか?

Delphiは、IntraWebXIVを備えたXE3です。

Deplhi 2007(IntraWeb 9)でも同じことを試しましたが、動作するので、これはIntraWebXIVのバグのようです。

誰かがこれを確認できますか?

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

delphi - Firemonkey livebindings カスタム グリッド列

TGrid にいくつかのカスタム列を追加しようとしました。たとえば、TCalendarEdit で構成される列を DB にライブバインドします。
このようなものを実装する方法として、2 つの方法を考え出しました。

  1. CalendarEdit をすべての行に配置します。
    問題は次のとおりです。カスタム TCalendarEdit 列を作成 してグリッドに配置できます が、それをデータセット にライブバインドする と、デフォルトの文字列列ビューにドロップされます!
    TDateColumn = class(TColumn)
    protected
    function CreateCellControl: TStyledControl; override;
    end;
    function TDateColumn.CreateCellControl: TStyledControl;
    begin
    Result := TDateCell.Create(grid);
    Result.Parent := grid;
    end;


    procedure TForm1.FormCreate(Sender: TObject);
    var
    cec: TDateColumn;
    begin
    cec:=TDateColumn.Create(grid1);
    grid1.AddObject(cec);
    end;

    LinkGridToDataSource1.Columns.Items[LinkGridToDataSource1.Columns.Count-1].MemberName:='date';

  2. グリッドセルにコントロールを描画し、それをクリックして破棄し、グリッド上の他の場所をクリックします(データをグリッドに書き込みます)。
    問題は次のとおりです:セルOnClickの座標とサイズを取得するにはどうすればよいですか?

ありがとうございました。

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

performance - XE3 の自動更新によるライブ バインディング (XE2 のように Notify() を呼び出す必要はありません)

私は現在 Delphi XE2 を使用しており、XE3 での自動更新による新しい Live Binding について聞きました (XE2 のように Notify() を呼び出す必要はありません)。

C# または Delphi XE2 ではINotifyPropertyChanged( Notify();Delphi で) 実装する必要がありますが、このアプローチは本当に理にかなっています。なぜなら、更新するコンテンツといつ更新するかを完全に制御できるため、パフォーマンスを微調整して仮想化を簡単に実装できるからです。

しかし、私はそれがどのように機能するのか、それを実装するために彼らがどのようなメカニズムを行ったのかを知りたいだけであり、彼らがどのようにそれを行ったのかわかりません。自動更新を実装するために使用された可能性のある仮定は次のとおりです.

  1. タイマー : タイマーが頻繁に作動し、すべてのデータを更新します

    パフォーマンスが非常に遅い 仮想化なし

  2. コンパイラ レベルの機能 :notify() eventsコンパイラによって自動的に実装されるすべての関連コード

    オーバーヘッドが多い

  3. いくつかの他のアプローチ:

彼らがそれをどのように実装したかを特定するのを手伝ってください。

現在、XE3 の試用版を使用しているため、ソース コードにアクセスできません。あなたの回答は、新しい機能に切り替えるかどうかを決定するのに役立ちます
バインドする 400 個のプロパティを持つクラス (コレクション アイテム) があるため (常にすべてではありません)、アプリケーションの安定性においてパフォーマンスが大きな役割を果たします。

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

delphi - Delphi で特定のインターフェイスの一般的なリストを作成できますか?

C# では、次のような特定のインターフェイスを含む汎用リストを作成できます。

Delphi XE3 で同じことを行うことはできますか?

インターフェイスのリストを格納するために TInterfaceList を作成できることはわかっていますが、厳密に型指定されていないため、リスト内のオブジェクトを使用するときにキャストする必要があります。

これを行う強く型付けされた方法はありますか?

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

macos - Filesetattr は XE3 (Firemonkey) では使用できません

Firemonkey(XE3)でmacosX環境下に隠しiniファイルを作りたいです。残念ながら、このコマンドは system.utilys ではもう知られていません

誰かヒント?

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

delphi - DelphiXE-System.Pos関数のより高速な代替

FastStringsの多くのコードがDelphiXEに含まれていることを私は知っています。数千のファイルを処理し、テキスト処理を行う必要があります。System.Posルーチンの「より高速な」代替手段はありますか?

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

delphi - Delphi XE2 RTTIが壊れていますか?

最近、D2010からDXE2に移行し、クラス内のTBytesフィールドのRTTI生成に関連するXE2およびXE3(友人のXE3でテスト済み)にショートッパーのバグ(または機能?)を見つけました。

クラス内のTBytes変数のRTTI情報が生成されないことがわかりました。

次のコードはD2010で正常に機能しますが、XE2/XE3で「エラー」というメッセージが表示されます。

誰か手がかりはありますか?これにより、すべてのソフトウェアデータシリアル化の実装が完全に破壊されます

コードをテストするには、Rttiユニットをuses宣言に追加してください

FieldTypeは常にnilであるため、TBytesであるField2をチェックすると、エラーメッセージが表示されます。

D2010からRTTIで何が変更されたのかXE2の手がかりを持っている人はいますか?おそらく、TBytesタイプがByteの配列から汎用配列に変更されたためですか?