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

Kako obojiti svaki neparan red u DBGrid-u?

[es] :: Pascal / Delphi / Kylix :: Kako obojiti svaki neparan red u DBGrid-u?

Strane: 1 2

[ Pregleda: 5297 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Kako obojiti svaki neparan red u DBGrid-u?12.09.2006. u 00:11 - pre 214 meseci
Kako da obojim svaki drugi red ili svaki neparni red u DBGrid-u sa obicnog Button-a?
Ni jedan red DBGrid-a ne mora biti selektovan nego samo onako - "kliknes button" i da odradi posao?
Citao sam ranije postove od vas i probao one kodove tamo ali nisam se bas snasao.
Da li mi treba, kada napisem kod na OnDrawDataCell, da taj kod pozovem sa button-a ili sta vec. Ja samo hocu da to bude button.

hvala!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?12.09.2006. u 08:06 - pre 214 meseci
> Kako da obojim svaki drugi red ili svaki neparni red u DBGrid-u sa obicnog Button-a?
> Ni jedan red DBGrid-a ne mora biti selektovan nego samo onako - "kliknes button" i da odradi posao?
> Citao sam ranije postove od vas i probao one kodove tamo ali nisam se bas snasao.
> Da li mi treba, kada napisem kod na OnDrawDataCell, da taj kod pozovem sa button-a ili sta vec. Ja samo hocu
> da to bude button.


To bojenje moraš da radiš iz OnDrawDataCell, bilo je primera ranije za razna bojenja pa verovatno ima i za to što tebi treba. A kako to aktivirati pritiskom na dugme, dodaš neki flag (boolean promenljiva) koju ćeš setovati iz buttona a u onDrawDataCellu aktivirati bojenje kada je i ona setovana. Ili mošeš i raditi bez posebnog flaga tako što ćeš kada trebaš bojiti dodeliti handler gridovom OnDrawDataCellu a kada ne treba ukloniti ga.



 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?12.09.2006. u 22:48 - pre 214 meseci
Hvala savkicu za te neke naznake. Nego, malo sam ja razmisljao i shvatio da mi treba DBGrid ciji ce neparni slogovi (redovi) stalno biti obojeni nekom_bojom a parni nekom_bojom2. Sta treba da uradim da bih ovo realizovao. Gde da napisem kod i potom kada pokrenem projekat preko Run (F9) da DBGrid zateknem u "obojenom stanju".
Hvala...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?13.09.2006. u 11:45 - pre 214 meseci
> Hvala savkicu za te neke naznake. Nego, malo sam ja razmisljao i shvatio da mi treba DBGrid ciji ce neparni
> slogovi (redovi) stalno biti obojeni nekom_bojom a parni nekom_bojom2. Sta treba da uradim da bih ovo
> realizovao. Gde da napisem kod i potom kada pokrenem projekat preko Run (F9) da DBGrid zateknem u "obojenom stanju".

Najbolje da napraviš novi grid - naslednika TDBGrida. Ne mogu ti sada reći koju tačno metodu da overajduješ, ali pretpostavljam da postoji DoOnDrawDataCell ili možeš pogledati paint metodu grida i videti gde se radi bojenje ćelija. Verovatno ti je još bolja varijanta da uzmeš neku third party grid komponentu, one imaju i to i još dosta drugih mogućnosti.
 
Odgovor na temu

milnen
Nis

Član broj: 73950
Poruke: 332
*.rcub.bg.ac.yu.



+5 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?13.09.2006. u 12:53 - pre 214 meseci
Evo ga resenje. Probao sam i radi.
http://www.tek-tips.com/faqs.cfm?fid=6087

[Ovu poruku je menjao milnen dana 13.09.2006. u 14:15 GMT+1]
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?13.09.2006. u 23:12 - pre 214 meseci
Hvala svima! Ovo je OK!
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?19.09.2006. u 17:47 - pre 214 meseci
Sto se tice ovih boja razlicitih redova sve je OK, ali sad imam jos jedan (glup) problem - nece da mi poravna slogove u sredini nego sve na levoj strani svake od kolona. Otvarao sam Columns i tamo za svaku kolonu postavio Alignment na caCenter ali on to ignorise posto se koristi OnDrawColumnCell a za njega je potrebno da se DefaultDraw postavi na false. Na normalan DBGrid ovaj Alignment radi a na ovaj obojeni nece. Probao sam sa kodom Form1.DBGrid1.Columns[1].Alignment := caCenter ali nece. Taj kod sam postavljao na OnDrawColumnCell i na neki Button ali nece.
Zna li neko?

Hvala
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?20.09.2006. u 08:08 - pre 214 meseci
> Sto se tice ovih boja razlicitih redova sve je OK, ali sad imam jos jedan (glup)
> problem - nece da mi poravna slogove u sredini nego sve na levoj strani
> svake od kolona.

Pošalji kod koji koristiš za crtanje sadržaja ćelija.
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?20.09.2006. u 12:05 - pre 214 meseci
Dobro evo ti kod:
Code:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 Form1.DBGrid1.Canvas.Font.Color := clBlack;
 if Odd(Form1.ADOQuery3.RecNo)
 then
  begin
   Form1.DBGrid1.Canvas.Brush.Color := clGreen
  end

 else
  Form1.DBGrid1.Canvas.Brush.Color := clYellow;

 Form1.DBGrid1.Canvas.TextRect(rect, rect.Left,rect.top, Form1.DBGrid1.Fields[DataCol].AsString);

end;

Dakle, kada se ovaj kod postavi tamo na OnDrawColumnCell bojenje radi odlicno dok se tekst u kolonama poravna uz levu ivicu a ja hocu da bude na sredini. Drugo, kada je DBGrid ovako obojen ne radi mi selektovanje redova - jednostavno ne mozes nikako da selektujes red.
I eto to je, uglavnom, to. Pozdrav...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?20.09.2006. u 15:06 - pre 214 meseci
Code:

DBGrid1.Canvas.Font.Color := clBlack;
  if Odd(Table1.RecNo)
  then
    DBGrid1.Canvas.Brush.Color := clGreen
  else
    DBGrid1.Canvas.Brush.Color := clYellow;

  if gdFocused in State then
    DBGrid1.Canvas.Brush.Color := clHighlight;

  DBGrid1.Canvas.Brush.Style := bsSolid;

  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?20.09.2006. u 18:01 - pre 214 meseci
Code:

const n=100
begin
 for i=1 to n do
  begin
   ShowMessage('Hvala savkic!');
  end;
end;


Hvala za ovaj kod. Pozdravljam te.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?21.09.2006. u 07:37 - pre 214 meseci
E baš si me slatko nasmejao :)
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?27.09.2006. u 22:59 - pre 213 meseci
E sad mi treba jos ovo: (sta cu dok razvijam aplikaciju nailaze problemi) kako da postavim Tracking na klizace DBGrid-a? Kada skrolujem DBGrid skrolovanje radi tek onda kada pustim klizac. Potrebno je ukljuciti tracking ali ove opcije nema nigde u Propertiju DBGrida kao sto je imaju, recimo, klizaci formi (Tracking: true/false).
???
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?28.09.2006. u 07:59 - pre 213 meseci
> E sad mi treba jos ovo: (sta cu dok razvijam aplikaciju nailaze problemi) kako
> da postavim Tracking na klizace DBGrid-a? Kada skrolujem DBGrid skrolovanje
> radi tek onda kada pustim klizac. Potrebno je ukljuciti tracking ali ove opcije nema

Moraćeš sam da uradiš scroll, handluj WM_VSCROLL i prati SB_THUMBTRACK događaj.
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?28.09.2006. u 15:59 - pre 213 meseci
Citat:
savkic:
Moraćeš sam da uradiš scroll, handluj WM_VSCROLL i prati SB_THUMBTRACK događaj.

Savkic, može li to malo konkretnije i gde treba da pisem taj kod?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?29.09.2006. u 08:41 - pre 213 meseci
> Savkic, može li to malo konkretnije i gde treba da pisem taj kod?

Nemam ovde kod pa ti eventualno mogu poslati popodne. U tvojoj grid kontroli trebas da ubacis message handler za WM_VSCROLL poruku, najbolje ti je da pogledas primere u VCLu kako se handluje ta poruka.
 
Odgovor na temu

fusion3

Član broj: 109920
Poruke: 40
213.149.123.*



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?29.09.2006. u 09:33 - pre 213 meseci
Dobro cekacu taj kod. Samo mi je bitno da mi napises gde treba da pisem kod, da li na neki event DBGrid-a ili negde drugde? HVALA!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?29.09.2006. u 10:01 - pre 213 meseci
> Dobro cekacu taj kod. Samo mi je bitno da mi napises gde treba da pisem kod, da li
> na neki event DBGrid-a ili negde drugde? HVALA!

Ubacis u private sekciju, otprilike ovako bi isla deklaracija ali pogledaj u nekoj postojecoj VCL kontroli kako ide tacno sintaksa.
private
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
protected
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?24.02.2007. u 16:55 - pre 208 meseci
Imam problem sa bojenjem kolona-Row, kada ubacim kod koji je savkic postavio slova mi budu ne vidljiva tj pretpostavljam bela,ista kao i pozadina, cim se ne vide.

DefaulDrawing sam stavi na False

kako da resim problem bojenja Row-a ??

[Ovu poruku je menjao Brkic dana 24.02.2007. u 19:03 GMT+1]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako obojiti svaki neparan red u DBGrid-u?24.02.2007. u 19:04 - pre 208 meseci
> Imam problem sa bojenjem kolona-Row, kada ubacim kod koji je savkic postavio slova mi budu ne vidljiva tj pretpostavljam bela,ista
> kao i pozadina, cim se ne vide. DefaulDrawing sam stavi na False

Nešto ne radiš kako treba, DefaultDrawing može ostati True a ti moraš handlovati OnDrawColumnCell event. Ako ti i dalje ne radi pošalji kod.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako obojiti svaki neparan red u DBGrid-u?

Strane: 1 2

[ Pregleda: 5297 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

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