Novo

Forum kao aplikacija na telefonu

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

  • 10 odgovora
  • 5.410 pregleda

Najnovija ↓

DBGrid, sirina kolona 27.07.2006. u 11:12 · pre 246 meseci #1
Kako se moze programski izvrsiti zbijanje kolona u DBGridu tako da sirina kolone odgovara duzini zapisa,
kako se ne bi nekontrolosano sirile u tabeli? Radi se u BCB6.
Potpis
Ag + Na -> Xe
Re: DBGrid, sirina kolona 27.07.2006. u 12:23 · pre 246 meseci #2
Pokušaj ovo za svaki stupac,
Code:
DBGrid1->Columns[0].RebuildColumns();

...iako se meni to i ne sviđa jer uvijek stavljam sve fiksne dužine. Ako mi baš to treba onda u DBGridu koristim font Courier jer su svi znakovi jednake duljine pa po formuli izračunam duljinu stupca u ovisnosti o broju znakova koji se prikazuje u koloni..
Re: DBGrid, sirina kolona 29.07.2006. u 18:38 · pre 246 meseci #3
Citat:
DBGrid1->Columns[0].RebuildColumns();


meni ovo ne radi... ??

ima li neki drugi, elegantniji, nacin (koji radi ;-) )
Potpis
there's something out there
waiting for us,
and it ain't no man...
Re: DBGrid, sirina kolona 29.07.2006. u 19:16 · pre 246 meseci #4
Nisam isprobao, ali medota TCanvas::TextWidth() bi trebala da pomogne.

Canvas->TextWidth( "neki tekst" ) bi trebalo da vrati duzinu stringa "neki tekst" u pixelima,
pa onda kolonu DBGrida u kome se nalazi tekst treba povecati na tu vrednost.

Na primer:

DBGrid1->Columns->Items[0]->Width = Canvas->TextWidth( DBGrid1->Columns->Items[0]->AsString ) + 2;

Mada ja licno nikada ne racunam najduzi tekst kolone, nego sirinu postavim na neke logicne vrednosti.
Re: DBGrid, sirina kolona 31.07.2006. u 12:48 · pre 246 meseci #5
Dobro, mislim da cu se zadovoljiti fiksiranjem sirine kolona,npr.:
Code:

int br_kolona = DBGrid1->Columns->Count;
for (int i=0;i<br_kolona;i++) {
  DBGrid1->Columns->Items[i]->Width = 85;
        }


Potpis
Ag + Na -> Xe
Re: DBGrid, sirina kolona 31.07.2006. u 18:38 · pre 246 meseci #6
Pored nacina koji i sam koristis:

DBGrid->Columns->Items[0]->Width = NEKA_VREDNOST_U_PIXELIMA;

Probaj i ovo:

DBGrid->Fields[0]->DisplayWidth = NEKA_VREDNOST_ALI_U_KARAKTERIMA;

(Nisam siguran, ali ovaj drugi bi valjda trebao da uzme u obzir i font da bi odredio sirinu. Najbolje isprobaj)
Re: DBGrid, sirina kolona 31.07.2006. u 22:52 · pre 246 meseci #7
nije lose ni ovako:
Code:

for(int i=0;i<DBGrid1->FieldCount;i++)
DBGrid->Columns->Items[i]->Width=DBGrid1->Width/(DBGrid1->FieldCount+1)


Ovako radim kada zelim da mi sva polja stanu u DBGrid1 bez obzira koliko su siroka...
Potpis
there's something out there
waiting for us,
and it ain't no man...
Re: DBGrid, sirina kolona 24.05.2009. u 17:50 · pre 212 meseci #8
Probao sam oba nacina kao sto objasnjava 'X Files' i to je tako dok ne pokrenem aplikaciju onda opet se sve razvuce i bude puno siroko, koristim Access bazu pomocu ADO komponenti.
Re: DBGrid, sirina kolona 24.05.2009. u 18:04 · pre 212 meseci #9
Gde si stavio kod za Resize kolona u TDBGridu?

Ako se radi o nekom dinamickom upitu, najbolje promenu sirine kolona (kod koji imas) stavi neposredno nakon upita.

Ako je broj kolona uvek isti, to mozes definisati i kroz Object inspector, bez koda.
Re: DBGrid, sirina kolona 24.05.2009. u 23:06 · pre 212 meseci #10
sve podesavam u object inspector, uspeo sam izgleda da je fora bila da DBGrid rasirim vertikalno vise tako da mi se nepojavljuje dole onaj klizac za pomeranje. Nemoze biti samo to verovatnio sam jos nesto cackao, jer pre se desavalo imam 8 kolona sve stavim 70 sirinu, snimim sve, pokrenem aplikaicju pa ugasim kad ono nekoliko kolona opet se vratilo na sirinu 300.
Re: DBGrid, sirina kolona 26.05.2009. u 15:27 · pre 212 meseci #11
Evo sta ja radim. Nije elegantno ali radi.
U dizajn modu postavi table-active na true, postavi sve sirine kolona kako zelis, vrati active na false i to je to.(ako umesto connstringa koristis ADOconnection postavi i njemu active na true)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme