/
Forside
/
Teknologi
/
Udvikling
/
C/C++
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
C/C++
#
Navn
Point
1
BertelBra..
2425
2
pmbruun
695
3
Master_of..
501
4
jdjespers..
500
5
kyllekylle
500
6
Bech_bb
500
7
scootergr..
300
8
gibson
300
9
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
Alle emner
Teknologi
Udvikling
C/C++
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177558
Tips :
31968
Nyheder :
719565
Indlæg :
6408926
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.