Poslao: 22 Jan 2006 10:32
|
offline
- bobby

- Administrator
- 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.
|
|
Poslao: 22 Jan 2006 11:39
|
offline
- beli0135

- Executor
- 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.
|
|
|
|
Poslao: 22 Jan 2006 14:56
|
offline
- Srki_82

- Moderator foruma
- 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.
|
|
|
|
Poslao: 22 Jan 2006 15:07
|
offline
- bobby

- Administrator
- 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.
|
|
|
|
Poslao: 22 Jan 2006 15:11
|
offline
- Srki_82

- Moderator foruma
- 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).
|
|
|
|
Poslao: 22 Jan 2006 20:56
|
offline
- beli0135

- Executor
- 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.
|
|
|
|
Poslao: 22 Jan 2006 22:07
|
offline
- bobby

- Administrator
- 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.
|
|
|
|
Poslao: 23 Jan 2006 11:48
|
offline
- beli0135

- Executor
- 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.
|
|
|
|