Thema: Delphi Cover von Amazon?

Einzelnen Beitrag anzeigen

mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Cover von Amazon?

  Alt 23. Sep 2009, 20:05
Teil 2

Nun kommt der Delphi-Teil

Oberfläche:

Wir benötigen 3 Edit-Kompos, 1 Indy-HTTP-Client, 4 Labels, 1 Memo, 1 Button, 1 Image-Kompo und ein TWebBrowser.

Schiebt euch die Kompos nach belieben zusammen, da die meisten Kompos, bis auf Image1, Edit1, Button1, TWebBrowser nicht sichtbar sind. (Eigenschaften - Visible)

Setzt nun die Eigenschaft Width von TWebBrowser auf 0. Damit ist dieser auch nicht mehr zur Laufzeit zu sehen.

Der Quelltext:

Delphi-Quellcode:
unit CoverUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, ExtCtrls, DynamicSkinForm,
  SkinCtrls;

type
  TCover = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    WebBrowser1: TWebBrowser;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Edit3: TEdit;
    Image1: TImage;
    Label3: TLabel;
    Label4: TLabel;
    spDynamicSkinForm1: TspDynamicSkinForm;
    spSkinPanel1: TspSkinPanel;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    FTime: Longword;
    FBytes: Longword;
  public
    { Public-Deklarationen }
  end;

var
  Cover: TCover;

implementation

{$R *.dfm}

//Werte an die PHP übergeben
//Hier werden alle benötigten Infos an unser Script Get-Methodenmäßig übergeben
procedure TCover.Button1Click(Sender: TObject);
var rubrik, seite, schluesselwort, check: String;
begin
 rubrik:='Music';
 seite:='1';
 schluesselwort:=Edit1.Text;
 check:='nennen wir diesen jetzt mal "sehr einfallsreich';
 WebBrowser1.Navigate('http://euer Server.de/Dateiname des Scripts.php?rubrik1='+rubrik+'&seite1='+seite+'&schluesselwort1='+schluesselwort+'&check1='+check);
end;

//Unser Script gibt nun die korrekte URL zum gesuchten Begriff aus
// Diese URL (vielmehr datei downloaden wir jetzt
//Danach parsen wir die Datei in das Memo1 und löschen diese wieder von unserer Festplatte
//Aus Memo1 wird nun das gewünschte Bild(URL) gefiltert und an Edit3 aufbereitet übergeben.
//Jetzt wird Die Datei runtergeladen und in Image1 angezeigt
procedure TCover.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var DownloadStream: TFilestream;
    Liste: TStrings;
    myString : String;
    ipString : String;
    i : Integer;
begin
 Label1.Caption:=ExtractFilePath(ParamStr(0))+
    'Conf\data\temp.html';
 Label4.Caption:=ExtractFilePath(ParamStr(0))+
    'Conf\data\temp.jpg';
 Edit2.Text:=WebBrowser1.LocationURL;
 Label2.Caption:=Edit2.Text;
 DownloadStream := TFileStream.Create(Label1.Caption,fmCreate);
  try
    IDHTTP1.Get(Label2.Caption, downloadstream);
  finally
    DownloadStream.Free;
  Liste := TStringlist.Create;
  Liste.LoadFromFile(Label1.Caption);
  Memo1.Lines.AddStrings(Liste);
  Liste.Free;
  myString := Memo1.Text;
  i := Pos ('ecx',mystring);
  Delete (myString,1,i);
  i := Pos ('"',mystring);
  ipString := Copy(myString,1,i-1);
  Edit3.Text := 'http://e'+ipString;
  Memo1.Clear;
  DeleteFile(Label1.Caption);
  DownloadStream := TFileStream.Create(Label4.Caption,fmCreate);
  IDHTTP1.Get(Edit3.Text, downloadstream);
  DownloadStream.Free;
  Image1.Picture.LoadFromFile(Label4.Caption);
  end;
end;

end.
Das wars. Ich wünsche nun viel Spass beim nachbauen. Sollte es Schwierigkeiten, Verbesserungsvorschläge und/oder Kritik geben, einfach posten. Auch ich bin nicht perfekt!!!

Auch Erfolgsergebnisse könnt ihr mir posten. Eine PN tuts auch.

lg, Mario

PS: An Euch Moderatoren: Wenn ihr der Meinung seit, dass dies ein Eintrag in der Code-Libary wert ist, dann nichts wie rein damit. Das wäre denn mein erstes Example.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat