Własny scrollbar

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
Robie program i nieestetycznie wygląda w nim scrollbar dołączony np. do memo. Chcialbym wstawic dwa TImage i z nich zrobic scrollbar takiego memo. Bez paska przewijania bo to mi nie potrzebne. Chodzi o efekt jak czasami spotyka sie we flash, zwykłe dwie strzałki - po kliknieciu na gorna memo idzie o linie do gory a po kliknieciu na dolna - idzie na dół. Czy da sie jakos obsłuzyc te zdarzenia? Czy da sie to wykonac?

DO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 731
DM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 176
0

Nie jestem pewny, czy dobrzecię rozumiem, ale chyba Dominik źle cię zrozumiał, a poza tym ci tu wyskakuje z WinApi, gdy ty bawisz się VCLem...
Przejdę do rzeczy... możesz zrobić przyciski TBUTTON z Caption ustawionym na odpowiednie znaki takie jak: ? U+25B2 ; ? U+25BA; ? U+25BC i ? U+25C4 . Również, jeśli chcesz to możesz użyć rzeczywiście TImage i narysować strzałki, chyba wiesz jak ;)
<ort>Niezalerznie </ort>od metody, którą wybierzesz, kod na onClick będzie ten sam... Nie <ort>jestemm </ort>ekspertem od VCL, ale myślę, że powinieneś w tym celu użyć polecenia Memo.Lines.Move(), popróbuj...

snw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 236
0

a macie pomysł na usunięcie scrollbara np z TListBox, który takiej opcji nie oferuje ? tzn usunięcia go z komponentu który nie ma właściwości dotyczącej scrollbarów ?

[EDIT]

bo taką mam koncepcję, sterowania dwoma ListBox'ami za pomocą jednego scrollbara...przeszukałem neta ale nic ni ma...

[EDIT2]

ha, kiedyś szukałem czegoś identycznego tylko dla DBGrida, też tutaj na forum, oto rozwiązanie:

Kopiuj
unit Newgrid;

interface

uses
  WinTypes, WinProcs, Classes, DBGrids;

type
  TNoVertScrollDBGrid = class(TDBGrid)
  protected
    procedure Paint; override;
  end;

procedure Register;

implementation

procedure TNoVertScrollDBGrid.Paint;
begin
  SetScrollRange(Self.Handle, SB_VERT, 0, 0, False);
  inherited Paint;
end;

procedure Register;
begin
  RegisterComponents('Data Controls', [TNoVertScrollDBGrid]);
end;

end.

wciąż jednak nie rozwiązuje to mojego aktualnego problemu. nie mogę sie czy to przy definiowaniu nowej klasy pochodnej po TCustomListBox czy TListBox dostać do metody Paint ! w przeciwieństwie do TDBGrid pomija klasę TCustomControl, która tą metodę deklaruje...macie pomysły ? :> [???]

DO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 731
0

Dream Meaker: nie wszystko da się zrobić VCL-em :P . Co do chowania ScrollBara to kiedys usiłowałem dojść jak to zrobić i efekty (niezbyt doskonałe) są tu http://4programmers.net/Forum/180881 .

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.