• 13 odgovora
  • 4.736 pregleda
Zezancije sa DBGrid-om! 24.11.2006. u 06:06 · pre 242 meseci #1
Kako mogu da citam podatke iz DBGrid-a?
Recimo da ako imam u prvoj koloni vrednost "D" onda da mi taj red bude obojen u crveno a ako je "N" onda da mi je obojen u zeleno?
Isto tako zeleo bih taj red koji je selektovan, da pritiskom na jedno dugme mogu iscitati njegove vrednosti..
Kako mogu saznati koji je redni broj tog reda kojeg sam selektovao?
Hvala
Re: Zezancije sa DBGrid-om! 24.11.2006. u 06:43 · pre 242 meseci #3
if absquery1.FieldValues['OTPUSTEN'] = 'D'
then dbgrid1.canvas.brush.Color := clSilver
else dbgrid1.canvas.brush.Color := clWhite;

dbgrid1.Canvas.Font.Color:=clblack;
dbgrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

Dobro, ovako sam resio.. Ali problem je sto kada selektujem misem jedan red ne oznaci mi se plavom bojom taj red kao da je oznacen? Zasto?
Re: Zezancije sa DBGrid-om! 24.11.2006. u 07:23 · pre 242 meseci #4
Citat:
Dobro, ovako sam resio.. Ali problem je sto kada selektujem misem jedan red ne oznaci mi se plavom bojom taj red kao da je oznacen? Zasto?


?????
Re: Zezancije sa DBGrid-om! 24.11.2006. u 08:04 · pre 242 meseci #5
Code:

if not (gdSelected in State) then
begin
  if absquery1.FieldValues['OTPUSTEN'] = 'D' then 
    dbgrid1.canvas.brush.Color := clSilver
  else 
    dbgrid1.canvas.brush.Color := clWhite;
  dbgrid1.Canvas.Font.Color:=clblack
end;
dbgrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);


za citanje vrednosti je objasnjeno na drugom linku iz prethodnog posta: citaj iz dataseta - uvek su dbgrid i dataset sa kojim je povezan pozicionirani na istom recordu
i o rednom broju je bilo reci. Dobijas ga sa:
DataSet.RecNo

[Ovu poruku je menjao badam dana 24.11.2006. u 09:36 GMT+1]
Re: Zezancije sa DBGrid-om! 30.11.2006. u 10:27 · pre 242 meseci #6
Ofarbaju mi se redovi u Dbgridu po zatatom uslovu ali muci me to da kada kliknem misem na jedan red, nece da poplavi ta linija.. Ono kao da je selektovano. Selektovano je, medjutim samo je uokvireno sivom bojom polje a nije onako ofarbano u plavo.. Kako to da resim da se jasno vidi da je nesto selektovano?
Re: Zezancije sa DBGrid-om! 30.11.2006. u 11:28 · pre 242 meseci #7
> jedan red, nece da poplavi ta linija.. Ono kao da je selektovano. Selektovano je,
> medjutim samo je uokvireno sivom bojom polje a nije onako ofarbano u plavo..

Ne mogu sada da probam ali koliko se sećam jedan od mogućih vrednosti za State je gdFocused (ili slično), koji kaže da je slog ili polje trenutno aktivno. Samo treba da handluješ i taj slučaj pa da uradiš farbanje kako ti odovara.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Zezancije sa DBGrid-om! 30.11.2006. u 11:28 · pre 242 meseci #8
Probaj ovo da dodaš u OnDrawColumnCell:

Code:

  if gdSelected in State then
    begin
      DBGrid1.Canvas.Brush.Color:=clBlue;
      DBGrid1.Canvas.Font.Color:=clWhite;
    end;

Re: Zezancije sa DBGrid-om! 30.11.2006. u 12:10 · pre 242 meseci #10
@savkic: gdFocused se odnosi na input fokus, tako da nece raditi sa celim redom. Matez pominje red, pa sam zato stavio gdSelected.

ono sto sam pre postovao kod mene radi. potrebno je samo u options od dbgrida staviti dgRowSelect i dgAllwaysShowSelection na True
Re: Zezancije sa DBGrid-om! 30.11.2006. u 14:28 · pre 242 meseci #11
> @savkic: gdFocused se odnosi na input fokus, tako da nece raditi sa celim redom. Matez pominje red, pa sam zato stavio gdSelected.

Problem je ako se selektuje više slogova, zato sam išao na focus jer mi se čini da DBGrid podržava multi select.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Zezancije sa DBGrid-om! 30.11.2006. u 15:20 · pre 242 meseci #12
Citat:
savkic:Problem je ako se selektuje više slogova, zato sam išao na focus jer mi se čini da DBGrid podržava multi select.

Da, u okviru TDBGrid -a postoji property MultiSelect i treba jednostavno vrednost postaviti na True.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Zezancije sa DBGrid-om! 30.11.2006. u 18:54 · pre 242 meseci #13
bas zbog multi selecta bi i trebalo gdSelected. ako se koristi gdFocused, onda (iako je ukljuceno dgRowSelect) ostaje prikazan plavim samo jedan cell, a ne ceo red. mrzi me da proveravam sta bi bilo pri multi selectu, ali mislim da bi gdFocused opet dao samo jedan cell (onaj koji ima input fokus), a gdSelected bi dao svaki selektovan red.
Re: Zezancije sa DBGrid-om! 05.12.2006. u 00:30 · pre 242 meseci #14
Ako je to ovo?
Code:

procedure TForm1.VolgaDBGrid2DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TVolgaColumn;
  State: TGridDrawState);
 begin
 VolgaDBGrid2.Options:=[dgEditing,dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,
dgConfirmDelete,dgCancelOnExit,dgEnterToTab,dgMultiSelect];
  if (gdSelected in State) then
     begin
         VolgaDBGrid2.Canvas.Font.Color := rgb(250,250,200);
         VolgaDBGrid2.Canvas.Font.Style := [fsBold];
         VolgaDBGrid2.Canvas.Brush.Color := rgb(80,110,160);
         VolgaDBGrid2.Canvas.FillRect(Rect);
         VolgaDBGrid2.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.AsString);
     end;
end;


Ja sam koristio Volga komponentu jer ima prelazak sa ENTER sa ćelije na ćeliju isto kao i sa TAB.

Znači ceo red mi se označi po HighLightColor i HighLightTextColor iz ObjectInspectora,
a svaka ternutno fokusirana ćelija ima bela bold slova i boju iz gore priloženog.

@badem

E sad, ovde sam zapeo

Citat:


citaj iz dataseta - uvek su dbgrid i dataset sa kojim je povezan pozicionirani na istom recordu
i o rednom broju je bilo reci. Dobijas ga sa:
DataSet.RecNo



Kada kliknem samo na pozicioner ili pomerim scroll-om, Multiselect dobija tačku a trenutni red crni trouglić,
a ja zelim da selektovani pozicioner dobije i multi select.
Jasno mi je da će DataSet.RecNo dobiti vrednost selektovanog reda, ali kako da to primenim u DrawColumnCell???
Potpis
Sto puta sam ti SRPSKI rekao:
ono što jednom crack-uješ,
ne možeš više da patch-uješ!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme