I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg har sammenfattet det til følgende lille funktion som du kan benytte.
Function PosFromChar(Handle: Hwnd; CaretPos: Integer): TPoint; begin SendMessage(Handle, EM_POSFROMCHAR, longint(@Result), CaretPos); end;
Funktionen tager parametrene handle, der richeditens handle og en caretposition. Caret positionen er nem at hente da den er lig selstart. Resultatet er en TPoint type med positionen relativ til richeditens øverste venstre hjørne.
Et eks.
procedure TForm1.Button1Click(Sender: TObject); Begin Showmessage(\'x \' + IntToStr(PosFromChar(Richedit1.Handle, Richedit1.selstart).x) + \'; y \' + IntToStr(PosFromChar(Richedit1.Handle, Richedit1.selstart).y)); end;
Som delphijj så ganske rigtigt siger så er det ret enkelt nå man ved det !
PÅ den anden side er der ingen grund til at gøre tingende mere besværligt end de i virkeligheden er .....
delphijj svar er rigtigt, men efter min smag for besværligt .... Der findes en property på en RichEdit der hedder CarretPos. Jeg foreslår man benytter sig af denne.
Jeg vil foreslå det følgende :
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin with RichEdit1.CaretPos do Caption := Format(\'Carret pos (x,y) = (%d,%d)\',[x,y]); end;
Der er blot det \"lille\" problem at delphijj eksemple ikke virker ... Hvis nu du markerer noget tekst over 2 eller flere linjer så viser den noget forkert :o(
problemer er jo at du kører Delphiu 3 og ikke mindst Delphi 4. Du er derfor nød til selv at implemtere en funktion der kan giver dig positionen på en Cursor ... ref. Mit svar på \"Funktion ved linieskift\" (http://www.eksperten.dk/spm/23635)
Som jeg opfatter spørgsmålet er det et spørgsmål om hvilket koordinat careten har. Jens B dit forslag giver ikke dette men noget andet, hvad aner jeg ikke, jeg er ikke ekspert på dette område, men jeg kan se at y-koordinaten er lig linjenummeret!!! Mit forslag er ikke smukt, men giver den rette x og y-koordinat.
Prøv at checke deklarationen af TRichedit.CaretPos og skriv din vurdering af den.
delphij>> Vi er så fulstendig enig .. Der er bare flere måder at implemtere svaret på. Hvis du kigger på mit svar i http://www.eksperten.dk/spm/23635 vil du opdage at jes_petersen i jævne træk spørger om det samme og det svar jeg til sidst har givfet ham der minder meget om det du har giver her ...
Jens B
Synes godt om
Ny brugerNybegynder
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.