/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Søgning.....combobokse
Fra : \"Qvis\"


Dato : 17-04-01 22:59

Hejsa...

Jeg skal lave et program i borland builder 5.0 hvor jeg bl.a. vil søge efter
ledige biler. nogle af kravene er bl.a. programmering efter 3 lags modellen.
Jeg vil gerne lave søgningen via nogle combobokse (dropdown) hvor den første
giver bynavnet og i den anden får præsenteret det ledige antal biler på
baggrund af valget i den første. Yderligere krav er at man kan benytte STL
biblioteket og VCL programmering.

Jeg har selvfølgelig lavet modelkomponent, datamodul m.v. men når jeg
forsøger med selve med den specifikke funktion går det galt håber nogle kan
hjælpe - her er den programstump jeg mener der er problemer med.

void __fastcall TReg_U::Udl_Sted_CombChange(TObject *Sender)
{

Udl_Breg_Comb->Clear();
list<ListeBil> ByNavn =
Bil->hentBilSted(Udl_Breg_Comb->Items->
Strings[Udl_Breg_Comb->ItemIndex].c_str());

list<ListeBil>::iterator i1;
for (i1 = ByNavn.begin(); i1 != ByNavn.end(); i1++)
{
String tempBilID = (*i1).hentBilID();
Udl_Breg_Comb->Items->Add(tempBilID);
}
}

Yderligere kan det nævnes at jeg har haft begge combobokse til at virke
særskilt (her var det så bare alle biler der blev søgt i databasen). Så jeg
ændrede den første til at vælge stedet og den anden til at vise ledige
biler.











 
 
Mogens Hansen (18-04-2001)
Kommentar
Fra : Mogens Hansen


Dato : 18-04-01 05:14

""Qvis"" <quis@post1.tele.dk> wrote in message
news:9bie5o$6oo$1@news.inet.tele.dk...
> Hejsa...
>
> Jeg skal lave et program i borland builder 5.0 hvor jeg bl.a. vil søge
efter
> ledige biler. nogle af kravene er bl.a. programmering efter 3 lags
modellen.

Hvordan er compile-time og link-time afhængighederne mellem de 3 lag ?

>
> void __fastcall TReg_U::Udl_Sted_CombChange(TObject *Sender)
> {
>
> Udl_Breg_Comb->Clear();
> list<ListeBil> ByNavn =
> Bil->hentBilSted(Udl_Breg_Comb->Items->
^^^^^^^^^^^^
> Strings[Udl_Breg_Comb->ItemIndex].c_str());
^^^^^^^^^^^^^

Du har lige tømt "Udl_Breg_Comb", hvorfor "Udl_Breg_Comb->ItemIndex" er -1
og "Udl_Breg_Comb->Items->Strings" er tom.

Kører du med Professional eller Enterprise udgaven af C++Builder ?
Hvis du gør, så slå CodeGuard til - det ville formodentlig have fundet
fejlen øjeblikkeligt.

>
> list<ListeBil>::iterator i1;
> for (i1 = ByNavn.begin(); i1 != ByNavn.end(); i1++)

^^^^

Lav det om til "standard-formen"
for (list<ListeBil>::iterator i1 = ByNavn.begin(); ByNavn.end() != i1;
++i1)

Ved at skrive "list<ListeBil>::iterator i1 = ByNavn.begin()" sikrer du at
iteratoren kun findes inden for "for-løkken". Så kan du iøvrigt bare kalde
den "i", for den konflikter ikke med andre løkker.
Ved at skrive "ByNavn.end() != i1", vil compileren kunne finde skrivefejlen
"ByNavn.end() = i1" - det er ikke tilfældet med skrivefejlen "i1 =
ByNavn.end()"
Ved "++i1" sparer du et temporært object, som du alligevel ikke har brug
for. Hvor ? Det er overladt som en øvelse til dig.

Held og lykke med lektierne.

Venlig hilsen

Mogens Hansen





Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste