Bojenje celija u StringGridu, 'elp...

Bojenje celija u StringGridu, 'elp...

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

Posto veze nemam sa ovakvim naprednijim stvarima, da li bi neko bio dobre volje da mi objasni kako obojiti vec postojecu celiju u StringGrid-u.
Najzgodnije bi mi bilo kada bi mi neko objasnio kako uraditi tako nesto uz pomoc posebne procedure u fazonu:

procedure TfrmMain.obojiCeliju (SG: TStringGrid; Kolona, Red:integer);

Ja sam nesto probao, postavim sve potrebne parametre, ali cim uradim Invalidate da bi se SG ponovo iscrtao - meni sve celije budu u novoj boji. Nikako da uspem samo jednu celiju da obojim.

Nemojte mi predlagati neke komponente za skidanje sa neta, posto ne koristim Delphi vec FreePascal.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

To je malo zeznuta rabota i rado sam izbegavao takav posao. Moras da napravis event koji ce da overrideuje onDrawCell i da je sam nacrtas.



offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Tacno je to sto kaze beli0135... mora se postaviti OnDrawCell event, ali nije ga bas tako tesko napisati.

Sve sto treba da radis je da iscrtas pozadinu (moze biti jednobojna, neka slika, neki evekat... sta pozelis), iscras text (imas razne funkcije za crtanje texta u Win API koje se bas lako koriste) i na kraju ako zelis mozes nacrtati okvir oko polja ako je to polje selektovano.

Imas sve potrebne podatke... poziciju na kojoj da crtas, podatak o kom redu i kojoj koloni se radi i stanje tog polja.

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

Ne bih da ogranicim program na Win platformu (Win API)...
Ne postoji nista jednostavnije, recimo da se Property Color postavi posebno za svaku celiju? Probao sam da u petlji postavljam Color za svaku celiju posebno, ali ne funkcionise.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ne postoji nesto tako jednostavno. U Free Pascal-u (Lazarus) verovatno imas neke funkcije za iscrtavanje po kontrolama koje nisu platform specific. Ne koristim ga pa ne znam kako se zovu, ali pretpostavljam da se zovu slicno kao one iz Win API (Rectangle, TextOut ili DrawText, BitBlt i slicno).

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

Ne bobby, nema jednostavnog nacina. OnDrawCell i to je to.
Bilo bi lepo da pogledas source, recimo DBGrid-a ili neke slicne kontrole koja ima celije da vidis kako je to Borland naprvio.

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

I ono sto sam do sada radio je bilo sa OnDrawCell.
Osnovni problem mi je sto meni bojenje ne treba pri prvom iscrtavanju Grida, vec kasnije.
Nema veze, pozabavicu se drugi put ovim, nije mi bas frka.
Mislio sam da u gridu obelezim polja kod kojih je bilo gresaka u procesiranju podataka (prorgram sortira fajlove, pa copy ili delete ne moraju uvek da uspeju). Za sada ih prebacujem da budu na vrhu grida, da bi ih lakse nasao.

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

Za sve ove godine koje sam profi programer, jedino bojenje koje je bilo potrebno je bojenje cele kolone, a ne pojedinacne celije.

Ko je trenutno na forumu
 

Ukupno su 1354 korisnika na forumu :: 33 registrovanih, 5 sakrivenih i 1316 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: amaterSRB, Andrija357, Atomski čoban, babaroga, Bane san, Bobrock1, Cobi026, drimer, GandorCC, Georgius, Litostroton, Lukaaa, Mi lao shu, mile23, milutin134, MiroslavD, mrav pesadinac, naki011, nesa1962, Panter, pein, Posmatrac77OKB, raptorsi, ruma, S2M, sevenino, skvara, Sloven, taz1cl, vandrej, vasa.93, vladulns, zlaya011