Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TrackBar Position und Div? (https://www.delphipraxis.net/93671-trackbar-position-und-div.html)

Tommy1988 9. Jun 2007 08:45


TrackBar Position und Div?
 
Hallo, ich versuche bei einem MusikPlayer
die akt. Position des Songs herauszufinden.

Die volle länge des Songs habe ich.
Beispiel:
Song ist 2 min lang.
Eine Trackbar passt sich an:
Das Maximum der Trackbar ist nun 120 ( => 2 min).

ich versuche ungefähr so die songposition als caprion auszugeben:

Delphi-Quellcode:
Caption := IntToStr(TrackBar1.Position) div 60;
// so würde dann die akt. trackbarposition als caption erscheinen
das klappt aber nicht. warum?

Sharky 9. Jun 2007 08:47

Re: TrackBar Position und Div?
 
Hai Tommy,

du versuchst einen String durch 60 zu teilen ;-)

Also erst teilen und dann in den String umwandeln.

Delphi-Quellcode:
Caption := IntToStr(TrackBar1.Position div 60);

DeddyH 9. Jun 2007 08:49

Re: TrackBar Position und Div?
 
Zitat:

Zitat von Tommy1988
Delphi-Quellcode:
Caption := IntToStr(TrackBar1.Position) div 60;

Wie willst Du denn einen String durch 60 teilen?
Delphi-Quellcode:
Caption := IntToStr(TrackBar1.Position div 60);

Tommy1988 9. Jun 2007 09:02

Re: TrackBar Position und Div?
 
Mh, ich habe immernoch leichte Probleme:

Delphi-Quellcode:
function RundeAufStelle(zahl: double; stellen: integer): double;
var multi: double;
begin
  multi:=IntPower(10, stellen);
  zahl:=round(zahl*multi);
  result:=zahl/multi;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
var
T : String;
begin
// Beispiel: Songlänge 3,48 Min.
// TrackBar Max wird auf 209 gestellt
// 209 wird durch 60 geteilt:
// Ergebnis: 3,48 periode.
T := IntToStr(TrackBar1.Position div 60);
Caption := FloatToStr(RundeAufStelle(StrToInt(T), 2));
// hier wird 3,4888888888 auf 3,48 gerundet und SOLLTE so ins caption
// geht abr nicht :( 
end;
Edit: hatte mich heir vertippt..

fkerber 9. Jun 2007 09:10

Re: TrackBar Position und Div?
 
Hi!

Wie kommst du auf 3,48 - sollte nicht besser 3,29 wieder rauskommen?
Schau mal in der Hilfe nach Delphi-Referenz durchsuchendiv und Delphi-Referenz durchsuchenmod.

Es sollte in etwa so aussehen:

Delphi-Quellcode:
showmessage(inttostr(Trackbar1.Position div 60) + '.'+inttostr(Trackbar1.Position mod 60));

Ciao, Frederic

Tommy1988 9. Jun 2007 09:15

Re: TrackBar Position und Div?
 
habs jetzt mal so gemacht:
Delphi-Quellcode:
caption := inttostr(Trackbar1.Position div 60)
+ '.'+inttostr(Trackbar1.Position mod 60);
Die Anzeige sieht dem format so aus: X:XX

Beispiel:
1:8
1:9
1:10
1:11
1:12
..
Gibt es da keine Möglichkeit statt 1.8, 1.08 zu schreiben?

fkerber 9. Jun 2007 09:18

Re: TrackBar Position und Div?
 
Hi!

Doch, auch das geht.
Hier sollte dir imho Delphi-Referenz durchsuchenFormat weiterhelfen...


Ciao, Frederic

Tommy1988 9. Jun 2007 09:23

Re: TrackBar Position und Div?
 
welche Hilfe meint ihr?

F1?
oder die Borland Hilfe ?

Borland Hilfe (Meldung) => Keine Themenbezogene Hilfe installiert

F1: Keine Reaktion:

Ich habe D2005 PE

Matze 9. Jun 2007 09:24

Re: TrackBar Position und Div?
 
Die DP-Suche beispielsweise ...

... oder auch ich:

Delphi-Quellcode:
Caption := Format('%d:%.2d', [Stunden, Minuten])

dominikkv 9. Jun 2007 09:27

Re: TrackBar Position und Div?
 
ich wür mir dazu einfach ne function erstellen:

Delphi-Quellcode:
function SecToStr(sec: Word): String;
begin
  result := '';
  if (sec mod 60 < 10) then
    result := '0';
  result := result + IntToStr(sec mod 60);
  result := IntToStr(sec div 60)+':' + result;
end;
und dann mit

Delphi-Quellcode:
label1.caption := SecToStr(61); // würde 1:01 rauskommen
aufrufen


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz