問題タブ [delphi-xe]
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 XE で UnicodeString を PAnsiChar に変換する
Delphi XE では、この関数を含むBASS オーディオ ライブラリを使用しています。
'url' パラメーターは PAnsiChar 型なので、私のコードでは次のようにキャストします。
コンパイラは、次の行に警告を発します: 「PAnsiChar への文字列のタイプキャストが疑わしい」。警告を排除しようとして、推奨される方法は二重キャストを使用することであることがわかりました。
これにより警告はなくなりますが、BASS 関数はエラー コード 2 (「ファイルを開けません」) を返すようになりました。これは、受け取った URL 文字列が壊れていることを示しています。Bass DLL が実際に何を受け取るかはわかりませんが、デバッガーでブレークポイントを使用すると、文字列は問題ないように見えます。
この時点で文字列 s は問題ないように見えますが、渡すと BASS 関数が失敗します。私の最初のコード: PAnsiChar( url ) は BASS でうまく動作しますが、警告を出します。
では、警告なしで UnicodeString から PAnsiChar に取得する正しい方法は何ですか?
delphi - UnicodeのメッセージダイアログでASCIIアートシンボルを使用する方法-デフォルトではDelphiXEアプリケーション
件名のオファーを検索しましたが、正しく取得できませんでした...
間違えたらごめんなさい。もしそうなら、ここで正しい質問を指してください。
さて、ビジネスに戻ります。状況:アプリケーションの一部のイベントの単純な「ステータスブリーフィング」プロバイダーとしてShowMessage()を使用しています。
今、それを磨きたいので、拡張ASCIIテーブルを使用したいのですが、それらにアクセスするための最良の方法を選択することはできません。たぶん私はその魔法の機能を知らないだけです...
OEMToANSI / OEMToCharおよびその逆の関数を使用するアプローチは次のとおりです:http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20381022.html。おそらく次の理由で、運が悪かったので試してみました。
EDN/MSからの構文-ヘルプ
BOOL OemToChar(LPCSTR lpszSrc、LPTSTR lpszDst);
パラメーター
lpszSrc[in]OEM定義の文字セットからのnullで終了する文字列へのポインタ。
lpszDst[out]変換された文字列のバッファへのポインタ。
OemToChar関数がANSI関数として使用されている場合、lpszDstパラメーターをlpszSrcパラメーターと同じアドレスに設定することにより、文字列をその場で変換できます。OemToCharがワイド文字関数として使用されている場合、これは実行できません。
必要なのはChar(Ord(170));です。、Char(Ord(180)); およびChar(Ord(190))-http: //www.asciitable.com/。明らかに、デフォルトのWINXPコードページでは使用できません。今、私は少しグーグルして、この解決策を見つけました:
FormShowイベントコード:
また、これらのフォントは正しく表示されます>> Courier New Lucida Console MS Mincho
さて、問題は、Windows Dialogs(API)がShowMessage()をトリガーするOEM文字セットwithprocedureを使用するための最良の方法は何でしょうか。?ShowMessage();をオーバーライドします。?いくつかのリッチエディット機能を継承しますか?さまざまなOwnerDraw()またはWndProc()アプローチ...オプションが多すぎますが...これは...混乱しています。:(
もちろん、主観的に最も効果的で最もコードのないソリューションを選択して指摘するのを手伝ってください。
delphi - Delphi XE と DataSnap で Indy 10.5.8.0 を使用することは可能ですか?
ケース
INDY を Delphi XE の最新バージョン (Update 1) に更新しようとしているので、indy.fulgan.com/ZIP から最新の INDY10 ファイル (Indy_4545.zip) をダウンロードしました。
パッケージは正常にコンパイルされ、アバウト ボックス ダイアログに新しいバージョン 10.5.8.0 が表示されるようになりましたが、IDE の再起動後に次のようなメッセージが表示されました。
@Idhttp@TIdCustomHTTP@GetRequestHeaders$qqrv en la biblioteca de vínculos dinámicos IndyProtocols150.bpl.
私の英語への無料翻訳:
プロシージャ @Idhttp@TIdCustomHTTP@GetRequestHeaders$qqrv のエントリ ポイントが見つかりません ダイナミック リンク ライブラリ IndyProtocols150.bpl で見つかりません。
古い IdHTTP.pas と新しい IdHTTP.pas を簡単に比較した後、いくつかのメソッドの名前変更を含め、TIdCustomHttp クラスに多くの変更を見つけました。
- GetResponseHeaders から GetResponse へ
- GetRequestHeaders から GetRequest へ
- SetRequestHeaders から SetRequest へ
this および other およびクラス インターフェイスの public/published メソッド会社の変更に伴い。
更新後、dclcxPivotGridOLAPD15.bpl を含む多くのパッケージの読み込みに失敗しました。これは、bpl で不足しているメソッドを検出した dclDataSnapServer150.bpl に依存しています。
私の知る限り、dclDataSnapServer150.bpl を再コンパイルできません (他の失敗したパッケージもあるかもしれませんが、ここでやめました)。
IDE での DataSnap と DevExpress のサポートは、私の日常の必需品です。
質問
- Delphi XE 用の最新の INDY に更新するための事前に確立された安全な方法はありますか?
- そうでない場合は、古いパブリック メソッドを作成し、実装部分で新しいメソッドを呼び出すことによってソース コードをパッキングするだけで、安全な側にいますか?
- それとも、次の Delphi マイナー/メジャー リリースまで INDY 10.5.7 に固執していますか?
delphi - ストリームからTIconに特定のアイコンサイズをロードする
私のアプリケーションは、特定のWebサイトのファビコンをダウンロードして表示します。ストリームから画像形式を検出するためのBingのソリューションに従いましたが、別の問題が発生しました。実際のアイコン画像を想定すると、コードは次のようになります。
(spFaviconはRaizeコンポーネントのTRzGlyphStatusです。そのGlyphプロパティはTBitmapです)
現在、これは機能しますが、ダウンロードされたアイコンに、予想される16x16に加えて、32x32など、さまざまなサイズの複数の画像が含まれる場合があります。何らかの理由で、コントロールのGlyphプロパティは大きいサイズを選択します。
16x16サイズのみをTIconにロードする、またはTIconからTBitmapにロードするにはどうすればよいですか?
ファビコンのテスト:http ://www.kpfa.org/favicon.ico
編集時:可能であれば、最初にアイコンをファイルに保存することは避けたいと思います。
delphi - Object Inspector に表示される TColor プロパティの値を増やすにはどうすればよいですか?
IDE Object Inspector は、TColor プロパティをドロップダウン ColorBox で表示し、グラフィック ユニットで定義されているように、clBlack などの名前で色を選択できます。問題は、Graphics ユニットでも定義されている clWeb カラーが存在せず、定義したカスタム カラーも存在しないことです。
では、オブジェクト インスペクタで選択可能な定義済みの色を拡張するにはどうすればよいでしょうか。
PS Delphi XE
delphi - 2つのTStreamのコンテンツを比較するDelphi関数?
2つのTStreamの子孫が同じコンテンツを持っているかどうかを比較する必要があります。私にとって唯一の興味深い結果は、ブール値のはい/いいえです。
ストリームのコンテンツをバイトごとにチェックする単純なループをコーディングします。
しかし、既存の関数があるかどうか知りたいです。DelphiXEまたはJCL/JVCLライブラリ内に何も見つかりませんでした。
もちろん、2つのストリームのサイズは同じです。
delphi - Delphi:ZLibCompressionフィルターをdatasnap-xeサーバーに登録する方法
問題:
DataSnap-XEサーバーでZLibCompressionフィルターを使用しています。
クライアントは常に次のエラーにメッセージを表示します。
「Borland.Data.TDBXError:通信フィルターZLibCompressionが登録されていません。サーバーと通信するには、フィルタークラスを登録する必要があります。」
質問1
ZLibCompressionフィルターを登録するにはどうすればよいですか?
編集
質問2
DataExplorerのDatasnap-Connectionをこのサーバーにリンクさせるにはどうすればよいですか?
delphi - メモリからフォームを破棄 (解放) するにはどうすればよいですか?
プロジェクトに 2 つのフォーム (Form1 と Form2) があり、Form1 は自動作成フォームですが、Form2 は使用可能なフォームです。Form2 を作成して Form1 をアンロードするにはどうすればよいですか?
このコードで「アクセス検証」エラーを受け取りました。
Form1 コードは次のとおりです。
ありがとう。
その「Serg」コードを次のように変更しました。
///
しかし、このプロジェクトは自動的に開始して終了します。なぜですか? Form1 を表示したいのですが、Button1 をクリックすると、Form2 と free(Release) Form1 が表示されます。どうすればこれにできますか?
delphi - メイン フォームの前にセット構成用のフォームを表示するにはどうすればよいですか?
私のプロジェクトには2つのフォーム(form1、form2)があり、form1は構成フォームです。
Form1 を表示したいのですが、Button1 をクリックすると、Form2 と free(Release) Form1 が表示されます。どうすればこれを行うことができますか?
私はこのコードを使用します。しかし、このプロジェクトは自動的に開始して終了します。友人は、アプリケーション メッセージ ループが開始されず、メイン フォームが存在しないためにアプリケーションが終了するためと述べました。どうすればこの問題を解決できますか?
///
delphi - ジェネリック型へのポインタは Delphi XE でサポートされていますか?
私は D2010 を使用していますが、64 ビット版がリリースされるまで使用し続ける必要があります。
ジェネリックでは、ジェネリック型へのポインターはサポートされていませんが、非常に便利だと思います。SO (2009 年の投稿) の他の場所で読みましたが、Barry Kelly 卿は、これは将来変更される可能性があると考えていました。これが XE でサポートされているかどうかは誰にもわかりませんか?
そうでない場合は、XE2 に組み込まれることを切に願っています。
ありがとう。