linje og tegnnummer

Tags:    delphi

<< < 12 > >>
i mange editorer står der fx 123:45 nede i hjørnet, som viser hvor markøren er i linje og tegn. Hvordan gør man det i en memo?



18 svar postet i denne tråd vises herunder
6 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Du kan få tallene (i heltal) ved Memo1.CaretPos.X og Memo1.CaretPos.Y. Bagefter kan du jo så bare udskrive dem i en label eller hvad du nu bruger (det skal sættes i Memo1's OnChange event for at registrere markør-bevægelse):

Fold kodeboks ind/udKode 


n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 19/06-04 15:26:10 af Nicolai Lyster Fersner]



Jo OnChange opdatere selvfølgelig...
Det siger navnet onchange også :P

OnChange betyder "På skift". Dvs. at vær gang at der ændres noget i Memo'en vil den gennemlæse denne funktion.
Så vær gang du taster noget i memoen, så sker der et skift, for at eks. at memo'en ikke var markeret til at de er markeret (du ved markering ses når du kan se markøren). Det udløse så OnChange.

Så OnChange er fin til dette :D Prøv lige en ekstra gang.
Det virker iøvrigt også hos mig :P




Shafh
Shafh@stofanet.dk
Theis F. Hinz

En professionel er en person, som kan gøre sit bedste på tidspunkter,hvor han ikke ligefrem føler for det.



Du kan få tallene (i heltal) ved Memo1.CaretPos.X og Memo1.CaretPos.Y. Bagefter kan du jo så bare udskrive dem i en label eller hvad du nu bruger (det skal sættes i Memo1's OnChange event for at registrere markør-bevægelse):

Fold kodeboks ind/udKode 


n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 19/06-04 15:26:10 af Nicolai Lyster Fersner]


Du kan nu også sætte label'ens caption sådan her:
Fold kodeboks ind/udKode 
'

Og nej Shaft. Det virker ikke i en OnChange event... Måske i D7, men ihvertfald ikke i D6...

MH.

The-Freak

Livet er for kort til at kede sig.



Hei! Jeg vet ikke helt om det er dette du tenker på, men dropp en TTimer på din form, og sett dens Interval til ex. 100.
I Timer'ns OnTimer skriver du dette:
Fold kodeboks ind/udKode 


Jeg oppdaterte koden litt :)

... Ok.. Det er noe som ikke er helt som det skal være, men kanskje det hjelper deg litt:
Trykk ENTER et par ganger. Ok, nå er vi på linje 3:3. Så skriver du en bokstav på linje 3:3, og trykk OPP, og den viser at vi er på linje 2:4. ???

Mvh
DiZpel

[Redigeret d. 19/06-04 23:53:14 af DiZpel]



Fold kodeboks ind/udKode 


Jeppe Johansen
Jeppesoftware@hotmail.com

[Redigeret d. 24/06-04 16:59:07 af Jeppe]




Har prøvet det i både Delphi 6 PE og 7 PE, og det virker IKKE... Den opdaterer ikke før memoen's indhold bliver skiftet....


Så prøv at bruge onKeyUp/onMouseUp (for at få evt. museklik til at sætte cursor med).
Grunden til at du skal checke på OnKeyUp og ikke OnKeyDown er at du får et forkert resultat hvis du står i f.eks. øverste venstre hjørne. Desuden skal du vide at CaretPos.X og Y er nul-baseret, så hvis du vil have at øverste linie, første karakter er 1:1, skal du lægge 1 til begge værdier.

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk

[Redigeret d. 29/06-04 08:46:52 af Thomas Due]



onchange opdaterer ikke, når markørens position skifter.

hvordan ser man hvor langt der er scrollet i memoen?

Og er der en event for det?



Så placer den også i onKeyUp og OnMouseUp, så kan man ikke gøre noget uden den bliver opdateret.
Og hvad mener du lige med hvor langt der er scrollet, mener du så hvor mange linier markøren er nede i forhold til hvor mange linier der er i memoen i alt? For antal linier i memo'en kan findes ved Memo1.Lines.Count

n i f e
115 105 102 105
6E 69 66 69



OnChange

Ved Ændring, ændring i tekstens indhold, ikke i markørens position.

Har i øvrigt selv fundt ud af den med on mouse og key up

men hvilken linje er den første synlige linje i memoen? Hvordan finder man den?



OnChange

Ved Ændring, ændring i tekstens indhold, ikke i markørens position.

Har i øvrigt selv fundt ud af den med on mouse og key up

men hvilken linje er den første synlige linje i memoen? Hvordan finder man den?


Synlige??

Label1 := Memo1.Lines.Strings[0];

MH.

The-Freak

Livet er for kort til at kede sig.



<< < 12 > >>
t