私はVCLアプリケーションを作成しました。私のネットワークで動作するHTTPサーバーを作成する必要があります。Delphi IdHTTPサーバーがload html
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
a: TStringList;
count, logN: integer;
begin
if ARequestInfo.Document = '/' then
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentText := IndexMemo.Lines.Text;
Memo1.Lines.Add(' Client: ' + ARequestInfo.RemoteIP);
end
else
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentText := '<html><body><b>404 NOT FOUND</b></body></html>';
end;
end;
は今、私は唯一のテストケースif ARequestInfo.Document = '/' then
を持っていますが、後に、私はそれらの多くをする必要があります:私はあなたが下記を参照できるコードを作成しました。私はこの解決策を見つけた:
- ドロップ形式のメモ
- は
- メモ内のHTMLを追加し、私は考えていない
ContextText
にメモのテキストを読み込みこれは私のフォームに20個のTMemoのようにドロップしなければならないので、これは非常に効率的であり、HTMLは維持するのが難しいでしょう。私はDeployment manager
でhtmlページを読み込むことができると思った。
pages
というフォルダを作成しているDelphiのプロジェクトの同じフォルダに
、それはhtmlファイルが含まれています。私は私の質問があるので、インディHTTPサーバとHTMLページをロードする方法を確認していない:
- 私はどこかのフォルダ内のHTMLページを保存する必要があり、その後、インディ使用してそれらをロードしますか?
- [配置]ページに含まれているindyのhtmlページを読み込むことはできますか?
注:私はexeファイル+ HTMLファイルを使用して、単一の(httpサーバである)exeファイルではなくフォルダを持っていると思います。 TMemo
をたくさん使ってコードを保存しているので、私が見つけた解決策はかなりうまくいきますが、これは維持するのが容易ではありません。
いつも最高ですが、あなたはここで大きな問題を解決しました。私はそれが別のスレッドで実行されているという事実については考えていませんでした。多くのありがとう –
TranslateIntoResourceIDはどこから来たのですか? TextStartsWithと同じことですが、ARequestInfo.Document.Chars [0] = '/' then –
"* TranslateIntoResourceIDはどこから来たのでしょうか?*" - あなた自身で書く必要があります。 "* Indyの' IdGlobal'ユニットの* TextStartsWith *と同じことです。 –