[ Taurus @ 29.11.2002. 11:46 ] @
Kako da koristim Indy komponente u console aplikaciji? Znaci nema formi.
[ broker @ 29.11.2002. 13:51 ] @
Kao i ostale komponente, kreiraj ih sam....


var
Component : TComponent;


begin

...


Component := TComponent.Create....

.... ovde radis sta treba....


Component.Free;

...

end;

[ Taurus @ 30.11.2002. 10:58 ] @
Ma dobro to znam to. Nisam ja amater. Al ne kontam kako obradjivati dogadjaje? Ja kreiram komponentu i popunim svojstva i pozovem konekt ali sta onda ? Program mi se odmah zavrsi.
????
[ -zombie- @ 30.11.2002. 13:29 ] @
pa, izgleda da jesi amater (bez uvrede).

pored "normalnih" propertya, svaka (vecina) komponenti ima i Event propertye. to su oni koji pocinju na "On", na primer OnKeyUp.

recimo, ako potpis (tip) takvog event propertya glasi

Code:

type
  TKeyEvent = procedure (Sender: TObject; var Key: Word; Shift: TShiftState) of object;


onda lepo u tvom objektu napravish metod sa istim takvim parametrima, i dodelish je tom property-u.

Code:

type myobj = class
    procedure MyEventHandler(Sender: tobject; var key: word; shift: tShiftState);
end;

...

begin
    componenta:=tComponent.Create(blah);
    componenta.onKeyUp:=MyEventHandler; 
    componenta.run; // ili stagod
    componenta.free;
end;
[ Taurus @ 02.12.2002. 12:35 ] @
Ne vredjam se i nisam amater. Sve to sto si mi rekao znam ali ono sto me muci jeste ona linija gdje si napisao sta god:
componenta.run; // ili stagod

E to stagod mi treba ! Koji metod treba da pozovem da bi se dogadjaji izvrsavali u pelji i da se ne pozove Free odmah?

Shvatas li ti sta ja trazim ?

U windowsu imam metod run u kojem se poziva ProcessMessages() ali sta da koristim ovde ?
[ -zombie- @ 03.12.2002. 00:36 ] @
izvini nije bilo namerno. (ali ni ti nisi bio toliko precizan kao poslednji put..)

ja sam tamo misliio da pozovesh taj connect, ali ocigledno nije to problem...

rekao si kylix, ali nisi rekao da li pokusavash to da napravish za win ili za linux.

i to sto pravish, lici na neki server (servis, deamon). cini mi se da nije za win (za win imash new->service application).

ja imam delphi 6, i u delphi/demos/indy diru, stoji indy_demos.html fajl koji ima popis i objasnjenje demoa u tom diru. tu se i pominju dva-tri kylix primera (jedan se zove kylix deamon, sto bi tebi verovatno koristilo) ali ih nema u direktorijumu.

zato, ako imash neku (noviju) verziju delphija, ili kylix-a, pogledaj taj dir, mozda nadjesh primer za to sto ti treba...
[ Taurus @ 03.12.2002. 12:44 ] @
Treba mi i za linux i za win. Zato sam mislio da radim CLX projekat pa ga za win prevedem u delphiu a za linux u kylixu. Ne mora da bude deamon moze i obican proces. Ionako nisam nikad pisao linux demone. A i to za service application znam i koristio sam. Imam Delphi 7 al u njemu nema indy primjera uopste vec samo pise da ih skinem s neta sto cu i da uradim. Mada sumnjam da cu naci sto mi treba. U svakom slucaju hvala na savjetu.
[ silverglider @ 04.12.2002. 20:58 ] @
Pa napravis jedan obican tthread objekat u cijem execute metodu vrtis sve u petlji "while not terminated do ...". A sam thread gasis na onaj event koji tebi treba -> bilo da je specificni telegram koji dobijas preko socketa, kombinacija tastera ili nesto trece.

Na primer, kreiras jedan TEvent objekat, recimo TPodaciStigli. Njega okines na event svog (recimo) TCP servera OnDataReady, tj nesto poput:

Code:

TMojTCPserver.OnDataReady(Sender ... blah-blah);
begin
  TPodaciStigli.SetEvent;
end; 


A u tvojoj thread klasi stavis lepo :

Code:

TMojThread.Execute;
begin
  while not terminated do
  begin
    if TPodaciStigli.WaitFor($ffff) <> wrSignaled then
      CitajStreamSaSocketa;
    ...
  end;
end;


Jedino sto jos moras da obezbedis da se thread gasi na neki tvoj event, kao sto rekoh - kombinacija tastera ili nesto drugo.