WebBrowser Textarea alanını doldurtamıyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen orhancc »

C# kodu çalışıyor

Kod: Tümünü seç

 private void simpleButton1_Click(object sender, EventArgs e)
        {            
            webBrowser1.Navigate("http://www.frmoyuncu.com/newthread.php?do=newthread&f=7");
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(BilgiGir);
        }

        private static void BilgiGir(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var b = (WebBrowser)sender;
            if (b.Document != null)
            {
                b.Document.GetElementById("vb_login_username").InnerText = "kullanıcıadı";
                b.Document.GetElementById("vb_login_password").InnerText = "şifre";
            }
            b.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(MesajGir);
            //<input type="submit" tabindex="1" accesskey="s" value="Giriş" class="button">
           // b.Document.GetElementById("Giriş").InvokeMember("click");

        }

        private static void MesajGir(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var b = (WebBrowser)sender;
            if (b.Document != null)
            {
                b.Document.GetElementById("vB_Editor_001_textarea").InnerHtml = "Deneme Yazısı";
            }
            b.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(MesajGir);
        }
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

Kod: Tümünü seç

procedure SetFieldValue(theForm: IHTMLFormElement;
  const fieldName: string; const newValue: string;
  const instance: integer=0);
var
  field: IHTMLElement;
  inputField: IHTMLInputElement;
  selectField: IHTMLSelectElement;
  textField: IHTMLTextAreaElement;
begin
  field := theForm.Item(fieldName,instance) as IHTMLElement;
  if Assigned(field) then
  begin
    if field.tagName = 'INPUT' then
    begin
      inputField := field as IHTMLInputElement;
      if (inputField.type_ <> 'radio') and
         (inputField.type_ <> 'checkbox')
      then
        inputField.value := newValue
      else
        inputField.checked := (newValue = 'checked');
    end
    else if field.tagName = 'SELECT' then
    begin
      selectField := field as IHTMLSelectElement;
      selectField.value := newValue;
    end
    else if field.tagName = 'TEXTAREA' then
    begin
      textField := field as IHTMLTextAreaElement;
      textField.value := 'DENEME';
    end;
  end;
end;
@vkamadan bu yöntemlede denedim olmuyor.
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

@orhancc C# ile ilgili hiç birşey bilmiyorum. Ama bir tane Visual C# edinip deneyeceğim.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen vkamadan »

darkfeeL yazdı:

Kod: Tümünü seç

procedure SetFieldValue(theForm: IHTMLFormElement;
  const fieldName: string; const newValue: string;
  const instance: integer=0);
var
  field: IHTMLElement;
  inputField: IHTMLInputElement;
  selectField: IHTMLSelectElement;
  textField: IHTMLTextAreaElement;
begin
  field := theForm.Item(fieldName,instance) as IHTMLElement;
  if Assigned(field) then
  begin
    if field.tagName = 'INPUT' then
    begin
      inputField := field as IHTMLInputElement;
      if (inputField.type_ <> 'radio') and
         (inputField.type_ <> 'checkbox')
      then
        inputField.value := newValue
      else
        inputField.checked := (newValue = 'checked');
    end
    else if field.tagName = 'SELECT' then
    begin
      selectField := field as IHTMLSelectElement;
      selectField.value := newValue;
    end
    else if field.tagName = 'TEXTAREA' then
    begin
      textField := field as IHTMLTextAreaElement;
      textField.value := 'DENEME';
    end;
  end;
end;
@vkamadan bu yöntemlede denedim olmuyor.

Yukarıdaki procedure ' ü çağırdığınız bölümüde gönderebilirmisiniz belki kullanırken ataladığınız bir nokta vardır.
Volkan KAMADAN
www.polisoft.com.tr
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

@orhancc Visual C# 2008 Express Edition ile denedim. Login alanlarını doldurdu fakat Login butonuna tıklama yapmadı. MesajGir fonksiyonunuda manuel login olarak denedim o da textareaya herhangi birşey doldurmadı.
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

Ayrıca bu fonksiyon lazım olduğundan bunuda ekledim;

Kod: Tümünü seç

function GetFormByNumber(document: IHTMLDocument2;
    formNumber: integer): IHTMLFormElement;
var
  forms: IHTMLElementCollection;
begin
  forms := document.Forms as IHTMLElementCollection;
  if formNumber < forms.Length then
    result := forms.Item(formNumber,'') as IHTMLFormElement
  else
    result := nil;
end;
Çağırdığım kod ise bu;

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
  document: IHTMLDocument2;
  theForm: IHTMLFormElement;
  index: integer;
begin
  document := WebBrowser1.Document as IHTMLDocument2;
  theForm := GetFormByNumber(WebBrowser1.Document as IHTMLDocument2,0);
  SetFieldValue(theForm,'name','Brian Cryer');

end;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen vkamadan »

Merhaba ,

Kod: Tümünü seç

 SetFieldValue(theForm,'name','Brian Cryer');
Burada 2nci parametreye geçtiğiniz değer olan "name" textarea tipindeki alanında adı değil mi?
Volkan KAMADAN
www.polisoft.com.tr
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

Evet orayı 'message' olarak değiştirdim. Olmuyor.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen vkamadan »

Merhaba ,
Vakit bulup bir örnek yaptım hiç bir sorun yok çalışıyor.. ekliyorum.
Dosya ekleri
TA_Doldur.zip
TextArea doldurma
(250.64 KiB) 213 kere indirildi
Volkan KAMADAN
www.polisoft.com.tr
darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 08:16

Re: WebBrowser Textarea alanını doldurtamıyorum

Mesaj gönderen darkfeeL »

Teşekkürler. Elinize sağlık.
Cevapla