Avatar billede ruma1974 Nybegynder
11. juli 2004 - 20:00 Der er 5 kommentarer og
1 løsning

caret position i memo angives forkert

Hej,

Jeg bruger Resultmemo.CaretPos.y til at finde hvilken linie som caret står på. Problemet er efter linie 579 returneres 1. 

Er der en anden måde at udvælge linier i en memo?

mvh,

Rune
Avatar billede nico26 Nybegynder
11. juli 2004 - 21:09 #1
Det er vist nok ikke positionen i hele bufferen, men positionen i den synlige del.
Avatar billede ruma1974 Nybegynder
12. juli 2004 - 11:47 #2
Jeg har ikke 579 linier synlige.
Avatar billede dkn Nybegynder
12. juli 2004 - 12:53 #3
prøv det her:

procedure CARETPos(H: THandle; var L,C : Word);
begin
  L := SendMessage(H,EM_LINEFROMCHAR,-1,0);
  C := LoWord(SendMessage(H,EM_GETSEL,0,0)) - SendMessage(H,EM_LINEINDEX,-1,0);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  LineNum,ColNum : Word;
begin
  CARETPos(Memo1.Handle,LineNum,ColNum);
  Edit1.Text := IntToStr(LineNum) + '  ' + IntToStr(ColNum);
end;
Avatar billede ruma1974 Nybegynder
12. juli 2004 - 14:19 #4
Det virker perfekt - super

tak,

Rune
Avatar billede ruma1974 Nybegynder
12. juli 2004 - 14:23 #5
Det virker ikke når jeg acceptere :-(

Jeg ved ikke om det er min browser opsætning

Jeg har prøvt fra flere computer - det virker bare ikke

Det har medført at jeg har fået en dårlig karma :-(
Avatar billede ruma1974 Nybegynder
12. juli 2004 - 14:26 #6
Jeg fik det tilat virke :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester