Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 4.747 pregleda

Najnovija ↓

Zezancije sa DBGrid-om! 24.11.2006. u 07:06 · pre 242 meseca #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 07:43 · pre 242 meseca #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 08:23 · pre 242 meseca #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 09:04 · pre 242 meseca
izmenjeno 1 put, poslednji put badam 24.11.2006. u 09:36
  1. badam24.11.2006. u 09:36zapis iz teksta poruke
#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
Re: Zezancije sa DBGrid-om! 30.11.2006. u 11:27 · pre 242 meseca #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 12:28 · pre 242 meseca #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 12:28 · pre 242 meseca #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 13:10 · pre 242 meseca #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 15:28 · pre 242 meseca #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 16:20 · pre 242 meseca #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 19:54 · pre 242 meseca #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 01:30 · pre 242 meseca #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