Entwickler-Ecke

Sonstiges (Delphi) - Trackbar


chrisx - Sa 30.10.04 15:15
Titel: Trackbar
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 - Sa 30.10.04 15:45

ok ich probiers mal:


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)


.Chef - 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:

Delphi-Quelltext
1:
2:
prozent:=Round(100*nowtime/totaltime);
progressbar1.Position:=prozent;


chrisx - Sa 30.10.04 16:26

wo muss ich diese 2 zeilen einbauen?

so: ?

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 - Sa 30.10.04 16:34

Du musst zwischen Zeile 1 und 2 noch

Delphi-Quelltext
1:
var prozent:Integer;                    

einfügen!


chrisx - 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 - Sa 30.10.04 16:43

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


chrisx - 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 - Sa 30.10.04 17:59

Also, nochmal langsam und der Reihe nach:Ich hoffe, dass war jetzt verständlich.

Gruß Hape!


chrisx - Sa 30.10.04 18:35

danke,

jetzt habe selbst ich es verstanden.


.Chef - 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. ;-)


chrisx - 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:


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 - Sa 30.10.04 19:58

Hat den die Klasse eine Variable mit dem Namen Time?


chrisx - 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 - 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