[ BinaryRuler @ 24.06.2006. 15:02 ] @
Kako mogu na jednu formu da postavim jedan scrollbar za scrollovanje de memo kontrole? Pokusavao sam na sve moguce nacine ali nisam imao uspeha.
[ savkic @ 24.06.2006. 19:13 ] @
> Kako mogu na jednu formu da postavim jedan scrollbar za scrollovanje de memo kontrole? Pokusavao sam na sve moguce nacine ali nisam imao uspeha.

Možeš poslati tim kontrolama EM_LINESCROLL poruku, npr. SendMessage(Memo1.Handle, EM_LINESCROLL, 0, 1);
[ BinaryRuler @ 24.06.2006. 20:52 ] @
Hvala savkicu, ali pomoglo bi mi ako bi mi dao malo detaljniji promer.
Da li tu poriku saljem sa kontrole scrollbar-a sa dogadjaja Onscroll ili nekako drugacije?
[ savkic @ 24.06.2006. 23:07 ] @
> Da li tu poriku saljem sa kontrole scrollbar-a sa dogadjaja Onscroll ili nekako drugacije?

Šalješ kada treba da skroluješ sadržaj memo kontrola, to može biti OnScroll događaj TScrollBoxa ili nešto drugo to već zavisi od programa. A za primer započni novi projekat, stavi jedan memo i dugme na formu, napuni memo sa 50 linija teksta a u OnClick događaj dugmeta ubaci onaj kod iz prve poruke.
[ BinaryRuler @ 25.06.2006. 18:36 ] @
E Savkicu esto sam uspeo da sklepam na Dogadjju Onscroll stavio sam ovaj kod ali imam problem kod prevlacenja scroll valjka vidi kod pa ce ti biti jasno o cemu pricam.
Code:

begin
if ScrollCode=scLineDown then
  begin
    SendMessage(Memo1.Handle, EM_LINESCROLL, 0, 1);
    SendMessage(Memo2.Handle, EM_LINESCROLL, 0, 1);
  end;
if ScrollCode=scLineup then
  begin
    SendMessage(Memo1.Handle, EM_LINESCROLL, 0, -1);
    SendMessage(Memo2.Handle, EM_LINESCROLL, 0, -1);
  end;
if ScrollCode=scTrack then
  begin
    if OVDE NEZNAM KOJI USLOV DA STAVIM DA BI MOGAO DA ODREDIM DA LI DA IDE GORE ILI DOLE KAD VUCES VALJAK then
      begin
        SendMessage(Memo1.Handle, EM_LINESCROLL, 0, 1);
        SendMessage(Memo2.Handle, EM_LINESCROLL, 0, 1);
      end
    else
      begin
        SendMessage(Memo1.Handle, EM_LINESCROLL, 0, -1);
        SendMessage(Memo2.Handle, EM_LINESCROLL, 0, -1);
      end
  end;
end;

[ savkic @ 25.06.2006. 20:45 ] @
Možeš uvesti jednu promenljivu koja će čuvati poslednju poziciju scrollboxa, u OnScroll eventu proveriš kakav je odnos te prethodne vrednosti i nove vrednosti i na osnovu toga odrediš pravac ili pravac i pomeraj.
[ BinaryRuler @ 25.06.2006. 20:52 ] @
Probao sam to ali mi nije islo jer cini mi se da na dogadjaju onscroll in stalno preuzima novu vrednost pa je tako uporedjuje samu sa sobom. A na drugom dogadjaju nemam ScrollPos varijablu.
[ savkic @ 26.06.2006. 19:23 ] @
> Probao sam to ali mi nije islo jer cini mi se da na dogadjaju onscroll in stalno preuzima novu vrednost pa je tako uporedjuje samu sa sobom.

Probaj na primer ovako:

Code:

var
  LastScrollPos: Integer;

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;  var ScrollPos: Integer);
begin
  SendMessage(Memo1.Handle, EM_LINESCROLL, 0, ScrollPos - LastScrollPos);
  LastScrollPos := ScrollPos;
end;
[ BinaryRuler @ 26.06.2006. 22:11 ] @
E, mnogo ti hvala za pomoc oko scroolbar-a. Uspeo sam da uradim sve sto sam hteo.
[ BinaryRuler @ 26.06.2006. 22:18 ] @
Usput da li mozda znas dali delphi 2005 ima bug u kompajleru, jer mi se desava da mi puca program u koji sam stavio pozivanje dijaloga savetextfiledialog i opentextfile dijalog. Prijavi mi nesto tipa ne moze da procita sa te i te lokacije i bla bla...

ps: Program je osnovni samo se poziva dijalog i snima se. jedno vreme radi i onda pukne sam od sebe. Nema tredova u pozadini ni brojaca pukne sam od sebe.