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

BeginThread() i VCL komponente ??

[es] :: Pascal / Delphi / Kylix :: BeginThread() i VCL komponente ??

[ Pregleda: 2409 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon BeginThread() i VCL komponente ??10.03.2005. u 23:46 - pre 232 meseci
Moze li neko da objasni kako da iz jedne funkcije/procedure koju pozivam sa BeginThread() mogu da menjam parametre VCL kontrola ? Recimo, da u Memo-u dodam neki text.

Hvala
 
Odgovor na temu

vlaiv
Vladimir Vlaisavljevic
Novi Sad

Član broj: 15993
Poruke: 352
*.neobee.net.



+1 Profil

icon Re: BeginThread() i VCL komponente ??11.03.2005. u 18:15 - pre 232 meseci
Mislim da su zbog ovog razloga i ubacili TThread objekt .... koji ima synchronize metodu ...

Mozes ako bas neces da radis sa TThread-om da pokusas sledece:

Postavis TTimer komponentu ili napises OnIdle event (koji u sebi ima neki sleep i vraca false da bi se ponovo izvrsio)

Iz threadfunc-a neke globalne varijabile postavis na odredjene vrednosti (naravno zasticeno nekim mehanizmom za lockovanje) a iz ttimer.ontimer eventa citas status globalnih varijabli (opet zasticeno mehanizmom za lockovanje) i ako se stanje promenilo update-ujes property-je vcl komponente.

captionchange:boolean;
newcaption:string;

...
...
..
newcaption:='bla bla';
captionchange:=true;

...
...
...

if captionchange then
begin
Label1.caption:=newcaption;
captionchange:=false;
end;
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: BeginThread() i VCL komponente ??11.03.2005. u 23:33 - pre 232 meseci
Hvala, ali ipak bi zeleo da mi neko objasni kako da uradim ovo preko BeginThread(). Pravim jedan program koji treba da u pozadini iz jednog fajla iscita neke podatke, i onda da startuje 10-tak programa, jedan po jedan, i na kraju da upise u fajl rezultat.
 
Odgovor na temu

vlaiv
Vladimir Vlaisavljevic
Novi Sad

Član broj: 15993
Poruke: 352
*.neobee.net.



+1 Profil

icon Re: BeginThread() i VCL komponente ??13.03.2005. u 22:12 - pre 232 meseci
Nisam siguran da razumem ...

Aj ako hoces pojasni tacno sta treba pa da probamo pomoci ....
Nije mi bas jasno sta ce ti vcl komponente da bi citao i pisao u fajl i sl ... i kakvih je to 10 programa? potprograma (procedure) ili ih kreiras kao procese i uzimas njihovu povratnu vrednost nakon izvrsavanja?
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: BeginThread() i VCL komponente ??13.03.2005. u 23:16 - pre 232 meseci
Samo ti koristi TThread clasu. Ona u pozadini poziva BeginThread umesto tebe. Tvoje je samo da napises Execute funkciju (to je funkcija koja se pokrece kad TThread pozove BeginThread) i uzivaj. Kad ti treba nesto od VCL komponenti imas funkciju Synhronze koja sinhronizuje tvoj nov thread sam main thread i onda upisuje podatke za vcl. Pogledaj malo help u Delphiu za TThread. Koliko se secam imas cak i Wizard za kreiranje thread klasa u Delphi 7... mozda i u starijim.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: BeginThread() i VCL komponente ??14.03.2005. u 00:29 - pre 232 meseci
Pravim jedno programce koje ce se pozivati iz kontekst menija. Kad se programce startuje, kao parametar ce mu biti prosledjena putanja do neko fajla. Ono treba prvo da otvori fajl av.lst u kome se nalaze putanje do anti virusa i jos neke informacije, rasporedi te podatke u array i svaki av koji je naveden u fajlu startuje i odskenira fajl koji je prosledjen kroz parametar. Na kraju treba da sastavi report koji ce zapisati u neki fajl.

Cim se fajl odskenira prvim av-om, u memo-u treba da se doda jedna linija sa izvestajem sta je taj av nasao. Nesto slicno kao na virustotal.com. Zato mi i treba komunikacije thread <> kontrola. Probacu ovako kako Srki kaze, mada nesto ne fercera. Lepo bi bilo da neko objasni kako da odradim Synchronize iz threada kreiranog sa BeginThread().

poz
 
Odgovor na temu

neor
Nenad Orlovic

Član broj: 26828
Poruke: 74
*.metrohive.net.



Profil

icon Re: BeginThread() i VCL komponente ??14.03.2005. u 07:52 - pre 232 meseci
Ne znam zasto izbegavas TThread ali ako bas moras bez njega onda ce verovatno biti dovoljno da svako mesto u kodu gde radis sa VCL komponentom kojoj pristupa vise threadova ogradis sa EnterCriticalSection(CriticalSection) i LeaveCriticalSection(CriticalSection), u Initialization obavezno uradis InitializeCriticalSection(CriticalSection), a u Finalization stavis DeleteCriticalSection(CriticalSection).
CriticalSection je tipa TRTLCriticalSection;
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: BeginThread() i VCL komponente ??14.03.2005. u 18:34 - pre 232 meseci
Ma nije mi problem da radim preko TThread klase nego nikako nemam vremena da procackam help po netu i delphiiju da vidim kako se radi sa ovime... Tnx na odgovorima, pokushacu sa TThread da odradim.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: BeginThread() i VCL komponente ??

[ Pregleda: 2409 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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