Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iz delphija u forum

[es] :: Pascal / Delphi / Kylix :: Iz delphija u forum

[ Pregleda: 3771 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Iz delphija u forum24.12.2004. u 09:24 - pre 214 meseci
Kako odraditi da moj program posalje temu u npr. ovaj forum. Nije spamovanje foruma, vec me cisto zanima kako bi to moglo.

Otprilike:
1. rucno se regujem na forumu (uradjeno)
...e sad, program treba da uradi sledece
2. logovanje
3. postovanje poruke

E, kako ovo uraditi (ako je npr. POST metoda predvidjena za slanje poruka, kao i za logovanje)?

P.S. Ako postoji neki bolji forum od Pascal / Delphi / Kylix, molim moderatore da sto pre prebace temu tamo :)
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Iz delphija u forum24.12.2004. u 09:50 - pre 214 meseci
Moglo bi sa TWebBrowser komponentom. Ja sam se pomocu iste uspevao logovati na yahoo, i dovlaciti spisak neprocitanih poruka. Nemam nazalost primer (u nastupu besa obrisao projekat :)

Naravno, googlaj 'delphi web form submit' za primere...

ss.


When something is hard to do, then it's not worth doing.
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.197.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Iz delphija u forum24.12.2004. u 11:17 - pre 214 meseci
ja sam skoro radio nesto slicno (ne bas za forume, ustvari) ovo sto sam otkucao radi sa svim text poljima, polje za upload fajla, check box, radio button i drop down list...mislim da je dovoljno od mene :)

Code:

function TMainForm.FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j, k: Integer;
  FormItem: Variant;
  Filled: boolean;

begin
  Result := False;
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        if FormItem.Item(j).Name = FieldName then
         begin
          Filled := False;
          FormItem.Item(j).Style.Color := '#000000'; //font color
          if Trim(Value) <> '' then
           begin
             if (UpperCase(FormItem.Item(j).Type) = 'TEXT') or (UpperCase(FormItem.Item(j).Type) = 'TEXTAREA') or (UpperCase(FormItem.Item(j).Type) = 'PASSWORD') then
              begin
                FormItem.Item(j).Value := Value;
                Filled := True;
              end
             else if (UpperCase(FormItem.Item(j).Type) = 'SELECT-ONE') then
              begin
                for k := 0 to FormItem.Item(j).Options.Length - 1 do
                 if UpperCase(FormItem.Item(j).Options.Item(k).Text) = UpperCase(Value) then
                   begin
                     FormItem.Item(j).Options.Item(k).SetAttribute('selected', 'true');
                     Filled := True;
                   end;
              end
             else if (UpperCase(FormItem.Item(j).Type) = 'FILE') then
               begin
                 FormItem.Item(j).Focus;
                 SendKeys(PChar(Value), True);
                 Filled := True;
               end
             else if (UpperCase(FormItem.Item(j).Type) = 'CHECKBOX') or (UpperCase(FormItem.Item(j).Type) = 'RADIO') then
               begin
                 FormItem.Item(j).SetAttribute('checked', ShortString(Value));
                 Filled := True;
               end;
            Result := True;
          Exit;
         end;
      except
        Exit;
      end;
    end;
  end;
end;

Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.197.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Iz delphija u forum24.12.2004. u 11:21 - pre 214 meseci
i da, kako se koristi:

prvo reci WebBrowser.Navigate(adresa) i na OnDocumentComplete stavi da ti popunjava formu. Pre toga moras da rucno pogledas kako se zovu polja koja hoces da popunis i stavis njihova imena.
Da bi submitiovao formu nadji ole tip Submit i pozovi metod Click....isto ovako for petljama kao za Fill.
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum24.12.2004. u 11:21 - pre 214 meseci
hvala obojici

idem sad u skolu, kad se vratim probacu!
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum24.12.2004. u 16:17 - pre 214 meseci
Imam malih problema (verovatno za ovaj prvi treba nesto u uses).......

evo gresaka:
[Error] Unit1.pas(68): Undeclared identifier: 'SendKeys'
[Error] Unit1.pas(79): 'END' expected but 'EXCEPT' found
[Error] Unit1.pas(81): EXCEPT or FINALLY expected

i slike: :)


(kad komentujem prvu gresku prijavi mi drugu, kad komentujem drugu ne prijavljuje mi trecu, zato nema slike za trecu)

p.s. na kraju se vidi deo mog koda (navigate to localhost, ...) <- imam kuci podignut apache.......

i jedno podpitanje: Kako naci posle svega SUBMIT taster i simulirati pritisak na njega?


Thanks to ImageShack for Free Image Hosting
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum24.12.2004. u 19:03 - pre 214 meseci
Resio sam svoje probleme sa sledece dve funkcije (i zahvalan sam banciki na gornjoj funkciji puno):

Popunjavanje:
Code:

function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
  FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      if (UpperCase(FormItem.Item(j).Type) = 'TEXT') or (UpperCase(FormItem.Item(j).Type) = 'TEXTAREA') or (UpperCase(FormItem.Item(j).Type) = 'PASSWORD') then
      begin
      FormItem.Item(j).Value := Value;
      Result := True;
      end;
    end;
  end;
end;


Submitovanje:
Code:

function SubmitForm(WebBrowser: TWebBrowser): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
  FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      if (UpperCase(FormItem.Item(j).Type) = 'SUBMIT') then
      begin
      FormItem.Item(j).focus; //selektujemo taster
      keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), 0, 0 ); //"pritisnemo" space
      keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), KEYEVENTF_KEYUP, 0 ); //"otpustimo" space
      Result := True;
      end;
    end;
  end;
end;


p.s. ovo nece lepo da radi ako ima vise formi na stranici

p.p.s. u attachmentu poruke imate gotov demo (trebace Vam web server i php instalirani, s obzirom da sam radio u PHP-u)

irie
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Prikačeni fajlovi
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum24.12.2004. u 19:19 - pre 214 meseci
E, tek sad videh tvoju poruku (u isto vreme smo pisali). Evo bolje funkcije za submit:
Code:

function SubmitForm(WebBrowser: TWebBrowser): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then Exit;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
  FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      if (UpperCase(FormItem.Item(j).Type) = 'SUBMIT') then
      begin
      FormItem.Item(j).click;
      Result := True;
      end;
    end;
  end;
end;

Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Iz delphija u forum24.12.2004. u 20:19 - pre 214 meseci
pa da, reko sam ti da je bolje da koristis click metod.
nema na cemu
Za sendKey ti treba SndKey32 unit. Microsoft je zabranio izmenu Value polja za FILE objekat (zbog navodne zloupotrebe) pa mora ovako na silu da se ukuca vrednost u njega.
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum25.12.2004. u 00:00 - pre 214 meseci
Ma ok, meni (zasad) treba samo za text polja (textarea i password, naravno)...

Irie
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

SFilip

Član broj: 42290
Poruke: 102
*.yubc.net.



+3 Profil

icon Re: Iz delphija u forum01.01.2005. u 22:02 - pre 214 meseci
a kako skinuti sadrzaj nekog sajta(recimo presnimiti sve odgovore sa ove teme u txt fajlove)?
Open Source. Millions of open minds can't be wrong.
Otvoreni kod. Milioni slobodnih misli ne mogu da pogrese.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum02.01.2005. u 10:45 - pre 214 meseci
bilo koju stranicu mozes "dovuci" sa NMHTTP komponentom, a sad, parsiranje da izvuces samo tekstove poruka...... dunno
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

SFilip

Član broj: 42290
Poruke: 102
*.yubc.net.



+3 Profil

icon Re: Iz delphija u forum02.01.2005. u 14:00 - pre 214 meseci
mozes li da mi das link za download te komponente?
BTW isprobao sam tvoju funkciju FillForm, ali ne radi kako treba: uvek popuni sve textbox-ove na strani istim tekstom-nije vazno sta upisem pod FieldName.
Open Source. Millions of open minds can't be wrong.
Otvoreni kod. Milioni slobodnih misli ne mogu da pogrese.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4389
*.verat.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Iz delphija u forum02.01.2005. u 14:23 - pre 214 meseci
NMHTTP dobijas uz Delphi (6) i nalazi se na kartici... ne znam :) ili Internet, ili tako nesto; ili Indy........

Code:

  NMHTTP1.InputFileMode := FALSE;
  NMHTTP1.OutputFileMode := FALSE;
  NMHTTP1.ReportLevel := Status_Basic;
  NMHTTP1.Get('http://domen.com/fajl.txt');
  Memo1.Text := NMHTTP1.Body;


A FillForm? Ja sam je probao samo na stranicama sa jednim tekstualnim poljem :( i radila je.... videcu..........

irie

edit: @bancika: posto si ti dao osnovu ove funkcije, pogledaj po kodu samo da li radi....
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Iz delphija u forum

[ Pregleda: 3771 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.