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 1059 korisnika na forumu :: 50 registrovanih, 6 sakrivenih i 1003 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: A.R.Chafee.Jr., aleksmajstor, AMCXXL, Andrija357, Bobrock1, Boris BM, Boris90, cavatina, cenejac111, comi_pfc, dankisha, debeli, djboj, dmdr, doktor1964, FileFinder, hyla, Još malo pa deda, Kibice, Kubovac, maiden6657, mercedesamg, Metanoja, mikki jons, mikrimaus, Millennium, Milometer, miodrag, Miškić, mnn2, moldway, MrNo, nuke92, panzerwaffe, pavlo, powSrb, procesor, raptorsi, repac, stagezin, Stanlio, stegonosa, suton, Tvrtko I, vandrej, virked, Vlada78, x9, yagosh, 1107