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

Iz delphija u forum

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

[ Pregleda: 1855 | Odgovora: 13 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Iz delphija u forum24.12.2004. u 09:24

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 :)
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
24.12.2004. u 09:24 

sasas
Saša Slavnić
radim za neke švabe

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



Profil

icon Re: Iz delphija u forum24.12.2004. u 09:50
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.
24.12.2004. u 09:50 

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
213.244.197.*

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Re: Iz delphija u forum24.12.2004. u 11:17
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
24.12.2004. u 11:17 

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
213.244.197.*

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Re: Iz delphija u forum24.12.2004. u 11:21
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
24.12.2004. u 11:21 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum24.12.2004. u 11:21
hvala obojici

idem sad u skolu, kad se vratim probacu!
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
24.12.2004. u 11:21 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum24.12.2004. u 16:17
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
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
24.12.2004. u 16:17 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum24.12.2004. u 19:03
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
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Prikačeni fajlovi
24.12.2004. u 19:03 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum24.12.2004. u 19:19
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;

Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
24.12.2004. u 19:19 

bancika
Branislav Stojkovic
Nis, New York

Član broj: 24844
Poruke: 620
213.244.208.*

ICQ: 84215453
Sajt: www.storm-software.co.yu/..


Profil

icon Re: Iz delphija u forum24.12.2004. u 20:19
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
24.12.2004. u 20:19 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

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

Irie
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
25.12.2004. u 00:00 

SFilip
Vrsac

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



Profil

icon Re: Iz delphija u forum01.01.2005. u 22:02
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.
01.01.2005. u 22:02 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum02.01.2005. u 10:45
bilo koju stranicu mozes "dovuci" sa NMHTTP komponentom, a sad, parsiranje da izvuces samo tekstove poruka...... dunno
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
02.01.2005. u 10:45 

SFilip
Vrsac

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



Profil

icon Re: Iz delphija u forum02.01.2005. u 14:00
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.
02.01.2005. u 14:00 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

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

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Iz delphija u forum02.01.2005. u 14:23
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....
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
02.01.2005. u 14:23 

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

[ Pregleda: 1855 | Odgovora: 13 ]

Postavi temu Odgovori

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