Avatar billede janbb Juniormester
30. november 2005 - 13:41 Der er 17 kommentarer og
1 løsning

webbrowserfunktion: picturefile/save

Har lavet en form med en webbrowser, der åbner nogle jpg-filer udfra optegnelse i en listbox.Filnavnet vises med sti i et editfelt.Jeg kunne tænke mig at kunne gemme billedfilen , der vises i webbrowseren - under et andet navn og muligvis osse et andet bibl..
Kan det lade sig gøre - indenfor grænserne af det overkommelige ?.

Formen er simpelt bygget op noget lignende som:

unit Unit8;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw, StdCtrls;

type
  TForm8 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    ListBox1: TListBox;
    WebBrowser1: TWebBrowser;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form8: TForm8;

implementation

{$R *.DFM}

procedure TForm8.FormCreate(Sender: TObject);
begin
Listbox1.Items.LoadFromFile('.\test3.txt');
end;

procedure TForm8.ListBox1Click(Sender: TObject);
begin
edit1.text :='';
edit1.text :='C:\picture2\';
edit1.text := edit1.text+(listbox1.items[listbox1.itemindex]);
webBrowser1.Navigate(Edit1.Text);
end;

end.
Avatar billede kroning Nybegynder
30. november 2005 - 13:44 #1
Jeg går ud fra at grunden til at du bruger TWebBrowser er at du også skal kunne vise billeder der ligger på nettet, eller hva?
Avatar billede janbb Juniormester
30. november 2005 - 14:19 #2
nej slet ikke nødv - kun lok filer er ok
Avatar billede kroning Nybegynder
30. november 2005 - 14:21 #3
Hvorfor bruger du så TWebBrowser, er det ikke lidt overkill eller er der noget jeg ikke tænker på?
Avatar billede janbb Juniormester
30. november 2005 - 14:23 #4
Picturestreams og andre mystiske ting er simpelthen for kompliceret til mit lille hobbyprogram til familiebilleder.
Avatar billede kroning Nybegynder
30. november 2005 - 14:25 #5
Kan en TImage ikke bruges, den er da noget lettere at rode med end TWebBrowser, og er er både load og save funktioner.
Avatar billede janbb Juniormester
30. november 2005 - 14:26 #6
Har skam set stoneys flotteprogram med DB og det hele, men vil gerne selv kunne overskue programmeringsindholdet en lille smule :=)
Avatar billede janbb Juniormester
30. november 2005 - 14:28 #7
Men det anede mig at det ikke var så ligetil - det er ok så.
Avatar billede kroning Nybegynder
30. november 2005 - 14:28 #8
Jow, men hvorfor så ikke bruge en TImage?
Avatar billede janbb Juniormester
30. november 2005 - 14:33 #9
Hvis du kan konvertere programstumpen til TImage uden gevaldige gebrækkeligheder vil jeg da være dybt taknemmelig, men har set på andre programmer gennem tiden og det forekommer temmelig indviklet ? - eller ?.
Avatar billede kroning Nybegynder
30. november 2005 - 14:35 #10
Den TImage jeg tænker på er den komponent der findes under Additional fanen i delphi.
Avatar billede janbb Juniormester
30. november 2005 - 14:41 #11
Jeg kender godt TImage og ved at load og save er simpelt her, men ellers er jeg lidt blank.

Stoneys eks. gør mig bare forvirret:

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
  jpg:TJpegImage;
  memStream:TMemoryStream;
  blob : Tblobfield;
begin
image1.picture.Assign(nil);

  // her checkes for JPG
    if lowercase(adoquery1.FieldByName('ext').AsString) = '.jpg' then
                  begin

                    memStream:=TMemoryStream.Create;
                    try
                      jpg:=TJpegImage.Create;
                          try
                          if not (adoquery1.FieldbyName('billede') as TBlobfield).IsNull
                            then begin
                                (adoquery1.FieldbyName('billede') as
                                  TBlobfield).SaveToStream(memStream);
                                  memStream.Seek(0,0);
                                  jpg.LoadFromStream(memStream);
                                  Image1.Picture.Assign(jpg);
                                  end;
                                    finally
                                        jpg.free;
                                        end;
                                        finally
                                        memStream.free;
                                          end;
end;

    // her checkes for bmp
  if (lowercase(adoquery1.FieldByName('ext').AsString) = '.bmp')  then

    try

      Blob := ADOQuery1.FieldByName('billede') as TBlobField;
      Image1.Picture.Bitmap.Assign(Blob);

      finally

      end;
Avatar billede kroning Nybegynder
30. november 2005 - 14:44 #12
Du behøver vel ikke bruge TMemoryStream.
Avatar billede janbb Juniormester
30. november 2005 - 14:47 #13
Kan man hente det ind alene v.hj.a. sti til adresse ?
Avatar billede janbb Juniormester
30. november 2005 - 14:51 #14
fidusen ved at live listbox-adressehenvisning er jo gevaldig.Det er temmelig mange familiebilleder jeg har og det ville ta for lang tid at hente dem ind enkeltvis - som jeg godt er klar over man kan gøre i en DB.
Avatar billede kroning Nybegynder
30. november 2005 - 14:53 #15
Jeg er måske ikke helt klar over hvad du mener men hvis du skal have et billede ind i en TImage kan du f.eks. skrive:

Image1.Picture.LoadFromFile('C:\Mine billeder\Huset.jpg');

husk at tilføje jpeg til uses hvis du skal bruge jpg billeder.
Avatar billede kroning Nybegynder
30. november 2005 - 14:54 #16
Eller som i din kode:

edit1.text :='';
edit1.text :='C:\picture2\';
edit1.text := edit1.text+(listbox1.items[listbox1.itemindex]);
Image1.Picture.LoadFromFile(Edit1.Text);
Avatar billede janbb Juniormester
30. november 2005 - 14:57 #17
Tusind tak.
Det var da brugbart.Skriv et svar.
Avatar billede kroning Nybegynder
30. november 2005 - 14:59 #18
k
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester