/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Pos |
Fra : Henning Madsen


Dato : 20-07-05 22:18

Fra en Ini fil indlæses til en kolonne opdelt ListBox i to kolonner følgende
11 Navn1
2 Navn2
4 Navn3
osv.
Hvis jeg klikker på en linie vises i et Edit feldt følgende
11|Navn1
2|Navn2
4|Navn3
osv.
Da jeg kun ønsker at hente navnene ønsker jeg at finde positionen af | med
P := Pos ('|',ListBox1.Items[ListBox1.ItemIndex]);
Resultatet er hvergang 0, hvad gør jeg forkert ??
Har det noget at gøre med al ListBoksen er opdelt i kolonner ??
Har prøvet at hente linien til et Edit feldt og søge på det, med samme
resultat.
Det kan oplyses at | ikke ses i listboksen.
Håber der er en der kan løse problemet.
mvh.
På forhånd tak
Henning Madsen



 
 
Lars G (21-07-2005)
Kommentar
Fra : Lars G


Dato : 21-07-05 08:12

Henning Madsen wrote:
> Fra en Ini fil indlæses til en kolonne opdelt ListBox i to kolonner følgende
> 11 Navn1
> 2 Navn2
> 4 Navn3
> osv.
> Hvis jeg klikker på en linie vises i et Edit feldt følgende
> 11|Navn1
> 2|Navn2
> 4|Navn3
> osv.
> Da jeg kun ønsker at hente navnene ønsker jeg at finde positionen af | med
> P := Pos ('|',ListBox1.Items[ListBox1.ItemIndex]);
> Resultatet er hvergang 0, hvad gør jeg forkert ??

Mon ikke det er denne line du skal bruge

P:= Pos ('|',ListBox1.Items.Strings[ItemIndex]);

--
Lars G

Harald (21-07-2005)
Kommentar
Fra : Harald


Dato : 21-07-05 08:24

"Lars G" <larsbg@_-_gmail.com> skrev i en meddelelse
news:97f9c$42df4ac4$3e3d83dc$20115@news.arrownet.dk...
> Henning Madsen wrote:
>> Fra en Ini fil indlæses til en kolonne opdelt ListBox i to kolonner
>> følgende
>> 11 Navn1
>> 2 Navn2
>> 4 Navn3
>> osv.
>> Hvis jeg klikker på en linie vises i et Edit feldt følgende
>> 11|Navn1
>> 2|Navn2
>> 4|Navn3
>> osv.
>> Da jeg kun ønsker at hente navnene ønsker jeg at finde positionen af |
>> med
>> P := Pos ('|',ListBox1.Items[ListBox1.ItemIndex]);
>> Resultatet er hvergang 0, hvad gør jeg forkert ??
>
> Mon ikke det er denne line du skal bruge
>
> P:= Pos ('|',ListBox1.Items.Strings[ItemIndex]);

Det er ikke nødvendig at skrive Strings da Strings er default property for
TStrings klassen.

/HK



Lars G (21-07-2005)
Kommentar
Fra : Lars G


Dato : 21-07-05 08:50

Harald wrote:
> "Lars G" <larsbg@_-_gmail.com> skrev i en meddelelse
> news:97f9c$42df4ac4$3e3d83dc$20115@news.arrownet.dk...

>>Mon ikke det er denne line du skal bruge
>>
>>P:= Pos ('|',ListBox1.Items.Strings[ItemIndex]);
>
>
> Det er ikke nødvendig at skrive Strings da Strings er default property for
> TStrings klassen.
>

Jeg prøvede det ikke af men troede det var en fejl da jeg altid bruger ...

--
Lars G

Harald (21-07-2005)
Kommentar
Fra : Harald


Dato : 21-07-05 08:17

"Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
news:42debf48$0$59430$edfadb0f@dread11.news.tele.dk...
> Fra en Ini fil indlæses til en kolonne opdelt ListBox i to kolonner
> følgende
> 11 Navn1
> 2 Navn2
> 4 Navn3
> osv.
> Hvis jeg klikker på en linie vises i et Edit feldt følgende
> 11|Navn1
> 2|Navn2
> 4|Navn3
> osv.
> Da jeg kun ønsker at hente navnene ønsker jeg at finde positionen af | med
> P := Pos ('|',ListBox1.Items[ListBox1.ItemIndex]);
> Resultatet er hvergang 0, hvad gør jeg forkert ??
> Har det noget at gøre med al ListBoksen er opdelt i kolonner ??
> Har prøvet at hente linien til et Edit feldt og søge på det, med samme
> resultat.
> Det kan oplyses at | ikke ses i listboksen.
> Håber der er en der kan løse problemet.

Det virker fint her både med Listbox og Edit, hvorfor kan | ikke ses i
listboksen? Når du henter linien ind i en Edit kan du så se | ?

/HK



Lars G (21-07-2005)
Kommentar
Fra : Lars G


Dato : 21-07-05 08:53

Harald wrote:
> "Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
> news:42debf48$0$59430$edfadb0f@dread11.news.tele.dk...

>>Det kan oplyses at | ikke ses i listboksen.
>>Håber der er en der kan løse problemet.
>
>
> Det virker fint her både med Listbox og Edit,

Ja også her testet på D3 og D2005

> hvorfor kan | ikke ses i
> listboksen? Når du henter linien ind i en Edit kan du så se | ?
>

Ja det må være here fejlen er. Altså at '|' mangler.

--
Lars G

Henning Madsen (21-07-2005)
Kommentar
Fra : Henning Madsen


Dato : 21-07-05 15:18

Tak for de mange svar, som desværre ikke gav nogen løsning.

Jeg vel prøve at give nogle flere oplysninger.

Først programmet:
procedure TForm1.ListBox1Click(Sender: TObject);
Var
P : Integer;
begin
P := Pos ('P',ListBox1.Items[ListBox1.ItemIndex]);
//P:= Pos ('|',ListBox1.Items.Strings[ItemIndex]); giver fejl
Edit1.Text := IntToStr (P);
Edit2.Text := (ListBox1.Items[ListBox1.ItemIndex]);
Edit3.Text :=
Copy(ListBox1.Items[ListBox1.ItemIndex],P,Length(ListBox1.Items[ListBox1.ItemIndex]));
End;

Der køres på DELPHI 4 og XP
Har prøvet at søge på Pos n det virker udmærket.
Gives P en fast værdi på 3 udlæses de linier som starter med 1 ciffer ok
Gives P en fast værdi på 4 udlæses de linier som starter med 2 ciffer ok
Det skal også bemærkes at ListBoksen er sat til 2 kolonner, har på
fornemmelsen at problemet
kommer derfra.
------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
Const
MAX_TABS = 1;
Tab = #9;
var
Tabulators: array[0..MAX_TABS] of integer;
Plads : TInifile;
Navn : String;
Navn1 : String;
Navn2 : String;
Antal, T, L, Stk : Integer;
begin
Tabulators[0] := 15;
ListBox1.TabWidth := 1;
SendMessage(ListBox1.Handle,LB_SETTABSTOPS,MAX_TABS,Longint(@Tabulators));
ListBox1.Clear;
ListBox2.Clear;
Plads := TIniFile.Create('C:\Egne Delphi Programmer\Plante
Placering\Plads.Ini');
Antal:= Plads.ReadInteger('Plads','Antal',0);

For T := 1 To Antal Do Begin
Navn := Plads.ReadString(IntToStr(T),'CirkelNavn','');
ListBox2.Items.Add(Navn);
end;

Stk := 1;
for T := 1 to Antal-1 Do begin
Navn1 := ListBox2.Items.Strings[T-1];
Navn2 := ListBox2.Items.Strings[T];
L := CompareText(Navn1,Navn2);
if L =0 then Stk := Stk + 1; // L er =0 ved ens navne.
if L <0 then begin // L er <0 ved uens navne.
ListBox1.Items.Add(IntToStr(Stk)+Tab+(Navn1));
Stk := 1;
end;
if T = Antal-1 then ListBox1.Items.Add(IntToStr(Stk)+Tab+(Navn2));
end;
end;
--------------------------------------------------------------------------------------
Håber der er en af jer der kan knække nøden
På forhånd tak
mvh
Henning



Harald (21-07-2005)
Kommentar
Fra : Harald


Dato : 21-07-05 16:57

"Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
news:42dfae5d$0$3397$edfadb0f@dread11.news.tele.dk...
> Tak for de mange svar, som desværre ikke gav nogen løsning.
>
> Jeg vel prøve at give nogle flere oplysninger.

<klip en stak kode>

Hvis din streng indeholder en | så vil pos("|",minstreng) også give dig
start værdien, hvis du får 0 så er det fordi der ikke er en | i din streng
(Listbox). Så problemet må være at det du henter fra ini filen ikke
indeholder nogle |´er.

Prøv at poste nogle linier fra din ini fil her.

/HK



Henning Madsen (21-07-2005)
Kommentar
Fra : Henning Madsen


Dato : 21-07-05 18:13


"Harald" <nomail@noname.dk> skrev i en meddelelse
news:42dfc5c9$0$169$edfadb0f@dtext01.news.tele.dk...
> "Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
> news:42dfae5d$0$3397$edfadb0f@dread11.news.tele.dk...
>> Tak for de mange svar, som desværre ikke gav nogen løsning.
>>
>> Jeg vel prøve at give nogle flere oplysninger.
>
> <klip en stak kode>
>
> Hvis din streng indeholder en | så vil pos("|",minstreng) også give dig
> start værdien, hvis du får 0 så er det fordi der ikke er en | i din streng
> (Listbox). Så problemet må være at det du henter fra ini filen ikke
> indeholder nogle |´er.
>
> Prøv at poste nogle linier fra din ini fil her.
>
> /HK
> Tak for svaret Haral.
Hermed en lille rettelse, mener dog ikke den endre noget.
Ini filen bliver ikke udlæst til ListBox1 men til ListBox2. En ListBox kan
jo sorterer i alfabetisk orden, det betyder i mit tilfælde hvor der er flere
ens navne (Løgplanter) at der er ligeså mange
løg som der er navne. (ListBox2 er gjort usynlig) Så tæller jeg navnene og
skriver antal og navn
i ListBox1. ListBox1 er med programmet (som vist) sat til 2 kolonner.

I ListBox1 vises ikke den lodrette streg, først når en markeret linie
overføres til et Edit feldt vises
stregen, som f.eks. 12|Navn, bemærk der er ingen mellemrum i udskriften.

En lille forklaring.
Har lavet en tegning over min parrasel hvor der med en lille cirkel er
markeret hvor hvert liljeløg
er sat. Det er plaseringen og navnet der er gemt i en Ini fil.

Håber ovenstående kan fortælle hvor og hvordan den lodrette streg fremkommer
og hvordan
den omgås.
mvh
Henning
>



Harald (21-07-2005)
Kommentar
Fra : Harald


Dato : 21-07-05 18:25

"Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
news:42dfd766$0$92931$edfadb0f@dread11.news.tele.dk...
>
> "Harald" <nomail@noname.dk> skrev i en meddelelse
> news:42dfc5c9$0$169$edfadb0f@dtext01.news.tele.dk...
>> "Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
>> news:42dfae5d$0$3397$edfadb0f@dread11.news.tele.dk...
>>> Tak for de mange svar, som desværre ikke gav nogen løsning.
>>>
>>> Jeg vel prøve at give nogle flere oplysninger.
>>
>> <klip en stak kode>
>>
>> Hvis din streng indeholder en | så vil pos("|",minstreng) også give dig
>> start værdien, hvis du får 0 så er det fordi der ikke er en | i din
>> streng (Listbox). Så problemet må være at det du henter fra ini filen
>> ikke indeholder nogle |´er.
>>
>> Prøv at poste nogle linier fra din ini fil her.
>>
>> /HK
>> Tak for svaret Haral.
> Hermed en lille rettelse, mener dog ikke den endre noget.
> Ini filen bliver ikke udlæst til ListBox1 men til ListBox2. En ListBox kan
> jo sorterer i alfabetisk orden, det betyder i mit tilfælde hvor der er
> flere ens navne (Løgplanter) at der er ligeså mange
> løg som der er navne. (ListBox2 er gjort usynlig) Så tæller jeg navnene og
> skriver antal og navn
> i ListBox1. ListBox1 er med programmet (som vist) sat til 2 kolonner.
>
> I ListBox1 vises ikke den lodrette streg, først når en markeret linie
> overføres til et Edit feldt vises
> stregen, som f.eks. 12|Navn, bemærk der er ingen mellemrum i udskriften.
>
> En lille forklaring.
> Har lavet en tegning over min parrasel hvor der med en lille cirkel er
> markeret hvor hvert liljeløg
> er sat. Det er plaseringen og navnet der er gemt i en Ini fil.
>
> Håber ovenstående kan fortælle hvor og hvordan den lodrette streg
> fremkommer og hvordan
> den omgås.

Der er jo ikke nogen steder i din kode hvor du indsætter en | i ListBox1, i
stedet adskiller du antal og navn med en Tab(#9).

/HK



Henning Madsen (21-07-2005)
Kommentar
Fra : Henning Madsen


Dato : 21-07-05 20:07


"Harald" <nomail@noname.dk> skrev i en meddelelse
news:42dfda81$0$186$edfadb0f@dtext01.news.tele.dk...
> "Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
> news:42dfd766$0$92931$edfadb0f@dread11.news.tele.dk...
>>
>> "Harald" <nomail@noname.dk> skrev i en meddelelse
>> news:42dfc5c9$0$169$edfadb0f@dtext01.news.tele.dk...
>>> "Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
>>> news:42dfae5d$0$3397$edfadb0f@dread11.news.tele.dk...
>>>> Tak for de mange svar, som desværre ikke gav nogen løsning.
>>>>
>>>> Jeg vel prøve at give nogle flere oplysninger.
>>>
>>> <klip en stak kode>
>>>
>>> Hvis din streng indeholder en | så vil pos("|",minstreng) også give dig
>>> start værdien, hvis du får 0 så er det fordi der ikke er en | i din
>>> streng (Listbox). Så problemet må være at det du henter fra ini filen
>>> ikke indeholder nogle |´er.
>>>
>>> Prøv at poste nogle linier fra din ini fil her.
>>>
>>> /HK
>>> Tak for svaret Haral.
>> Hermed en lille rettelse, mener dog ikke den endre noget.
>> Ini filen bliver ikke udlæst til ListBox1 men til ListBox2. En ListBox
>> kan jo sorterer i alfabetisk orden, det betyder i mit tilfælde hvor der
>> er flere ens navne (Løgplanter) at der er ligeså mange
>> løg som der er navne. (ListBox2 er gjort usynlig) Så tæller jeg navnene
>> og skriver antal og navn
>> i ListBox1. ListBox1 er med programmet (som vist) sat til 2 kolonner.
>>
>> I ListBox1 vises ikke den lodrette streg, først når en markeret linie
>> overføres til et Edit feldt vises
>> stregen, som f.eks. 12|Navn, bemærk der er ingen mellemrum i udskriften.
>>
>> En lille forklaring.
>> Har lavet en tegning over min parrasel hvor der med en lille cirkel er
>> markeret hvor hvert liljeløg
>> er sat. Det er plaseringen og navnet der er gemt i en Ini fil.
>>
>> Håber ovenstående kan fortælle hvor og hvordan den lodrette streg
>> fremkommer og hvordan
>> den omgås.
>
> Der er jo ikke nogen steder i din kode hvor du indsætter en | i ListBox1,
> i stedet adskiller du antal og navn med en Tab(#9).
>
> /HK
> Jeg glemte Ini filen. Den er her.
[Plads]
Antal=96
[1]
CirkelX=447
CirkelY=212
CirkelNavn=Fritillaria imperialis 'Rubra'
[2]
CirkelX=437
CirkelY=213
CirkelNavn=Fritillaria imperialis 'Rubra'
[3]
CirkelX=152
CirkelY=282
CirkelNavn=Speciosum var rubrum
Det gør det vist værken bedre eller dårligere, mon det er bedre at lave det
med en StringGrid, men den holder jo ikke selv styr på linieantal??
Det er ikke nemt at være mig.
mvh
Henning
>



Harald (21-07-2005)
Kommentar
Fra : Harald


Dato : 21-07-05 20:24

"Henning Madsen" <HKM@madsen.tdcadsl.dk> skrev i en meddelelse
news:42dff209$0$4072$edfadb0f@dread11.news.tele.dk...

<klip en masse>

>> Jeg glemte Ini filen. Den er her.
> [Plads]
> Antal=96
> [1]
> CirkelX=447
> CirkelY=212
> CirkelNavn=Fritillaria imperialis 'Rubra'
> [2]
> CirkelX=437
> CirkelY=213
> CirkelNavn=Fritillaria imperialis 'Rubra'
> [3]
> CirkelX=152
> CirkelY=282
> CirkelNavn=Speciosum var rubrum
> Det gør det vist værken bedre eller dårligere, mon det er bedre at lave
> det med en StringGrid, men den holder jo ikke selv styr på linieantal??
> Det er ikke nemt at være mig.

Hvorfor er | i første gang overhovedet blevet blandet ind i det, den er ikke
nogen steder i din ini fil og heller ingen steder i din kode?

Prøv at kikke på ListView, den holder både styr på kolonner og linieantal,
hvilket StringGrid også gør men ListView er mere moderne syntes jeg.

/HK



Stig Johansen (23-07-2005)
Kommentar
Fra : Stig Johansen


Dato : 23-07-05 07:28

Harald wrote:

> Hvorfor er | i første gang overhovedet blevet blandet ind i det, den er
> ikke nogen steder i din ini fil og heller ingen steder i din kode?

Fordi sådan viser Windows en tab i en editbox.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste