Critical section - jel zna neko

1

Critical section - jel zna neko

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

function TProcessThread.GetFileFromList: string; var    cs:TRTLCriticalSection; begin (*    InitCriticalSection(cs);    {$IFDEF windows}      EnterCriticalSection(cs.LockCount);    {$ELSE}      EnterCriticalSection(cs.__m_count);    {$ENDIF}  *)    result:=FileList.strings[0];    FileList.Delete(0);  (*    {$IFDEF windows}      LeaveCriticalSection(cs.LockCount);    {$ELSE}      LeaveCriticalSection(cs.__m_count);    {$ENDIF}    DoneCriticalsection(cs);   *) end; 

ovo sto je komentovano, ne kompajlira zbog Linux dela : EnterCriticalSection(cs.__m_count);

jel zna neko kako se radi sa CriticalSection u lazarusu?

Dopuna: 29 Avg 2006 15:31

Zapravo, kad se odkomentuje Windows deo, ni to ne radi



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Koliko znam treba da pise:
Critical: TRTLCriticalSection; InitializeCriticalSection(Critical); EnterCriticalSection(Critical); LeaveCriticalSection(Critical); DeleteCriticalSection(Critical);

Ovaj kod bi trebalo da radi na svim platformama.



offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

[Link mogu videti samo ulogovani korisnici]
[Link mogu videti samo ulogovani korisnici]

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

@Srki

unProcess.pas(82,35) Error: call by var parameters have to match exactly: Got "TRTLCriticalSection" expected "LongInt"

@Bobby
Primer sa wikija nema to, primer iz drugog linka kreira gresku odozgo

offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ok... evo ispravke koja radi (program se kompajlira i radi kada se pokrene). Napravio sam nov projekat, postavio dugmence i u OnClick event napisao ovo:
procedure TForm1.Button1Click(Sender: TObject); var   Critical: TRTLCriticalSection; begin   InitCriticalSection(Critical);   EnterCriticalSection(Critical);   LeaveCriticalSection(Critical);   DoneCriticalsection(Critical); end;

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Pa meni to ne radi..

offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Hajde kopiraj definicije funkcija InitCriticalSection, EnterCriticalSection, LeaveCriticalSection i DoneCriticalsection iz Lazarusa pa da vidimo... koristim 0.9.16 verziju Lazarusa.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

I ja koristim istu verziju, koju sam za windoze skinuo pre 4 dana sa sajta. Posto sam reinstalirao suse, nemam linux verziju, ali mi se apsolutno isto deshavalo.

offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Hajde kopiraj definicije tih funkcija iz source... sigurno ima razlike kad nece da se iskompajlira.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Reshio sam to.

uses SyncObjs... function TProcessThread.GetFileFromList: string; var    Critical:TCriticalSection; begin   critical:=TCriticalSection.Create;   try   Critical.Acquire;    result:=FileList.strings[0];    FileList.Delete(0);   Critical.Release;   finally     critical.Free;   end; end;

Drugi problem... jel zna neko kako da resizujem JPG?

jpg := TJPEGImage.create;     try       jpg.LoadFromFile(infile);       // LAZARUS BUG u sledecoj       bmp.canvas.StretchDraw(Rect(0,0,AWidth,AHeight),jpg);     finally       jpg.Free;     end;        .....

StrechDraw je toliko bagiran da izlazi skroz zeznuta slika.
Jel zna neko kako da napravim resize?!

Ko je trenutno na forumu
 

Ukupno su 2101 korisnika na forumu :: 70 registrovanih, 13 sakrivenih i 2018 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aleksmajstor, Asteker, Avalon015, bestguarder, bigfoot, boskelazo, Cirkon, Citalac, cole77, curiosity, DeerHunter, Despot Đurađ, dexteroza, Dimitrise93, DonRumataEstorski, Draganeli, dusan.l, Dzigy, Georgius, Gerilac, gost321, grunff2, Haris, howyesno, Iii, Ikica977, Ivoo, K a s p e r, Kružić, lelemud, Magistar78, Marko Marković, mat, maxim_von_burdengate, mercedesamg, Mercury, miki kv, Miler88, moldway, N.e.m.a.nj.a., Nebojsha Trajkovich, nelezele, nenad81, nenooo, nerislav2025, Niki2024, nsharambasa, Pantaaa, raptorsi, read-only, redstar011, S-G, Sale0501, sevenino, skok, Smd, Smiljkovich, Solunac na steroidima, SOVO515, ssekir75, Tila Painen, Tvrtko I, vazduh, vespa nikola, vidra boy, Vladko, voja64, Volkcho, ZlatniRez