pardon hdayinin mesajına cevap yazmıştım ama ben gönderinceye kadar bir çok cevap eklenmiş. İlk olarak verileri veritabanından alıyorum. Biz kayıtta düzeltme yapmak için bu tarzda bir combobox a ihtiyaç duydum. DblookupComboBox işimi çok iyi görüyor kod karmaşamı önemli ölçüde azaltıyor fakat düzeltmeden önceki değerlerin seçili gelmesini istiyorum. Bunu beceremedim.
TComboBox da ise 40 satır kod 3 tane fonksiyon yazdıktan sonra DblookupCombo Boxa yaklaşıp geçiyor fakat bu seferde AddObject ile uğraşmak istemdeiğimden işlemler olmuyordu AddObject siz olmayacak anlaşıldı.
Combo box sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kod: Tümünü seç
SubeNameComboBox->Items->AddObject(DM->IBQuery1->FieldValues["SUBENAME"], TObject(DM->IBQuery1->FieldValues["SUBE_ID"]));
DM->IBQuery1->Next();
[C++ Error] KasaNoDuzeltFormUnt.cpp(52): E2285 Could not find a match for 'TObject::TObject(Variant)'
[C++ Error] KasaNoDuzeltFormUnt.cpp(52): E2459 VCL style classes must be constructed using operator new
şeklinde hata alıyorum. bunu nasıl aşabilirim ???? TObject ti bu şekilde kullanamıyacam
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Kod: Tümünü seç
int SubeID;
SubeID = DM->IBQuery1->FieldValues["SUBE_ID"];
SubeNameComboBox->Items->AddObject(DM->IBQuery1->FieldValues["SUBENAME"], (TObject *) SubeID));
DM->IBQuery1->Next();
Not: BCB 6 da bir türlü
...->fieldbyname(SUBE_ID).AsString şeklinde tanımlama yapamadım Structure required on left side of . or .* şeklinde bir hata alıyordum.
-------------------------------------------
Kod a ufak bir eksiklik vardı onu düzelttim
En son stnonstop tarafından 27 Tem 2005 04:37 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Kod: Tümünü seç
void __fastcall TKasaNoDuzeltForm::FormShow(TObject *Sender)
{
AnsiString SQL;
int RecCnt, SubeID, MusteriID;
SQL = "select * from KASANO where KASANO_ID = '"+KasaIDEdit->Text+"' ";
KasaNoEdit->DataSource = DM->dsKasaEdit;
DM->QuerySelectSetup(DM->IBKasaEdit, SQL);
// SubeNameComboBox ve MusteriNameComboBox Textlerinin Ön seçimli olarak alınması
SQL = "select SUBE.SUBENAME, MUSTERI.MUSTERI_NAME ";
SQL += "from SUBE, MUSTERI ";
SQL += "where SUBE.SUBE_ID = '"+DM->IBKasaEdit->FieldValues["SUBE_ID"]+"' ";
SQL += " and MUSTERI.MUSTERI_ID = SUBE.MUSTERI_ID";
DM->QuerySelectSetup(DM->IBQuery1, SQL);
SubeNameComboBox->Text = DM->IBQuery1->FieldValues["SUBENAME"];
MusteriNameComboBox->Text = DM->IBQuery1->FieldValues["MUSTERI_NAME"];
// SubeNameComboBox Doldurulması
SQL = "select * from SUBE where MUSTERI_ID = '"+DM->IBKasaEdit->FieldValues["MUSTERI_ID"]+"' ";
DM->QuerySelectSetup(DM->IBQuery1, SQL);
DM->IBQuery1->Last();
RecCnt = DM->IBQuery1->RecordCount;
DM->IBQuery1->First();
for (int i=0; i<RecCnt; i++)
{
SubeID = DM->IBQuery1->FieldValues["SUBE_ID"];
SubeNameComboBox->Items->AddObject(DM->IBQuery1->FieldValues["SUBENAME"], (TObject*) SubeID);
DM->IBQuery1->Next();
}
// MusteriNameComboBox Doldurulması
SQL = "select * from MUSTERI ";
DM->QuerySelectSetup(DM->IBQuery1, SQL);
DM->IBQuery1->Last();
RecCnt = DM->IBQuery1->RecordCount;
DM->IBQuery1->First();
for (int i=0; i<RecCnt; i++)
{
MusteriID = DM->IBQuery1->FieldValues["MUSTERI_ID"];
MusteriNameComboBox->Items->AddObject(DM->IBQuery1->FieldValues["MUSTERI_NAME"], (TObject*) MusteriID);
DM->IBQuery1->Next();
}
}
//---------------------------------------------------------------------------
void __fastcall TKasaNoDuzeltForm::SubeNameComboBoxChange(TObject *Sender)
{
AnsiString SQL;
ShowMessage(SubeNameComboBox->ItemIndex);
}
//---------------------------------------------------------------------------
void __fastcall TKasaNoDuzeltForm::MusteriNameComboBoxChange(
TObject *Sender)
{
AnsiString SQL;
int MusteriID, RecCnt, SubeID;
/* MusteriComboBox sında backspacese basılması nedeniyle oluşan hatayı engeller ;*/
if (! MusteriNameComboBox->Enabled)
{
MusteriNameComboBox->Enabled = true;
MusteriNameComboBox->Text = "";
MusteriNameComboBox->SetFocus();
return;
}
/* MusteriNameComboBox sında olmayan bir item ın seçilmeye çalıştığı sırada
oluşan out of index hatasının oluşmasını engeller */
if (MusteriNameComboBox->ItemIndex == -1)
{
return;
}
/* ----------------------------------------------------------------------*/
MusteriID = int(MusteriNameComboBox->Items->Objects[MusteriNameComboBox->ItemIndex]);
SQL = "select * from SUBE where MUSTERI_ID = '"+IntToStr(MusteriID)+"' ";
DM->QuerySelectSetup(DM->IBQuery1, SQL);
DM->IBQuery1->Last();
RecCnt = DM->IBQuery1->RecordCount;
DM->IBQuery1->First();
if (RecCnt == 0)
{
return;
}
SubeNameComboBox->Items->Clear();
SubeNameComboBox->Text = DM->IBQuery1->FieldValues["SUBENAME"];
for (int i=0; i<RecCnt; i++)
{
SubeID = DM->IBQuery1->FieldValues["SUBE_ID"];
SubeNameComboBox->Items->AddObject(DM->IBQuery1->FieldValues["SUBENAME"], (TObject*) SubeID);
DM->IBQuery1->Next();
}
}
//---------------------------------------------------------------------------
void __fastcall TKasaNoDuzeltForm::MusteriNameComboBoxKeyPress(
TObject *Sender, char &Key)
{
int intKey;
intKey = int(Key);
if (intKey == 13 )
{
MusteriNameComboBoxChange(Sender) ;
}
else if (intKey == 8)
{
// Backspacese basıldığında MusteriComboBoxı ayarlaması
MusteriNameComboBox->Enabled = false;
return;
}
}
//---------------------------------------------------------------------------
