DSPack i fajny wyglad :)

0

Witam.
Moj problem polega na tym ze chcialbym uzyc komponentu DSTrackBar w bibliotece DSPack
W mojej aplikacji zastosowalem obsluge skorek, wszystko ladnie, pieknie wyglada,
ale komponent DSTrackBar jest szary.
Probowalem jakos to ominac ale bez skutkow.
Znalazlem rowniez ten temat:
http://4programmers.net/Forum/viewtopic.php?id=76709
Zrobilem tak jak tam napisano (tak mi sie wydaje), ale wciaz nie moge nic zdzialac, albo i nie wiem jak.
Prosilbym o Wasza pomoc w rozwiazaniu tego otoz problemu.
Prawdopodobne ze zle edytowalem ten komponent lub nie wiem jak to uzyc.
Myslalem rowniez o edycji komponentu sTrackBar z AlphaControls ale jest on spakowany i nie mozna.

Uzywam:
Kompilator: Delphi 7 Enterprise
Skorki: AlphaControls (AlphaSkins)
Obsluga filmow: DSPack

Z gory dziekuje za odpowiedz.
Pozdrawiam

0

Pełna wersja AlphaSkins o.O

Kliknij na komponent i powinieneś mieć właściwość SkinData, w niej CustomColor (jeśli używasz komponentu z AlphaControls).

0
QCheSteR napisał(a)

Pełna wersja AlphaSkins o.O

Komponenty AlphaControls, można zassać ze strony producenta w pełnej wersji, bez jakichkolwiek opłat czy rejestracji :)
Nie jest to żaden kant, producent sam je udostępnia, trzeba tylko troszkę potrafić czytać po rosyjsku :)

0
Młody napisał(a)

Komponenty AlphaControls, można zassać w pełnej wersji ze strony producenta

Przynajmniej, kiedy pobierałem pełną wersję, to był taki haczyk, że przy każdym uruchomieniu programu z wykorzystaniem full wersji pojawiał się komunikat, o tym, że nie jest zarejestrowana.

"AlphaControls Lite Edition is a part of the AlphaControls package (not all components are included here) which can work without any limitations"
LE jest darmowa i zdaje się, że haczyk w full wersją nadal jest :)

@Młody priv

0
QCheSteR napisał(a)
Młody napisał(a)

Komponenty AlphaControls, można zassać w pełnej wersji ze strony producenta

Przynajmniej, kiedy pobierałem pełną wersję, to był taki haczyk, że przy każdym uruchomieniu programu z wykorzystaniem full wersji pojawiał się komunikat, o tym, że nie jest zarejestrowana.

"AlphaControls Lite Edition is a part of the AlphaControls package (not all components are included here) which can work without any limitations"
LE jest darmowa i zdaje się, że haczyk w full wersją nadal jest :)

Zgadzam się w pełni, ale po lewej stronie jest odnośnik do 'For russians' i tam są wszystkie komponenty full spakowane rarem, jedyny haczyk jaki jest to potrzebujemy hasło do archiwum, ale i tu przychodzi z pomocą producent. Cytat ze strony producenta :

Для жителей стран СНГ все компоненты являются бесплатными (независимо от того - коммерческий проект или нет). Платой за пользование могут быть Ваши критические замечания, советы, сообщения об ошибках и т.д. Пароль для распаковки архива с модулями - слово "коллекция", набранное маленькими русскими буквами в английской раскладке =)

Sprawdziłem przetestowałem i działa. Mam 'full version' :)

W trakcie uruchamiania Delphi pokazuje się info 'Aplha Controls - registered'

0

to i tak jakby sciagnac z rapida chyba ze masz zameldowanie w wnp ...

0

Posiadam najnowszą wersję AlphaControls Full po Polsku :)

Moze zmienie moje pytanie :)
Przepraszam za niezrozumialosc lub nie doczytanie :)
Pytanie brzmi:
Jak polaczyc sTrackBar (AlphaControls) z DSTrackBar (DSPack).
Czyli jak przewijac film z innego komponentu. Nie chce uzywac domyslnie tego z DSPack'a poniewaz jest szary (bez moich stylow, jak reszta programu).
Dla niewiedzacych lub zapomnianych przypomne ze DSTrackBar trzeba polaczyc z FilterGraph w Object Inspector, a w sTrackBar nie mam takiej opcji do polaczenia.
Mam nadzieje ze teraz mnie rozumiecie :)

Dzieki jeszcze raz z gory za pomoc :)

0
Młody napisał(a)

Для жителей стран СНГ все компоненты являются бесплатными

Sprawdziłem przetestowałem i działa. Mam 'full version' :)

Szkoda że nielegalnie.

0

odpowiedź na zadane pytanie znajduje się w tym wątku http://www.progdigy.com/forums/viewtopic.php?t=1807&highlight=trackbar

0
kenny198p napisał(a)

odpowiedź na zadane pytanie znajduje się w tym wątku http://www.progdigy.com/forums/viewtopic.php?t=1807&highlight=trackbar

Przyko ale pod danym tematem nie znalazlem nic co potrzebuje, albo zle czytalem.
Nie pisano nic np. o "mozliwosci polaczenia FilterGrapha z dowolnym TrackBar'em, chce przewijac film i uzywac swojego komponentu.

W tym temacie jest dokladnie rozwiazanie:
http://www.progdigy.com/forums/viewtopic.php?t=4514
ale wszystkie linki tam wygasly, probowalem skontaktowac sie z autorem tematu ladnych kilka dni temu i nie daje odzewu.

Pomozcie mi, i napiszcie czy mnie rozumiecie, bo wciaz nie wiem, moze zle tluamcze.

dzieki za wszelka pomoc.

0

Zobacz sobie na ten program, który powstał z użyciem dspacka;

http://download.4programmers.net/X-DVD_Player

Zamiast dstrackbar użyłem komponentu "ProgressCyl"

który można oprogramować timerem oraz zwykłymi procedurami reagującymi na zdarzenia (MouseUp, MouseDown, MouseMove)

Przykładowa obsługa może wygladac tak:

procedure TFormBar.DsTrackbar2MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ChangeTrackbar := true; // zmienna globalna, informujemy iz nastapi zmiana
end;

procedure TFormBar.DsTrackbar2MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
  var
  value : integer;
begin
  if ChangeTrackbar then
  begin
  value := x*100 div dsTrackBar2.Width; //procent dlugosci
  DSTrackBar2.Position := round(DSTrackBar2.Max  *value) div 100; // wyliczona nowa pozycja
  end;
end;

procedure TFormBar.DsTrackbar2MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  value : integer;
  MediaSeeking: IMediaSeeking;
  CurrentPosition, StopPosition: int64;
begin

  value := x*100 div dsTrackBar2.Width; //procent dlugosci
  value := round(DSTrackBar2.Max  *value) div 100;
  nowapozycja := value;

// FilterGraph ustawi odtwarzanie na nowej pozycji

    FormDVDPlayer.FilterGraph.QueryInterface(IMediaSeeking, MediaSeeking);
    if assigned(MediaSeeking) then
    with MediaSeeking do
    Begin
    GetStopPosition(StopPosition);
    CurrentPosition := (StopPosition * nowapozycja) div DSTrackBar2.Max ;
    SetPositions(CurrentPosition, AM_SEEKING_AbsolutePositioning,
                                    StopPosition   , AM_SEEKING_NoPositioning);
    end;
    MediaSeeking := nil;

  ChangeTrackbar := false; // zmienna globalna, informujemy iz koniec zmiany
end;

Timerek, który bedzie aktualizowal pozycje trackbara:

procedure TFormDVDPlayer.TimerMTimer(Sender: TObject);
var
  Value, H, M, S : Integer;
  MediaSeeking: IMediaSeeking;
  CurrentPos, StopPos: int64;
  MlsCurrentPos, MlsStopPos: Cardinal;
begin
  FilterGraph.QueryInterface(IMediaSeeking, MediaSeeking);
  if assigned(MediaSeeking) then
  with MediaSeeking do
  Begin
  if Succeeded(GetCurrentPosition(CurrentPos)) then
      begin
      Value := Trunc(CurrentPos / 10000000);
      H := value div 3600;
      M := (value mod 3600) div 60;
      S := (value mod 3600) mod 60;
      StatusBar.Panels.Items[0].Text := Format('%d:%2.2d:%2.2d', [H, M, S]);
      FormBar.LabelTime.Caption := StatusBar.Panels.Items[0].Text;
      if Succeeded(GetDuration(StopPos)) then
      begin
      Value := Trunc(StopPos / 10000000);
      H := value div 3600;
      M := (value mod 3600) div 60;
      S := (value mod 3600) mod 60;
      StatusBar.Panels.Items[3].Text := Format('%d:%2.2d:%2.2d', [H, M, S]);


      MlsCurrentPos := RefTimeToMiliSec(CurrentPos);
      MlsStopPos    := RefTimeToMiliSec(StopPos);

      if not ChangeTrackbar then
      begin
      dsTrackBar1.max := MlsStopPos div TimerM.Interval; //Interval = 100
      dsTrackBar1.Position := MlsCurrentPos div TimerM.Interval;

//drugi trackbar na drugiej formie
      FormBar.DSTrackBar2.Max :=DSTrackBar1.Max;
      FormBar.DSTrackBar2.Position :=DSTrackBar1.Position;
      end;

     end;
   end;
  End;
  MediaSeeking := nil;
end;

Pozdrawiam.

0

dzieki za pomoc :)
juz znalazlem rozwiazanie :)

Do uses dodajemy:

DirectShow9

Komponent z AlphaControls o nazwie sTrackBar i w UserChange wpisujemy:

procedure TForm1.sTrackBar1UserChange(Sender: TObject);
begin
  if FilterGraph1.Active then
  with FilterGraph1 as IMediaPosition do
    put_currentPosition(sTrackBar1.Position);
end;

Po tej operacji moge przewijac film i uzywac mojego komponentu, a nie domyslnego z DSPack :)
Zapewne ten kod pomoze duzej ilosci ludzi ktorzy maja ten sam problem, w google duze tematow o tym, a brak rozwiazania :)
Pozdawiam i jeszcze raz dzieki za pomoc.

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