Novo

Forum kao aplikacija na telefonu

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

  • 20 odgovora
  • 6.753 pregleda

Najnovija ↓

Combobox sa dve kolone 14.11.2015. u 23:00 · pre 133 meseca #1
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?
Re: Combobox sa dve kolone 15.11.2015. u 11:17 · pre 133 meseca #2
Pogledaj sve event-e sa 'Before' u nazivu, kako od combobox-a, tako i od njegovog dataset-a; neki ce vec odgovarati.

Pozz
Re: Combobox sa dve kolone 15.11.2015. u 11:28 · pre 133 meseca #3
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....

Re: Combobox sa dve kolone 15.11.2015. u 17:07 · pre 133 meseca #4
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]);
Potpis
Nikad izvini!
Re: Combobox sa dve kolone 15.11.2015. u 18:03 · pre 133 meseca #5
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...
Re: Combobox sa dve kolone 15.11.2015. u 19:17 · pre 133 meseca #6
Napravi funkciju koja ti u stringu uzima vrijednost koja se nalazi prije znaka "-", ako zapisuješ vrijednosti u combo kao 1 - nesto.
Potpis
F
Re: Combobox sa dve kolone 15.11.2015. u 19:44 · pre 133 meseca #7
Da,mislio sam na to,ali bih hteo elegantnije resenje...ako bas nista ,uradicu to...
Re: Combobox sa dve kolone 15.11.2015. u 19:57 · pre 133 meseca #8
Napiši kod i koju ti grešku daje, pa možda i pomogne neko.
Potpis
Nikad izvini!
Re: Combobox sa dve kolone 15.11.2015. u 20:30 · pre 133 meseca #9
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.

Re: Combobox sa dve kolone 15.11.2015. u 21:03 · pre 133 meseca #10
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.
Potpis
Nikad izvini!
Re: Combobox sa dve kolone 15.11.2015. u 21:18 · pre 133 meseca #11
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
Re: Combobox sa dve kolone 15.11.2015. u 21:21 · pre 133 meseca #13
taj object je mozda suvisan,bez njega izlazi neki bezveze broj,sa 7 cifara
Re: Combobox sa dve kolone 15.11.2015. u 21:36 · pre 133 meseca #14
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.
Potpis
Nikad izvini!
Re: Combobox sa dve kolone 15.11.2015. u 21:42 · pre 133 meseca #15
Kad se postavi taj kod,ono object je odmah zacrnjeno...i prikazuje gresku indetifer excepted but 'object' found

Ado query1.fields[2] jeste integer
Re: Combobox sa dve kolone 15.11.2015. u 21:59 · pre 133 meseca #17
label1.Caption := inttostr(Integer(TObject(ComboBox1.Items.Object[ComboBox1.ItemIndex]));
Re: Combobox sa dve kolone 15.11.2015. u 22:04 · pre 133 meseca #18
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š
Potpis
Nikad izvini!
Re: Combobox sa dve kolone 15.11.2015. u 22:05 · pre 133 meseca #19
za početak ti fali jedna zagrada na kraju, ako dobro vidim
Potpis
F
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme