Sterowania Trackbarem innym Trackbarem

0

czesc.
No i mam kolejny problem, z którym przegrałem :) Pomocy...
Ale o co chodzi. Otóż, w tym moim nieszczęsnym playerze video (kod oparty na demo DSPack - PlayWin) mam położony TrackBar(TDSTrackBar). A ten TrackBar jest brzydki, nie ma mozliwości aby zastąpić Suwaka bitmapą. Więc wymyśliłem(genialne:)), żeby położyć na formę drugi TrackBar - Slider(TSlider), który ma tę możliwość. I poprzez niego sterować tym pierwszym, a co za tym idzie sterować filmem. Ale mimo moich setek prób nie potrafie ich zmusić do współpracy. Mam tak:
w procedure TForm1.TrackBarTimer(sender: TObject; CurrentPos,
StopPos: Cardinal);
begin
Slider.MaxValue:=trackbar.Max;
.
.
end;//slider wie jak daleko sie przesuwac

Teraz w :
procedure TForm1.TrackBarChange(Sender: TObject);
begin
Slider.Value:=trackbar.Position;
end;//pozycja TrackBara jest pozycją Slidera

Czyli wszystko się pieknie rusza. Ale tutaj stanąłem. Otóż jak zrobić, by przesuwając suwakiem Slidera (SliderChange) spowodować zmiany takie jakie uzyskałbym przesuwając suwakiem TrackBara.
Jeśli ktoś coś takiego robił zwłaszcza w DsPacku to prosze o pomoc(bo tam jeszcze jest metoda OnTimer w tym TrackBarze i to sie wszystko miesza!, a może jest już za późno i mi umysł nie funkcjonuje?).
Pozdr, Pepe

0

a może dopisz pod tym:
Slider.Value:=trackbar.Position;
odwołanie do procedury ktora jest wykonywana w momencie zmiany w trackbarze

0

Po prostu daj:

Slider.Value:=trackbar.Position;

w zdarzeniu OnTimer. Nie może nie działać.

0

Po prostu daj:

Slider.Value:=trackbar.Position;

w zdarzeniu OnTimer. Nie może nie działać.

Niestety nie działa. Jest tak, że zmieniając pozycję TrackBara potrafie zmienic pozycje Slidera.A POWINNO BYC NA ODWROT. Tego nie umiem. No, ale teraz zrobilem tak:

w OnTimer TrackBara dałem: Slider.MaxValue:=TrackBar.max; i reszta kodu(pokazuje na etykietach postep filmu)
I teraz w Sliderze:
procedure TForm1.SliderChange(Sender: TObject);
begin
trackbar.OnTimer(sender,slider.Value1000,slider.Maxvalue1000);
trackbar.Position:=Slider.Value;
end;//probuje wywolac procedure onTimer(na jaką pozycję, max. pozycja).
No i to powoduje przesunięcie suwaka trackbara.ALE SUWAK ZARAZ POWRACA NA SWOJE MIEJSCE! Co tu jest źle?
Pozdr,pepe

0
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
TrackBar1.Position:=ScrollBar1.Position;
ProgressBar1.Position:=TrackBar1.Position;
end;

ten przykład obrazuje ze suwaki moga ze soba wspolgrac, poniewaz ich wartosci to zwykly integer...
Musisz miec błąd w innym miejscu, poniewaz przypisanie pozycji suwaka na pdst wartosci inngego suwaka musi dzialac

0

Musisz miec błąd w innym miejscu, poniewaz przypisanie pozycji suwaka na pdst wartosci inngego suwaka musi dzialac

No tez tak mysle. Domyslam sie ze to jest wina tego TrackBara, bo to jest jakis dziwny TrackBar, zdefiniowany w pliku DsPack.pas, jest ubogi w funkcje. Moze ktos potrafilby dodac do niego dwie metody : zeby mozna bylo wyswietlac bitmapki na miejsce suwaka i paska suwaka. Probowalem, ale sie zalamalem. Nie umiem. Ta wiedza jest jeszcze poza mno. Ale wtedy nie musialbym kombinowac z innym trackbarem(tutaj Slider), tylko sterowalbym sobie programem poprzez niego majoc dostep do ładnego suwaka. Dlatego mysle, ze pomoc mi mogo tylko te osoby, ktore zaglebialy sie w DsPacka i probowaly cos z tym zrobic(a musialy, bo ten TrackBar jest wizualnie straszny, a ja se zrobilem design playera jak w systemowym MediaPlayerze(v.9), i jedno z drugim fatalnie wygloda).
Pozdr, pepe

1 użytkowników online, w tym zalogowanych: 0, gości: 1