|
| sammenligning Fra : Ukendt |
Dato : 30-08-05 12:35 |
|
en comboboks har jeg et par hundrede linie (items), som kan vælges.
Derudover har jeg en liste med ca 40 linier (items), som jeg dog ikke har
gjort noget ved endnu (altså er der ikke oprettet nogen form for memo,
comboboks, liste o.a. endnu, før jeg ved, hvad den bedste metode vil være.).
De ca. 40 linier her, er alle linier, som også forekommer i listen med et
par hundrede emner i comboboksen.
Det jeg gerne vil opnå er, at hvis det der er valgt i comboboksen også
findes i den lille liste med 40 emner, så skal der ske et eller andet.
Hvordan får jeg lavet denne sammenligning og hvordan vil det være
fordelagtigt, at jeg laver min liste med de 40 emner
| |
Harald (30-08-2005)
| Kommentar Fra : Harald |
Dato : 30-08-05 16:16 |
|
"Museumsmedarbejderen" <ingen> skrev i en meddelelse
news:43144462$0$1187$edfadb0f@dread11.news.tele.dk...
> en comboboks har jeg et par hundrede linie (items), som kan vælges.
>
> Derudover har jeg en liste med ca 40 linier (items), som jeg dog ikke har
> gjort noget ved endnu (altså er der ikke oprettet nogen form for memo,
> comboboks, liste o.a. endnu, før jeg ved, hvad den bedste metode vil
> være.). De ca. 40 linier her, er alle linier, som også forekommer i listen
> med et par hundrede emner i comboboksen.
>
> Det jeg gerne vil opnå er, at hvis det der er valgt i comboboksen også
> findes i den lille liste med 40 emner, så skal der ske et eller andet.
>
> Hvordan får jeg lavet denne sammenligning og hvordan vil det være
Smid de 40 i en TStringList, der er flere muligheder for at "søge" i en
stringlist f.eks. Find eller IndexOf.
Hvis dine lister ikke ændre sig kunne du også en gang ved f.eks. program
opstart checke alle items i din combobox mod liste med de 40 i og så lave et
array med nogle boolean værdier, så skal der ikke bruges tid på at søge hver
gang der vælges en i comboboxen, men med en bare lidt hurtig computer er det
self. ikke noget problem at søge hver gang.
/HK
| |
Ukendt (31-08-2005)
| Kommentar Fra : Ukendt |
Dato : 31-08-05 07:43 |
|
"Harald" <nomail@noname.dk> skrev i en meddelelse
news:43147814$0$183$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <ingen> skrev i en meddelelse
> news:43144462$0$1187$edfadb0f@dread11.news.tele.dk...
>> en comboboks har jeg et par hundrede linie (items), som kan vælges.
>>
>> Derudover har jeg en liste med ca 40 linier (items), som jeg dog ikke har
>> gjort noget ved endnu (altså er der ikke oprettet nogen form for memo,
>> comboboks, liste o.a. endnu, før jeg ved, hvad den bedste metode vil
>> være.). De ca. 40 linier her, er alle linier, som også forekommer i
>> listen med et par hundrede emner i comboboksen.
>>
>> Det jeg gerne vil opnå er, at hvis det der er valgt i comboboksen også
>> findes i den lille liste med 40 emner, så skal der ske et eller andet.
>>
>> Hvordan får jeg lavet denne sammenligning og hvordan vil det være
Hej Harald. Tak for dine svar.
> Smid de 40 i en TStringList, der er flere muligheder for at "søge" i en
> stringlist f.eks. Find eller IndexOf.
Jeg har dog aldrig arbejdet med en TStringList før. Er det noget, som du vil
hjælpe med at forklare?
> Hvis dine lister ikke ændre sig kunne du også en gang ved f.eks. program
> opstart checke alle items i din combobox mod liste med de 40 i og så lave
> et array med nogle boolean værdier, så skal der ikke bruges tid på at søge
> hver gang der vælges en i comboboxen, men med en bare lidt hurtig computer
> er det self. ikke noget problem at søge hver gang.
Ligeledes har jeg også her problemer med at finde ud af, hvad du præcis
mener fremgangsmåden er og hvordan det gøres.
Til orientering i denne sammenhæng kan jeg fortælle, at de 40 kun ændrer
sig, når jeg selv laver en ny udgave. Men det er ikke sikkert, at de kommer
til at ændre sig.
Men for fremtidens skyld kunne jeg godt tænke mig at lære begge ovenstående
metoder, så jeg har værktøjet til at kunne klare det i fremtiden.
| |
Harald (31-08-2005)
| Kommentar Fra : Harald |
Dato : 31-08-05 09:35 |
|
"Museumsmedarbejderen" <ingen> skrev i en meddelelse
news:43155166$0$2338$edfadb0f@dread11.news.tele.dk...
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:43147814$0$183$edfadb0f@dtext01.news.tele.dk...
>> "Museumsmedarbejderen" <ingen> skrev i en meddelelse
>> news:43144462$0$1187$edfadb0f@dread11.news.tele.dk...
>>> en comboboks har jeg et par hundrede linie (items), som kan vælges.
>>>
>>> Derudover har jeg en liste med ca 40 linier (items), som jeg dog ikke
>>> har gjort noget ved endnu (altså er der ikke oprettet nogen form for
>>> memo, comboboks, liste o.a. endnu, før jeg ved, hvad den bedste metode
>>> vil være.). De ca. 40 linier her, er alle linier, som også forekommer i
>>> listen med et par hundrede emner i comboboksen.
>>>
>>> Det jeg gerne vil opnå er, at hvis det der er valgt i comboboksen også
>>> findes i den lille liste med 40 emner, så skal der ske et eller andet.
>>>
>>> Hvordan får jeg lavet denne sammenligning og hvordan vil det være
>
> Hej Harald. Tak for dine svar.
>
>> Smid de 40 i en TStringList, der er flere muligheder for at "søge" i en
>> stringlist f.eks. Find eller IndexOf.
>
> Jeg har dog aldrig arbejdet med en TStringList før. Er det noget, som du
> vil hjælpe med at forklare?
>
>> Hvis dine lister ikke ændre sig kunne du også en gang ved f.eks. program
>> opstart checke alle items i din combobox mod liste med de 40 i og så lave
>> et array med nogle boolean værdier, så skal der ikke bruges tid på at
>> søge hver gang der vælges en i comboboxen, men med en bare lidt hurtig
>> computer er det self. ikke noget problem at søge hver gang.
>
> Ligeledes har jeg også her problemer med at finde ud af, hvad du præcis
> mener fremgangsmåden er og hvordan det gøres.
>
> Til orientering i denne sammenhæng kan jeg fortælle, at de 40 kun ændrer
> sig, når jeg selv laver en ny udgave. Men det er ikke sikkert, at de
> kommer til at ændre sig.
>
> Men for fremtidens skyld kunne jeg godt tænke mig at lære begge
> ovenstående metoder, så jeg har værktøjet til at kunne klare det i
> fremtiden.
Først TStringList.
// (utestet)
var
StringList : TStringList;
i ; integer;
begin
StringList:=TStringList.Create;
for i:=1 to 40 do
StringList.Add(Minlinie[i]);
// nu er alle 40 emner inde i stringlisten
end;
for at teste om en tekst findes i StringListen gøres f.eks:
if StringList.IndexOf('En tekst')>-1 then
// ja den findes
Mht. den anden metode:
Du har f.eks. 200 emner så der oprettes et dynamist array til 200 emner:
(utestet)
var
MitArray : Array of boolean;
i : integer;
begin
SetLength(MitArray,ComboBox.Count);
// nu testet der for alle 200 på een gang
for i:=0 to ComboBox.Count-1 do
MitArray[i]:=StringList.IndexOf(ComboBox.Items[i])>-1;
end;
fremover når du skal checke om den valgte combobox linie findes skal der
ikke søges med IndexOf men blot kikkes på MitArray, f.eks.
if MitArray[ComboBox.ItemIndex) then
// ja den findes blandt de 40 emner
/HK
| |
Ukendt (01-09-2005)
| Kommentar Fra : Ukendt |
Dato : 01-09-05 09:54 |
|
"Harald" <nomail@noname.dk> skrev i en meddelelse
news:43156bb3$0$170$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <ingen> skrev i en meddelelse
> news:43155166$0$2338$edfadb0f@dread11.news.tele.dk...
>> "Harald" <nomail@noname.dk> skrev i en meddelelse
>> news:43147814$0$183$edfadb0f@dtext01.news.tele.dk...
>>> "Museumsmedarbejderen" <ingen> skrev i en meddelelse
>>> news:43144462$0$1187$edfadb0f@dread11.news.tele.dk...
>>>> en comboboks har jeg et par hundrede linie (items), som kan vælges.
>>>>
>>>> Derudover har jeg en liste med ca 40 linier (items), som jeg dog ikke
>>>> har gjort noget ved endnu (altså er der ikke oprettet nogen form for
>>>> memo, comboboks, liste o.a. endnu, før jeg ved, hvad den bedste metode
>>>> vil være.). De ca. 40 linier her, er alle linier, som også forekommer i
>>>> listen med et par hundrede emner i comboboksen.
>>>>
>>>> Det jeg gerne vil opnå er, at hvis det der er valgt i comboboksen også
>>>> findes i den lille liste med 40 emner, så skal der ske et eller andet.
>>>>
>>>> Hvordan får jeg lavet denne sammenligning og hvordan vil det være
>>
>> Hej Harald. Tak for dine svar.
>>
>>> Smid de 40 i en TStringList, der er flere muligheder for at "søge" i en
>>> stringlist f.eks. Find eller IndexOf.
>>
>> Jeg har dog aldrig arbejdet med en TStringList før. Er det noget, som du
>> vil hjælpe med at forklare?
>>
>>> Hvis dine lister ikke ændre sig kunne du også en gang ved f.eks. program
>>> opstart checke alle items i din combobox mod liste med de 40 i og så
>>> lave et array med nogle boolean værdier, så skal der ikke bruges tid på
>>> at søge hver gang der vælges en i comboboxen, men med en bare lidt
>>> hurtig computer er det self. ikke noget problem at søge hver gang.
>>
>> Ligeledes har jeg også her problemer med at finde ud af, hvad du præcis
>> mener fremgangsmåden er og hvordan det gøres.
>>
>> Til orientering i denne sammenhæng kan jeg fortælle, at de 40 kun ændrer
>> sig, når jeg selv laver en ny udgave. Men det er ikke sikkert, at de
>> kommer til at ændre sig.
>>
>> Men for fremtidens skyld kunne jeg godt tænke mig at lære begge
>> ovenstående metoder, så jeg har værktøjet til at kunne klare det i
>> fremtiden.
>
> Først TStringList.
>
> // (utestet)
> var
> StringList : TStringList;
> i ; integer;
> begin
> StringList:=TStringList.Create;
> for i:=1 to 40 do
> StringList.Add(Minlinie[i]);
> // nu er alle 40 emner inde i stringlisten
> end;
>
> for at teste om en tekst findes i StringListen gøres f.eks:
>
> if StringList.IndexOf('En tekst')>-1 then
> // ja den findes
>
> Mht. den anden metode:
>
> Du har f.eks. 200 emner så der oprettes et dynamist array til 200 emner:
> (utestet)
>
> var
> MitArray : Array of boolean;
> i : integer;
> begin
> SetLength(MitArray,ComboBox.Count);
> // nu testet der for alle 200 på een gang
> for i:=0 to ComboBox.Count-1 do
> MitArray[i]:=StringList.IndexOf(ComboBox.Items[i])>-1;
> end;
>
> fremover når du skal checke om den valgte combobox linie findes skal der
> ikke søges med IndexOf men blot kikkes på MitArray, f.eks.
>
> if MitArray[ComboBox.ItemIndex) then
> // ja den findes blandt de 40 emner
Tak Harald.
Et lille sidste spørgsmål.
Skal TStringListen, som du forklarer først, bruges ved begge metoder?
| |
Ukendt (01-09-2005)
| Kommentar Fra : Ukendt |
Dato : 01-09-05 10:03 |
|
"Harald" <nomail@noname.dk> skrev i en meddelelse
news:43156bb3$0$170$edfadb0f@dtext01.news.tele.dk...
> Først TStringList.
>
> // (utestet)
> var
> StringList : TStringList;
> i ; integer;
> begin
> StringList:=TStringList.Create;
> for i:=1 to 40 do
> StringList.Add(Minlinie[i]);
> // nu er alle 40 emner inde i stringlisten
> end;
Skal ovenstående TStringList bruges ved begge nedenstående metoder?
Hvad er "Minlinie" som du refererer til? (Jeg ved godt, at det er de 40, som
jeg selv har fortalt om, men hvad er det for et komponent eller hvad det
hedder? Jeg har nemlig stadig mine 40 værdier i et notepad dokument, som jeg
ikke har fået sat ind i projektet endnu, før jeg ved, om jeg skal sætte det
i et skjult memo eller noget andet?
Vil det i øvrigt være mest fordelagtigt at lave stringlisten i en procedure
for sig selv?
> for at teste om en tekst findes i StringListen gøres f.eks:
>
> if StringList.IndexOf('En tekst')>-1 then
> // ja den findes
>
> Mht. den anden metode:
>
> Du har f.eks. 200 emner så der oprettes et dynamist array til 200 emner:
> (utestet)
>
> var
> MitArray : Array of boolean;
> i : integer;
> begin
> SetLength(MitArray,ComboBox.Count);
> // nu testet der for alle 200 på een gang
> for i:=0 to ComboBox.Count-1 do
> MitArray[i]:=StringList.IndexOf(ComboBox.Items[i])>-1;
> end;
>
> fremover når du skal checke om den valgte combobox linie findes skal der
> ikke søges med IndexOf men blot kikkes på MitArray, f.eks.
>
> if MitArray[ComboBox.ItemIndex) then
> // ja den findes blandt de 40 emner
>
> /HK
>
>
| |
|
|