Autor Beitrag
chrisx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 15:15 
hallo, ich habe einen funktionstüchtigen swf-player geschrieben, den ich nun noch um eine funktion erweitern will:


nämlich eine Trackbar, die mit dem flash-film "mitwandert" und anzeigt, wieviel des filmes schon vergangen ist

zweitens soll man den "zeiger" verschieben können, um im flash-film nach vorne, bzw hinten spulen zu können.



ich bitte um eine genaue anleitung, da meine kentnisse in delphi sehr gering sind
und ich von der Trackbar überhaupt keine ahnung habe.

danke schon im voraus.
chrisx
ScorpionKing
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1150

Win XP

BeitragVerfasst: Sa 30.10.04 15:45 
ok ich probiers mal:

ausblenden Quelltext
1:
2:
prozent := totaltime / nowtime * 100;
progressbar1.progress := prozent;


also: totaltime ist die zeit des swf-files und nowtime die vergangene! die beiden zeiten musst aber selbst ermitteln, da ich keine ahnung hab wie dein player aussieht. mach ma nen download-link!

ScorpionKing 8)

_________________
Aus dem Urlaub zurück!
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 30.10.04 16:10 
Also wenn überhaupt, dann andersrum. Und überhaupt ist das ein Integerwert und das heißt nicht Progress, sondern Position:
ausblenden Delphi-Quelltext
1:
2:
prozent:=Round(100*nowtime/totaltime);
progressbar1.Position:=prozent;

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 16:26 
wo muss ich diese 2 zeilen einbauen?

so: ?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
prozent:=Round(100*nowtime/totaltime);
progressbar1.Position:=prozent;

end;


aber dann kommt der fehler, dass "prozent" ein undefinierter bezeichner ist.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Sa 30.10.04 16:34 
Du musst zwischen Zeile 1 und 2 noch
ausblenden Delphi-Quelltext
1:
var prozent:Integer;					

einfügen!

_________________
Linux und OpenSource rulez!
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 16:41 
das habe ich nun auch eingefügt, aber es gibt ein neues problem, jetzt wird angezeigt, dass "nowtime" ein undefinierter bezeichner ist.

muss ich da einen timer einbauen, wenn ja, wie stelle ich das an?
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 30.10.04 16:43 
Die Zeitwerte erhältst du von deinem Player. Wenn du nicht weißt wie: SRC PLZ !!

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 17:22 
.Chef hat folgendes geschrieben:
Die Zeitwerte erhältst du von deinem Player. Wenn du nicht weißt wie: SRC PLZ !!

sorry, ich peile im moment gar nichts, kannst du deine worte etwas erläutern?
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Sa 30.10.04 17:59 
Also, nochmal langsam und der Reihe nach:
  • Zunächst musst du herausfinden, wie du die aktuelle Position und die Länge der svf-Datei abfragen kannst.
  • Dann setzt du die Eigenschaft TrackBar.Max auf die Länge.
  • Um auch noch die aktuelle Position ständig aktualisiert anzuzeigen, benutzt du entweder einen Timer oder eine andere passende Funktion von deinem Abspieler und setzt die Eigenschaft TrackBar.Position auf die aktuelle Position.
  • Um nun auch noch das Spulen zu ermöglichen, musst du in dem Ereignis TrackBar.OnChange die Eigenschaft Player.AktuellePosition auf TrackBar.Position setzen.
Ich hoffe, dass war jetzt verständlich.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 18:35 
danke,

jetzt habe selbst ich es verstanden.
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 30.10.04 18:45 
SRC PLZ steht für "Source Please" oder auch "Quellcode bitte" und ist der internationale Hilferuf der Vereinigung anonymer Programmierer nach mehr Information zu Beantwortung von Fragen. ;-)

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 19:26 
jetzt hab ich doch noch eine frage:

was muss ich schreiben, damit bei der übergabe von dateipfad ,auch die länge des ausgewählten films mit übergeben wird:

soweit bin ich:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ffnenundabspielen1Click(Sender: TObject);
begin
OpenDialog1.Execute;                // Dateinamen im Dialog finden
ShockwaveFlash1.Movie:=OpenDialog1.FileName;  // Dateinamen + Pfad übergeben
ShockwaveFlash1.Time:=OpenDialog1.FileName;   // Länge ds films + Pfad übergeben 

ShockwaveFlash1.play;
end;


was ist da falsch?
es wird angezeigt, dass Time (ShockwaveFlash1.Time:=OpenDialog1.FileName // Länge ds films + Pfad übergeben) ein undefinierter bezeichner ist, wie heist es aber sonst?
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Sa 30.10.04 19:58 
Hat den die Klasse eine Variable mit dem Namen Time?

_________________
Linux und OpenSource rulez!
chrisx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Sa 30.10.04 20:28 
sourcehunter hat folgendes geschrieben:
Hat den die Klasse eine Variable mit dem Namen Time?


des weiß ich ja net, deshalb habe ich den beitrag ja geschrieben
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 30.10.04 20:45 
Dann hast du da grundlegend was falsch verstanden. Für diese Frage ist nämlich die Delphihilfe zuständig. Ganz speziell reicht da schon dieses Syntaxhilfefenster, welches aufploppt, wenn du einen Punkt hinter den Bezeichner machst. Hier im Forum widmen wir uns tiefgreifenderen Problemen. ;-)

Gruß,
Jörg

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!