Avatar billede jaweni Nybegynder
02. januar 2004 - 01:37 Der er 7 kommentarer og
1 løsning

PageUp i Memo-boxe

Jeg indlæser data i et memo-box; men cursoren står ved den sidste indlæste linie. Hvordan får jeg cursoren til at stå ved den 1. linie?
Memo1.SetFocus virker ikke.

Kan man hardprogrammere en PageUp (ASCII-tegn #73) og i så fald hvordan?
Avatar billede fixxxer Nybegynder
02. januar 2004 - 06:22 #1
hva med Memo1.SelStart := 1; ?
Avatar billede hrc Mester
02. januar 2004 - 12:33 #2
SetFocus flytter markøren til TMemo'en, så den dur' ikke.

SelStart fungerer, men skal sættes til 0 for at starte på allerførste position.

Mht. at. scrolle. Der findes en ScrollBy metode som gav mig nogle pudsige resultater så det er nok ikke den bedste metode til det. Prøv at lege lidt med denne message:

  Memo1.Perform(EM_SCROLLCARET, 0, 0);

Jeg fandt lidt mere angående positionering af Caret'en:

procedure GetMemoRowCol (M : TMemo; var Row, Col : LongInt);
begin
  Row := SendMessage(M.Handle, EM_LINEFROMCHAR, M.SelStart, 0);
  Col := M.SelStart-SendMessage(M.Handle, EM_LINEINDEX, Row, 0);
end;

procedure SetMemoRowCol(M : TMemo; Row, Col : Integer);
begin
  M.SelStart := SendMessage(M.Handle, EM_LINEINDEX, Row, 0) + Col;
end;


Mener at have hørt, at TMemoen har en del funktionalitet som Borland ikke implementerede; derfor alle de kald Perform og SendMessage.
Avatar billede hrc Mester
02. januar 2004 - 12:39 #3
Se i øvrigt denne side (her er vist alt om TMemo'en):

http://www.swissdelphicenter.ch/en/tipsbycomp.php?component=Memo
Avatar billede jaweni Nybegynder
09. januar 2004 - 13:18 #4
Hej fixxxer & hcr!

Kan ikke få Selstart til at virke og har endnu ikke
afprøvet dit forslag hcr.

Har bestemt mig for at bruge en listbox, når jeg er
færdig med at indtaste de data, der skal kunne ses
og som ikke senere skal ændres.

Hvordan deles I om points?
Avatar billede fixxxer Nybegynder
09. januar 2004 - 15:00 #5
Nu ved jeg ikke hvordan du prøver at bruge Memo1.SelStart := 0;
Men det gør det du beder om! Eller også beder du om noget andet end det du beder om ? :)
Avatar billede jaweni Nybegynder
10. januar 2004 - 05:40 #6
Jeg bruger Memo1.SelStart := 0 som erstatning
for Memo1.SetFocus, altså lige efter at have
indlæst linier i memo'en.
Avatar billede hrc Mester
11. januar 2004 - 14:44 #7
Memo'en mistede focus da jeg testede SelStart - så det er nok der at tingene gik galt hos dig
Avatar billede jaweni Nybegynder
11. januar 2004 - 20:21 #8
Jeg har tænkt mig at bruge en listbox, når data
er blevet indtastet, så jeg stopper spørgsmålet.
Tak for denne gang med jeres kommentarer og svar.
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