Webbrowser olevariant to jpegImage problem

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
malitutuncu
Üye
Mesajlar: 18
Kayıt: 21 Şub 2017 03:27

Webbrowser olevariant to jpegImage problem

Mesaj gönderen malitutuncu » 18 Oca 2018 02:55

Merhaba arkadaşlar,

Bir web sitesinden resimler çekmem gerekiyor. Öğrenci resimlerini kendi sistemimizde aynı öğrencilerin resim bölümüne kayıt etmek için.

Şöyle bir yapısı var görsellik açısından
Resim

webBrowser den getElementById metoduyla çekiyorum verileri. Ancak resimde biraz sorun yaşıyorum.
Satır satır dolaşıyorum tabloyu normalde. burada her resimin id si var(her resimin ayrı ID si var 1.satırdaki resim1 gibi).
tablo içinde dolaşarakta denedim, getElementById ile de almayı denedim.
variant olarak image/stream birşeylere dönüştürmeyide denedim.
birçok şey denedim ama datasını alamadım bir türlü resimin. Aldıktan sonra Delphi'de bir treelist de göstereceğim.
  • Burada URLDownloadToFile gibi birşeyle almak istemiyorum çünkü resimler sayfada yükleniyor ve boyutları o kadar
    resim in src adresinde url var onu açınca resim tek başına açılıyor onun src sindede url var
    ben sayfa yüklendikten sonra üstünden resimleri direk çekmek istiyorum çünkü resimlerden dolayı zaten sayfa geç yükleniyor
    yada sayfayı açarken resimleri açmamasını saglayabilirsem URLDownloadToFile gibi birşeyle url den de alırım
şu tablodaki resmi incele dediğimde çıkan:

Kod: Tümünü seç

<td class="dataGridActive" align="center">
  <img id="dgListe_imgResim_0" src="Oabcabcabcab.aspx?dataTC=11111111111" style="color:#0000C0;border-width:1px;border-style:Solid;height:171px;width:133px;">
</td>
Bunlarda yardımcı olursa kodlar:

Kod: Tümünü seç

  
function webGet(aWb : TWebBrowser ; aOle : OleVariant ; aVariable, aFilter : String) : OleVariant;
begin
  if aWb <> nil then
    begin
      if aFilter = 'ID' then
        result := aWb.OleObject.Document.getElementById(aVariable);

      if aFilter = 'TAGNAME' then
        result := aWb.OleObject.Document.getElementsByTagName(aVariable);

      if aFilter = 'CLASSNAME' then
        result := aWb.OleObject.Document.getElementsByClassName(aVariable);
    end;

  if  not(VarIsNull(aOle)) then
    begin
      if aFilter = 'ID' then
        result := aOle.getElementById(aVariable);

      if aFilter = 'TAGNAME' then
        result := aOle.getElementsByTagName(aVariable);

      if aFilter = 'CLASSNAME' then
        result := aOle.getElementsByClassName(aVariable);
    end;
end;  

Kod: Tümünü seç

     
  Count    := aTable.Rows.Length;
  for I := 1 to (Count - 1) do
    begin
	
      oleProfil := webGet(wbBack, null, K2_ID.RESIM_IMG_PROFIL+IntToStr((i-1)),'ID' );
//      jpegProfil := oleProfil.item(0);
        oleProfil.focus;
//        oleProfil2 := oleProfil.activeElement;
        //'[object HTMLImageElement]'
//        aaa :=   oleProfil.load;
              oleProfil.images;
             ?????????????????????
    end;
Bu problemi nasıl aşabilirim.
Teşekkürler.

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1286
Kayıt: 07 May 2009 09:42
Konum: İstanbul
İletişim:

Re: Webbrowser olevariant to jpegImage problem

Mesaj gönderen SimaWB » 18 Oca 2018 05:40

WebBrowser'daki bir resmi form üzerindeki bir TImage nesnesi içine aşağıdaki kodla çizdirebiliyorum:

Kod: Tümünü seç

procedure TForm4.Button2Click(Sender: TObject);
var
  Doc : IHTMLDocument3;
  imgEL : IHTMLImgElement ;
  imgRND : IHTMLElementRender ;
begin
  Doc := WebBrowser1.Document as IHTMLDocument3;
  imgEL := Doc.getElementById('img_id') as IHTMLImgElement;
  Image1.Height := imgEL.height;
  Image1.Width := imgEL.width;
  imgRND := imgEL as IHTMLElementRender;
  imgRND.DrawToDC(Image1.Canvas.Handle);
end;
There's no place like 127.0.0.1

malitutuncu
Üye
Mesajlar: 18
Kayıt: 21 Şub 2017 03:27

Re: Webbrowser olevariant to jpegImage problem

Mesaj gönderen malitutuncu » 19 Oca 2018 09:18

Merhaba,
hocam uses olarak MSHTML_TLB eklemek gerekiyor. Benim ide de uses' te görmüyor şöyle eklenebileceğini söylemiş.

http://www.cryer.co.uk/brian/delphi/err ... ML_TLB.htm

ekledim ama hata vererek ekledi. bir pas dosyası gibi mi eklenecek. nasıl olması gerekli?

Teşekkürler.

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1286
Kayıt: 07 May 2009 09:42
Konum: İstanbul
İletişim:

Re: Webbrowser olevariant to jpegImage problem

Mesaj gönderen SimaWB » 19 Oca 2018 10:01

uses MSHTML;
There's no place like 127.0.0.1

malitutuncu
Üye
Mesajlar: 18
Kayıt: 21 Şub 2017 03:27

Re: Webbrowser olevariant to jpegImage problem

Mesaj gönderen malitutuncu » 22 Oca 2018 12:27

Teşekkürler hocam

Lord_Ares
Üye
Mesajlar: 1008
Kayıt: 15 Eki 2006 03:33
Konum: Çorlu

Re: Webbrowser olevariant to jpegImage problem

Mesaj gönderen Lord_Ares » 22 Oca 2018 02:57

Simawb çözümü göstermiş ama fikir olması açısından aşağıdaki konuya da bir göz atabilirsin
viewtopic.php?f=2&t=33929&hilit=tv+kanal#p182315

Cevapla