Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2016, 00:52   #1
nobobic
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 18
По умолчанию delphi xe7 IdHTTPServer1 перехват картинок изображений

Всем привет помогите исходником как перехватить изображения?
пример исходный код www/страницы скопировал и ставил в мемо все показывает кроме изображений =(

Код:
unit Unit1;

interface

uses
  Windows, winsock, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Vcl.Menus, Vcl.StdCtrls, IdBaseComponent, IdComponent,
  IdCustomTCPServer, IdTCPServer, IdTCPConnection, IdTCPClient,
  IdCustomHTTPServer, IdHTTPServer, IdContext, StrUtils;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    IdHTTPServer1: TIdHTTPServer;
    Jxbcnbnm1: TMenuItem;
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure IdHTTPServer1CommandGet(AContext: TIdContext;
      ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
    procedure Jxbcnbnm1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function LocalIP: string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array [0..63] of Ansichar;
  i: Integer;
  GInitData: TWSADATA;
begin
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(Buffer);
  if phe = nil then
    Exit;
  pptr := PaPInAddr(phe^.h_addr_list);
  i := 0;
  while pptr^[i] <> nil do
  begin
    Result := StrPas(inet_ntoa(pptr^[i]^));
    Inc(i);
  end;
  WSACleanup;
end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
try
    AResponseInfo.ContentType := 'text/html; charset=utf-8';
        AResponseInfo.ContentType:='Content-Type: text/plain';

     AResponseInfo.ContentText := memo1.Text;
 except
    MessageBox(handle,'Загрузить страницу не удалось.','Внимание',$30);
 end;
end;

procedure TForm1.Jxbcnbnm1Click(Sender: TObject);
begin
memo1.Clear;
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin
if Memo1.Text='' then Memo1.ScrollBars:=ssNone//если пусто, нет прокрутки
else if Memo1.Lines.Count>7 then Memo1.ScrollBars:=ssboth;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
IdHTTPServer1.Active := false;
     IdHTTPServer1.DefaultPort:= 80;
     try
        IdHTTPServer1.Active := true;
     except
        raise;
     end;
     if IdHTTPServer1.Active then
     begin
       memo1.lines.add(LocalIP+': Сервер запущен');
     end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
try
        IdHTTPServer1.Active := false;
     except
       raise;
     end;
     if not IdHTTPServer1.Active then
     begin
      memo1.lines.add(LocalIP+': Сервер остановлен');
     end;
end;

end.
nobobic вне форума Ответить с цитированием
Старый 13.01.2016, 10:37   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

А изображения и не будут показываться, у вас нет этих файлов на диске по указанным путям.
Используйте отладчик в браузере. чтобы видеть откуда пытается качать картинки страница, полученная из самописного сервера. Подкиньте из туда, и увидите что браузер откроет.

Последний раз редактировалось Человек_Борща; 13.01.2016 в 10:43.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоуроки по Delphi xe7 SASFM Общие вопросы Delphi 11 20.01.2016 22:21
TLabel в Delphi xe7 SASFM Общие вопросы Delphi 0 06.01.2016 19:19
Установка на Embarcadero RAD Studio XE7 -->DevExpress VCL 14.1.2 XE7 xxbesoxx Свободное общение 4 03.06.2015 21:54
Delphi 7 Speech API ошибка в Delphi XE7 nobobic Общие вопросы Delphi 0 03.06.2015 13:17
IdHTTPServer1 отловить ошибку Lui C++ Builder 0 15.02.2013 13:27