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 mit Tastatur steuern (https://www.delphipraxis.net/45951-trackbar-mit-tastatur-steuern.html)

Fritz the Cat 15. Mai 2005 13:11


Trackbar mit Tastatur steuern
 
Hi,

Ich habe auf meinen Form eine Trackbar zu liegen, mit der ich die Lautstärke regeln kann. Da es sich aber im einen Videoplayer handelt, mit dem ich in den Vollbild-Modus wechseln kann, ist für mich dieser Regler nicht mehr sichtbar. Wie kann ich jetzt die Lautstärke mit der "+"-Taste erhöhen und mit der "-"-Taste verringern?

schonmal Danke!!!

Ultimator 15. Mai 2005 13:14

Re: Trackbar mit Tastatur steuern
 
Du könntest KeyPreview deiner Form auf true stellen, und im OnKeyPress dann abfragen, ob "+" bzw. "-" gedrückt wurde und so dann TrackBar.Position einstellen.

//edit: Mich kann man ja ignorieren, sobald ich mal keinen fertigen Code poste :roll:
(Nix gegen dich, Sharky ;))

Luckie 15. Mai 2005 13:15

Re: Trackbar mit Tastatur steuern
 
Registrier doch in einem Menü Shortcuts für diese Tasten.

Fritz the Cat 15. Mai 2005 13:18

Re: Trackbar mit Tastatur steuern
 
Man, ihr seit ja fix!!!! Trotzdem weiß ich nicht, wie ich das jetzt nun anstellen soll. Könnte mir soetwas in der Richtung:

Delphi-Quellcode:
TrackBar1Change(nil);
vorstellen. Funktioniert aber leider nicht. Bin noch ziehmlicher Anfänger. Vielleicht ein kleines Beispiel?

Fritz the Cat 15. Mai 2005 13:22

Re: Trackbar mit Tastatur steuern
 
Hallo Luckie,

ich habe lediglich ein Popupmenü auf mein Form zu liegen, daß mir die grundlegende Steuerung im Vollbild-Modus ermöglichen soll. Also Play, Stop, Pause etc..

Luckie 15. Mai 2005 13:24

Re: Trackbar mit Tastatur steuern
 
Dann pack da doch noch die Laurstärke zu.

Fritz the Cat 15. Mai 2005 13:27

Re: Trackbar mit Tastatur steuern
 
Und wie soll das funktionieren? Entschuldige bitte, aber eine Trackbar läßt sich im Popup nicht einbinden.

Oder bin ich jetzt auf dem Holzweg und du meintest einen weiteren Menüeintrag? Wenn ja, wie mache ich diesen begreiflich auf das OnChange-Ereignis meiner Trackbar zuzugreifen?

PierreB 15. Mai 2005 13:35

Re: Trackbar mit Tastatur steuern
 
Mach doch einfach in dein PopUp zwei neue Einträge. Bei dem einen lässt du es lauter und beim anderen leiser werden.

Fritz the Cat 15. Mai 2005 13:38

Re: Trackbar mit Tastatur steuern
 
Ja PierreB, daß habe ich bereits getan. Nur das Problem ist das selbe. Wie spreche ich nun die TrackBar an. Oh Gott, ich nerve!! Sorry!!!

PierreB 15. Mai 2005 13:41

Re: Trackbar mit Tastatur steuern
 
OK wenn ich mich nicht völlig irre müsste es irgendwie so gehen:

Mal angenommen deine TrackBar hat maximal 100 "Positionen". Dann würde ich es so machenh das bei 50 normale Lautstärke ist. Wenn du es dann lauter machen willst:
Delphi-Quellcode:
trackbar1.position := trackbar1.position + 10;
Für leiser dann halt - 10. Und im OnChange bei der TrackBar haust du dann deine Prozedur zur Lautstärke rein. (Wen du schon eine hast ?). Bin mir aber nicht ganz sicher obs so geht. ;)

Ultimator 15. Mai 2005 13:41

Re: Trackbar mit Tastatur steuern
 
Delphi-Quellcode:
Form1.TrackBar1.Position := Form1.TrackBar1.Position + 10
Für 10 musst du halt den gewünschten Wert einsetzen ;)

//edit: Der rote Kasten wird mir immer suspekter :-?

Sharky 15. Mai 2005 13:42

Re: Trackbar mit Tastatur steuern
 
Zitat:

Zitat von Fritz the Cat
Ja PierreB, daß habe ich bereits getan. Nur das Problem ist das selbe. Wie spreche ich nun die TrackBar an. Oh Gott, ich nerve!! Sorry!!!

Hai,

hier mal ein Beispiel. Es gibt eine TrackBar und zwei Menüeinträge:
Delphi-Quellcode:
procedure TForm1.Lauter1Click(Sender: TObject); // Menüpunkt 1
begin
  if (TrackBar1.Position < TrackBar1.Max) then
  begin
    TrackBar1.Position := TrackBar1.Position + 1;
  end;
end;

procedure TForm1.Leiser1Click(Sender: TObject); // Menüpunkt 2
begin
  if (TrackBar1.Position > 0) then
  begin
    TrackBar1.Position := TrackBar1.Position - 1;
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 // Setze die Lautstärke auf TrackBar1.Position;
end;

Fritz the Cat 15. Mai 2005 13:44

Re: Trackbar mit Tastatur steuern
 
Nicht alle auf einmal :-D !!! Danke an alle!!!! Werd's probieren.

PierreB 15. Mai 2005 13:50

Re: Trackbar mit Tastatur steuern
 
Zitat:

Zitat von Ultimator
Delphi-Quellcode:
Form1.TrackBar1.Position := Form1.TrackBar1.Position + 10
Für 10 musst du halt den gewünschten Wert einsetzen ;)

//edit: Der rote Kasten wird mir immer suspekter :-?

Das erhöht zwar den Wert und die Position, aber nicht noch die Lautstärke. Das muss man noch im OnChange klarmachen. ;)

Fritz the Cat 15. Mai 2005 13:53

Re: Trackbar mit Tastatur steuern
 
Und was kommt da rein? Das was Du oben schon gepostet hast? Und vor allem im welchen OnChange-Ereignis?

PierreB 15. Mai 2005 13:57

Re: Trackbar mit Tastatur steuern
 
In TrackBar1.OnChange (findest du im Objektinspektor unter Ereignisse)
Da kommt die Funktion rein die Leiser und Lauter macht. Weiß ja net, hast du da schon was oder noch nix ?

Fritz the Cat 15. Mai 2005 14:01

Re: Trackbar mit Tastatur steuern
 
OK, funktioniert jetzt alles ganz toll.

PS: ist ja ein spitzenmäßiges Forum!!!!! So etwas von schnell habe ich noch nicht erlebt!!!! Ihr seit ja wirklich die freiwillige Feuerwehr!!!!

Danke nochmals :P

Sharky 15. Mai 2005 14:02

Re: Trackbar mit Tastatur steuern
 
Noch ein Nachtrag.

Wenn Du auf ein Menü verzichten möchtest kannst Du das auch im Delphi-Referenz durchsuchen.OnKeyPress deiner Form machen wenn Du .KeyPreview
auf True setzt:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if (Key = '+') then
  begin
    TrackBar1.Position := TrackBar1.Position + 1;
  end;
  if (Key = '-') then
  begin
     TrackBar1.Position := TrackBar1.Position - 1;
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 // Label als Demonstation der "Lautstärke".
 // Hier muss natürlich die richtige Funktion rein.
  Label1.Caption := IntToStr(TrackBar1.Position);
end;

Fritz the Cat 15. Mai 2005 14:07

Re: Trackbar mit Tastatur steuern
 
Danke Sharky. Das ist natürlich noch besser. Habe zwar zwei Menüeinträge für Lauter und Leiser drin diese auf Visible False gesetzt und jeweils einen Shortcut zugewiesen. Das ist aber noch praktischer!!!!

Weiterhin schöne Pfingsten :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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