Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Progressbar Position per Maus verändern (https://www.delphipraxis.net/123147-progressbar-position-per-maus-veraendern.html)

Larsi 28. Okt 2008 14:42


Progressbar Position per Maus verändern
 
Hi,
also ich habe eine Progressbar die ich mit der Maus verstellen möchte. Also die Position der Progressbar. Wie mache ich das? Im Grunde genommen soll das so funktionieren wie bei einer Trackbar.

MFG Lars Wiltfang

Luckie 28. Okt 2008 14:52

Re: Progressbar Position per Maus verändern
 
Und warum nimmst du keine Trackbar? Dazu ist sie da. Eine Progressbar ist rein passiv und diuent, wie der Name schon sagt, dazu einen Fortschritt zu visualisieren.

Larsi 28. Okt 2008 14:54

Re: Progressbar Position per Maus verändern
 
Weil ich für ein Projekt keine Trackbar verwenden will. Aus designtechnischen Gründen (Carbon Copy Komponenten haben keine TRackbar und ich will das mein Programm wie ein Mac Programm aussieht und die Trackbar würde alles kaputt machen ^^)

divBy0 28. Okt 2008 14:54

Re: Progressbar Position per Maus verändern
 
Du hast bei der ProgressBar ein OnMouseDown Ereignis, damit kannst du das realisieren.

Larsi 28. Okt 2008 14:56

Re: Progressbar Position per Maus verändern
 
Also ich habe in das Mouse Down ereigniss bereits folgendes reingeschrieben:
Delphi-Quellcode:
ccprogressbar2.Position := ccprogressbar2.ScreenToClient(Mouse.CursorPos).x;
Aber da das Maximum der Progressbar variabel sein kann geht das nicht.

DeddyH 28. Okt 2008 14:57

Re: Progressbar Position per Maus verändern
 
Da ist dann Prozentrechnung angesagt.

divBy0 28. Okt 2008 14:59

Re: Progressbar Position per Maus verändern
 
Müsste so gehen:

Delphi-Quellcode:
procedure TForm1.ProgressBar1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  MouseX: Integer;
begin
  MouseX := round(X / (ProgressBar1.Width / 100.0)); // -> oder anstatt 100.0 ProgressBar1.Max

  ProgressBar1.Position := MouseX;
end;

Luckie 28. Okt 2008 15:01

Re: Progressbar Position per Maus verändern
 
Zitat:

Zitat von Larsi
Weil ich für ein Projekt keine Trackbar verwenden will. Aus designtechnischen Gründen (Carbon Copy Komponenten haben keine TRackbar und ich will das mein Programm wie ein Mac Programm aussieht und die Trackbar würde alles kaputt machen ^^)

Na dann viel Spass mit den benutzer, die rumraten, wie man die Fortschrittsanzeige "bedient". Auch wenn das unter MAC üblich ist, unter Windows ist es das nicht. Eine intuitive Bedienung ist was anderes. ;)

divBy0 28. Okt 2008 15:02

Re: Progressbar Position per Maus verändern
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Larsi
Weil ich für ein Projekt keine Trackbar verwenden will. Aus designtechnischen Gründen (Carbon Copy Komponenten haben keine TRackbar und ich will das mein Programm wie ein Mac Programm aussieht und die Trackbar würde alles kaputt machen ^^)

Na dann viel Spass mit den benutzer, die rumraten, wie man die Fortschrittsanzeige "bedient". Auch wenn das unter MAC üblich ist, unter Windows ist es das nicht. Eine intuitive Bedienung ist was anderes. ;)

Beim MAC ist mir so eine "Trackbar" bis jetzt auch noch nicht aufgefallen.

Volle 28. Okt 2008 15:02

Re: Progressbar Position per Maus verändern
 
Zitat:

Zitat von divBy0
Müsste so gehen:

Delphi-Quellcode:
procedure TForm1.ProgressBar1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  MouseX: Integer;
begin
  MouseX := round(X / (ProgressBar1.Width / 100.0));

  ProgressBar1.Position := MouseX;
end;

wäre es nicht besser es so zu machen?

Delphi-Quellcode:
...
MouseX:=round((X*ProgressBar1.Max)/ProgressBar1.Width);
...
ich mein wegen integer und kuerzung ..

[edit]
achso verdammt du hast ja 100.0 geschrieben
[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:24 Uhr.
Seite 1 von 2  1 2      

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