web sayfası yüklendimi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

web sayfası yüklendimi

Mesaj gönderen tuanna »

web sayfası yüklendimi naıl anlarım
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
balsoft
Üye
Mesajlar: 60
Kayıt: 09 Şub 2005 06:01
Konum: ANKARA
İletişim:

Mesaj gönderen balsoft »

soruyu biraz daha açık sorarsan yardımcı olabilirim sanırım saygılarımla
Bilgini saklamaki daha fazla öğrenebilesin...
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

web sayfasının içeriğini kaydedediyorum....ama sorun bir den çok adresi navagete ederken sayfaının yüklenip yüklenmediğini anlamadığımdan kaydederken hata veriyor...sayfa yüklenmeden kaydetmeye çalışmamdan kaynaklanıyor...
Siz hayal edin...Biz yapalım TuannaSoft...
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

Acaba nasıl web sayfasını alıyorsun biraz daha açıklarsan daha çok yardımcı olabiliriz.

</html> verisini gördüğünde web sayfası görüntülenen bölümü bitmiştir.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Merhaba.
Browser bileşeninin eventlerinde bunun için birşeyler vardı ama tam olarak hatırlayamadım."OnDocumentCompelete" eventini bi inceleyin.
Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

OnDocumentComplete birden fazla kere meydana gelir. Yapmanız gereken kontrol ReadyState olmalı...

Kod: Tümünü seç

  Repeat
    Application.ProcessMessages;
  Until WebBrowser1.ReadyState = ReadyState_Complete;
gibi...
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

mrmcop yazdı:Merhaba...

OnDocumentComplete birden fazla kere meydana gelir. Yapmanız gereken kontrol ReadyState olmalı...

Kod: Tümünü seç

  Repeat
    Application.ProcessMessages;
  Until WebBrowser1.ReadyState = ReadyState_Complete;
gibi...

Hocam bu konuyu biraz daha koda dökebilirmisin. Yaptığını denedim. Fakat sonuç alamadım.

Benimde yapıcağım , sayfa yok ise sayfavarmi:=1; değerini tanımlamak.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Aşağıda bu soruna ışık tutacak düzeyde tam bir örnek hazırladım. İnceleyebilirsin.

- Navigasyon işleminden sonra hemen procedure terkedilecek iken kurulan Repeat Until bloğu buna mani olur.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  EncodedDataString: string;
  PostData         : OleVariant;
  Headers          : OleVariant;
  I                : Integer;
begin
  Application.ProcessMessages;
  EncodedDataString := Format('arama=%s&submit=++Ara++',['Matrix']);
  PostData := VarArrayCreate([0, Length(EncodedDataString) - 1], varByte);
  for I := 1 to Length(EncodedDataString) do
  PostData[I-1] := Ord(EncodedDataString[I]);
  Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
  WebBrowser1.Navigate('http://www.divxplanet.net/arama.php',
                        EmptyParam,
                        EmptyParam,
                        PostData,
                        Headers);
  Repeat
    Application.ProcessMessages;
    // ZZZzzzz
  Until (WebBrowser1.ReadyState = ReadyState_Complete);
end;
- TimeOut süresini beklemek istenmemesi durumu göz önünde bulundurulduğunda, daima global bir Boolean değişken daha ekleyip bunu dilediğim an sona erdiren bir kontrol olmasını sağlıyorum. True yapacak unsur bir buton veya ESC gibi tuş olabilir.

- Yani Until satırına her zaman bir de Iptal isteğini bildirecek şekilde bir OR ekliyorum.

Kod: Tümünü seç

  Repeat
    Application.ProcessMessages;
    // ZZZzzzz
  Until (WebBrowser1.ReadyState = ReadyState_Complete) or xIptal;
gibi...
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Hocam sağolasın. Bende şöyle birşey buldum :D

Kod: Tümünü seç

procedure TzzzzzzzForm1.SiteDocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
    if WebBrowser1.Oleobject.Document.Location.Protocol = 'res:' then
    ShowMessage('Site Açılamadı ...')
    else
    ShowMessage('Site Açılmıştır ...');
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Anladım. O zaman buraya bir global değişken koyup "res:" olana kadar bekleme yaptırıcan. Yoksa sayfa tam yüklenmeden sayfa hakkında işleme geçme ihtimalin vardır...
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

mrmcop yazdı:Anladım. O zaman buraya bir global değişken koyup "res:" olana kadar bekleme yaptırıcan. Yoksa sayfa tam yüklenmeden sayfa hakkında işleme geçme ihtimalin vardır...
hocam tam anlamadım ama galiba sayfa yüklenmeye başladığından beri durum res: olarak kalıyor. birazdan denicem.
Cevapla