AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TrackBar Position Problem

Ein Thema von Tommy1988 · begonnen am 26. Apr 2007 · letzter Beitrag vom 26. Apr 2007
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

TrackBar Position Problem

  Alt 26. Apr 2007, 13:48
Also das ist so, ich versuche schon seit Ewig herum.

Ich benutze eine TrackBar um die Lautstärke der Audioasgabe zu regeln.

Man kann den Sound durch eine CheckBox ausschalten (Position 0)

Wenn ich den Sound wieder an mache (CheckBox.Checked = False then ...)
dann würde ich das gerne so haben, dass das Zeichen in der TrackBar wieder zurück
zu der Stelle (Position) springt, wo er zuvor gestanden hat.

Habe schon einiges Probiert aber nix hat geklappt, oder ich mache es einfach falsch.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 13:55
Speicher doch den vorigen Wert zwischen.

Aber ich würde beim Deaktivieren der Checkbox nicht die Trackbar auf Null stellen, sondern nur den Ton abschalten, wie man es von den gängigsten Playern gewohnt ist. Beim Aktivieren oder Verschieben der Trackbar aktivierst du die Soundausgabe dann wieder.
  Mit Zitat antworten Zitat
26. Apr 2007, 13:55
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Es geht um Delphi.
Tommy1988
(Gast)

n/a Beiträge
 
#4

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 14:00
naja.. wie stelle ich denn den ton ab?

und wie ich den wert zwischen? so wie ich es versucht habe klappts leider nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 14:06
So, wie du den Ton aktuell auch ausstellst, kannst du diesen doch auch über die Checkbox deaktivieren. Für's Zwischenspeichern nimmst du eine variable:

OldVolume: Integer; Wenn du den Ton über die Checkbox ausstellst, speicherst du in dieser Variablen den aktuellen Lautstärkepegel und setzt diesen wieder zurück, wenn die Checkbox erneut angeklickt wird.
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#6

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 14:13
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
OldVolume: Integer;
begin
if CheckBox1.Checked = True then
 begin
OldVolume := TrackBar1.Position;
// Das hier mit dem Label mache ich nur, damit ich den vorherigen Wert auch SEHEN kann
Label13.Caption := IntToStr(OldVolume);
 TrackBar1.Position := 0;
 TrackBar1.Enabled := False;
 Label11.Enabled := False;
 end;

if CheckBox1.Checked = False then
 begin
// Priblem hier
TrackBar1.Position := OldVolume;
// TrackBar1.Position := 15;
 TrackBar1.Enabled := True;
  Label11.Enabled := True;
 end;
end;
Nach dem Wieder-einschalten, wird die TrackBar unmittelbar auf Position 255 (100%) gesetzt.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 14:29
Dein Code ist ja nicht sonderlich gut.

Dein Problem liegt darin, dass du die Variable lokal deklarierst und diese somit nur beim aktuellen Ereignis-Aufruf verfügbar ist. Du musst diese daher beispielsweise im private-Abschnitt deklarieren. Und vergleiche nie auf true (siehe hierzu dieses Thema), sondern mach es, wie im folgenden Code:

Delphi-Quellcode:
  private
    { Private-Deklarationen }
      OldVolume: Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
  begin
    OldVolume := TrackBar1.Position;
    Label13.Caption := IntToStr(OldVolume);
    TrackBar1.Position := 0;
    TrackBar1.Enabled := False;
    Label11.Enabled := False;
  end else
  begin
    TrackBar1.Position := OldVolume;
    TrackBar1.Enabled := True;
    Label11.Enabled := True;
  end;
end;
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TrackBar Position Problem

  Alt 26. Apr 2007, 14:30
Die TrackBar kann man doch auch disablen.

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   TrackBar1.Enabled := CheckBox1.Checked;
   
    if CheckBox1.Checked then
     begin
       Label13.Caption := IntToStr(TrackBar1.Position);
       DeinPlayer.Volume := TrackBar1.Position;
     end
    else
      begin
        Label13.Caption := '0'
        DeinPlayer.Volume := 0;
      end;
end;
Anstatt zu disablen könntest Du natürlich auch den Slider ausblenden.
Uwe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 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