Prva i zadnja linija koja se vidi u TMemo?

Prva i zadnja linija koja se vidi u TMemo?

offline
  • Pridružio: 26 Feb 2004
  • Poruke: 55
  • Gde živiš: Banja Luka

Kako da dobijem prvu i zadnju liniju koja se vidi uTMemo-u?
Kako da scroll-am 2 mema u isto vrijeme?
Nikako nisam mogao da dobijem nista bolje od ovoga
procedure DefaultHandler(var Message); message WM_VSCROLL;
tj., ako se caret-om ide gore - dolje ta procedura ne daje dobru informaciju o promjeni polozaja scrollbar-a.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • arek  Male
  • Novi MyCity građanin
  • Alex
  • Programer
  • Pridružio: 07 Jul 2009
  • Poruke: 6

Pod scrollovanjem da li mislis na onaj scrollbar pored ili na to sa caretom?

Ako mislis na scrollbar samo stavi jedan tajmer koji izjednacava vrednosti scrollbara u ta 2 TMemo u intervalu koji ti treba.

Isto za prvu i zadnju liniju koda bi trebao raditi svoju kontrolu od TMemo, posto tesko da ces moci izvuci informacije te iz obicnog TMemo-a. Jedino ako si jako dobar sa matematikom a i tada je pitanje da li ce uvijek raditi.



offline
  • Pridružio: 26 Feb 2004
  • Poruke: 55
  • Gde živiš: Banja Luka

Napisano: 29 Sep 2010 19:01

Mislim na oboje(obadvoje).
Dosao sam do slicnog zakljucka, pa cu tako i nastaviti.

Znas sta me interesuje, da li treba pritiskati ovo lijevo dugme
"Svidja mi se", da li to nesto znaci(do sada ga nisam primjetio).
Inace cim postavim pitanje, a ljudi se trude da odgovore, budem iskreno zahvalan.

Dopuna: 30 Sep 2010 18:27

Nasao sam da radi funkcija RE_GetFirstVisibleLine

function RE_GetLastVisibleLine(RichEdit: TRichEdit): Integer;
const
EM_EXLINEFROMCHAR = WM_USER + 54;
var
r: TRect;
i: Integer;
begin
{
The EM_GETRECT message retrieves the formatting rectangle
of an edit control.
}
RichEdit.Perform(EM_GETRECT, 0, Longint(@r));
r.Left := r.Left + 1;
r.Top := r.Bottom - 2;
{
The EM_CHARFROMPOS message retrieves information about the character
closest to a specified point in the client area of an edit control
}
i := RichEdit.Perform(EM_CHARFROMPOS, 0, Integer(@r.topleft));
{
The EM_EXLINEFROMCHAR message determines which
line contains the specified character in a rich edit control
}
Result := RichEdit.Perform(EM_EXLINEFROMCHAR, 0, i);
end;

{
Sending the EM_GETFIRSTVISIBLELINE message to a multi-line edit control
finds out which line is the first line visible.
This is the line that is currently displayed at the top of the control.
}

function RE_GetFirstVisibleLine(RichEdit: TRichEdit): Integer;
begin
Result := RichEdit.Perform(EM_GETFIRSTVISIBLELINE, 0, 0);
end;

Ko je trenutno na forumu
 

Ukupno su 802 korisnika na forumu :: 35 registrovanih, 7 sakrivenih i 760 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 9k38, _Rade, A.R.Chafee.Jr., Apok, Brankoni, dragon986, HDMI, helen1, HrcAk47, I AM THE KING, ILGromovnik, indja, janezek67, koki 43, kreza, mercedesamg, Mercury, Milan A. Nikolic, nemkea71, nenad81, nikoladim, nuke92, perica5, Pohovani_00, powSrb, ruso, S-lash, Steeeefan, Toni, Trpe Grozni, Vlada78, vlvl, Wisdomseeker, Zmaj001, zoranis