[ popmilan76 @ 14.11.2015. 22:00 ] @
Imam combobox koji punim iz baze...i on mi prikazuje dve kolone,ono sto mi treba jeste da kada izaberem prikaze samo drugu kolonu,sto mi je string,ali da prvu kolonu,integer, zapamti i ubaci je kasnije u bazu kad kliknem na button...Ne znam jesam li jasan?
[ Rapaic Rajko @ 15.11.2015. 10:17 ] @
Pogledaj sve event-e sa 'Before' u nazivu, kako od combobox-a, tako i od njegovog dataset-a; neki ce vec odgovarati.

Pozz
[ popmilan76 @ 15.11.2015. 10:28 ] @
Gledao sam,meni ce odgovarati i ovako,evo primera

izaberem u combobox = '3 - maticna ploca'

i neka mi to prikaze u combobox i kada kliknem na dugme za upis u bazu

da mi upise samo broj 3

dakle samo prvo polje iz queryija....

[ salvaric @ 15.11.2015. 16:07 ] @
kad učitavaš:
while not Query.eof do
begin
ComboBox.Items.AddObject(FieldByName('id').AsString+' - '+FieldByName('opis').AsString ,TObject(FieldByName('id').AsInteger));
Query.Next;
end;


Kad snimaš:
Query.FieldByName('id').Value := Integer(TObject(ComboBox.Items.Objects[ComboBox.ItemIndex]);
[ popmilan76 @ 15.11.2015. 17:03 ] @
Ucitavanje nije problem,vec ovo snimanje,ovaj deo za sniamnje prikazuje gresku,isto tako mi nije problem da snimim id polje,ali mi je problem snimanje nekog drugog polja...
[ captPicard @ 15.11.2015. 18:17 ] @
Napravi funkciju koja ti u stringu uzima vrijednost koja se nalazi prije znaka "-", ako zapisuješ vrijednosti u combo kao 1 - nesto.
[ popmilan76 @ 15.11.2015. 18:44 ] @
Da,mislio sam na to,ali bih hteo elegantnije resenje...ako bas nista ,uradicu to...
[ salvaric @ 15.11.2015. 18:57 ] @
Napiši kod i koju ti grešku daje, pa možda i pomogne neko.
[ popmilan76 @ 15.11.2015. 19:30 ] @
Ovo mi je kod za prikazivanje podataka u comboboxu....

sifradela1 je publik promenjiva

procedure TFrmUnosDesktop.ComboBox1DropDown(Sender: TObject);
begin
with ADOQuery1 do
begin
combobox1.Clear;
Close;
SQL.Clear;
SQL.Add('select * from [komponenta]');
SQL.Add('where sifradela = 4');

Open;


ADOQuery1.First;

while (not ADOQuery1.Eof) do
begin

comboBOX1.Items.AddObject(adoquery1.Fields[3].AsString, Pointer(adoquery1.Fields[2].AsInteger));

adoquery1.Next;
sifradela1 := Integer(ComboBox1.Items.Objects[0]);
end;

end;
end;


i posle kada izlazim iz comboboxa,treba da se pojavi u labelu prva cifra

procedure TFrmUnosDesktop.ComboBox1Exit(Sender: TObject);
begin
label1.Caption := inttostr(sifradela1 );
end;

end.

[ salvaric @ 15.11.2015. 20:03 ] @
Code:

procedure TFrmUnosDesktop.ComboBox1DropDown(Sender: TObject);
begin
with ADOQuery1 do
begin
combobox1.Clear;
Close;
SQL.Clear;
SQL.Add('select * from [komponenta]');
SQL.Add('where sifradela = 4');

Open;


//ADOQuery1.First;  suvišno, kad se Query otvori on je po defaultu  na prvom slogu

while (not ADOQuery1.Eof) do
begin
    comboBOX1.Items.AddObject(adoquery1.Fields[3].AsString, TObject(adoquery1.Fields[2].AsInteger));
    adoquery1.Next;
    //sifradela1 := Integer(ComboBox1.Items.Objects[0]);   suvišno, integer je snimljen već u objekat
end;

end;
end;

procedure TFrmUnosDesktop.ComboBox1Exit(Sender: TObject);
begin
label1.Caption := inttostr(Integer(TObject(ComboBox1.Items.Object[ComboBox1.ItemIndex]));
end;



pokusaj da učitaš na ovaj način, trebalo bi da radi.
[ Milan Milosevic @ 15.11.2015. 20:18 ] @
Mislim da to može mnogo jednostavnije da se uradi i da kod tebe nešto nije dobro kod projekcije same baze.
Recimo da koristiš TDBLookupComboBox za prikaz pojedinačnih polja iz baze
[ popmilan76 @ 15.11.2015. 20:19 ] @
Izlazi greska na object....u label1.caption
[ popmilan76 @ 15.11.2015. 20:21 ] @
taj object je mozda suvisan,bez njega izlazi neki bezveze broj,sa 7 cifara
[ salvaric @ 15.11.2015. 20:36 ] @
umesto adoquery1.Fields[2] koristi adoquery1.FieldByName('polje') i navedi tačan naziv polja.

Ovo bi trebalo da radi ako ti je adoquery1.Fields[2] polje u bazi tipa Integer, sve zavisi kako si projektovao tabelu u bazi.
[ popmilan76 @ 15.11.2015. 20:42 ] @
Kad se postavi taj kod,ono object je odmah zacrnjeno...i prikazuje gresku indetifer excepted but 'object' found

Ado query1.fields[2] jeste integer
[ captPicard @ 15.11.2015. 20:53 ] @
na kojoj liniji ti da tu grešku?
[ popmilan76 @ 15.11.2015. 20:59 ] @
label1.Caption := inttostr(Integer(TObject(ComboBox1.Items.Object[ComboBox1.ItemIndex]));
[ salvaric @ 15.11.2015. 21:04 ] @
Objects umesto Object, moja greška, iz glave sam pisao.

Label1.Caption:=IntToStr(INTEGER(TObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex])));

Evo ti primer u prilogu koji lepo radi to što tražiš
[ captPicard @ 15.11.2015. 21:05 ] @
za početak ti fali jedna zagrada na kraju, ako dobro vidim
[ Milan Milosevic @ 15.11.2015. 21:14 ] @
Šta će da se desi ako ti u bazi polje sifradela imaju recimo 1000 vrednosti 4
[ popmilan76 @ 15.11.2015. 21:19 ] @
Hvala Salvaric,to je to....sve sljaka kako treba....