AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Objekt an Trackbar Position ausrichten

Objekt an Trackbar Position ausrichten

Ein Thema von Luki206 · begonnen am 27. Mär 2014 · letzter Beitrag vom 2. Apr 2014
Antwort Antwort
Seite 3 von 3     123
Luki206
(Gast)

n/a Beiträge
 
#21

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 18:32
Ich habe, damit ich das Projekt wiedererkennen kann, ihm den Namen TestTrackbar gegeben also nicht wundern
Angehängte Dateien
Dateityp: zip Test Trackbar.zip (2,62 MB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.768 Beiträge
 
Delphi 10.3 Rio
 
#22

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 19:02
Hmm, ich weiß nicht recht, was Du da erreichen willst.
Auf jeden Fall solltest Du Dein Ziel etwas einfacher angehen.
Je einfacher, desto besser nachvollziehbar und wartbar.

Ich denke, Dein Problem liegt in dem max div 60)div max .
Wenn max > 60 ist dann hat das natürlich deutliche Auswirkungen.

Aber für eine bessere Lösung müsste man wissen, was Du erreichen willst.

Sind die Timer aktuell nur für Tests da? Willst Du die Trackbar später mit der Maus einstellen oder brauchst Du eher eine ProgressBar, die einen Fortschritt anzeigt?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#23

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 19:11
Ich möchte das sie als Fortschrittsanzeige dient aber auch später verschoben werden kann
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.768 Beiträge
 
Delphi 10.3 Rio
 
#24

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 19:44
Ok, dann mach einfach etwas Ordnung.

Folgende Eigenschaften brauchst Du:
MinValue, MaxValue für Minimal- und Maximalwert.
Position für den aktuellen Wert.
Width für die Breite der Trackbar.
XPosition für den Mittelwert des Schiebers in der Horizontalen.

XPosition errechnest Du prozentual zu Width wie Position zu (MaxValue - MinValue) und zwar immer dann wenn eine der anderen Eigenschaften geändert wird (also in einer Prozedur CalcXPosition, die Du von unterschiedlichen Stellen aus aufrufen kannst).

Wenn Du das Ganze funktionsfähig hast, dann kannst Du Dich auch mit der Komponentenentwicklung befassen.
Dann wird so etwas nicht im Formularcode umgesetzt sondern in einer Komponente gekapselt (wie eben der TTrackBar), die dann überall einsetzbar ist.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#25

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 19:51
Irgendwie stehe ich gerade auf dem Schlauch... Ich werde einmal eine Nacht drüber schlafen, mal sehen ob ich's morgen hin bekomme
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#26

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 19:56
Irgendwie stehe ich gerade auf dem Schlauch... Ich werde einmal eine Nacht drüber schlafen, mal sehen ob ich's morgen hin bekomme
Schlafen ist auch eine Alternative - besser ist aber allemal, wenn du das zunächst analog mit Papier und Bleistift durchspielst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.768 Beiträge
 
Delphi 10.3 Rio
 
#27

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 20:07
... und dazu mal für alle Eigenschaften "Setter" vorsehen in folgender Form:

Delphi-Quellcode:
procedure Form1.SetMaxValue(aValue: Integer);
begin
  if MaxValue <> aValue then
  begin
    CalcXPosition;
    PaintTrackbar;
  end;
end;
Natürlich musst Du die beiden Methoden dann auch noch deklarieren.

Das ist etwas mehr Schreibarbeit aber so ist das gut nachvollziehbar und Du weist auch später noch, was Du da programmiert hast.

Die Werte änderst Du dann durch SetMaxValue(100), SetPosition(50) usw.

Im Grunde hast Du dann schon fast die Funktionsweise einer echten Komponente.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: Objekt an Trackbar Position ausrichten

  Alt 2. Apr 2014, 20:25
Hier mal eine Methode um ein Control an der Position der TrackBar auszurichten
Delphi-Quellcode:
procedure TForm1.ControlOnTrackBarPosition( AControl : TControl; ATrackBar : TTrackBar );
const
  C_TRACKBAR_BORDER_LEFT = 12;
  C_TRACKBAR_BORDER_RIGHT = 12;
var
  LLeft : Integer;
begin
  LLeft := ATrackBar.Left + C_TRACKBAR_BORDER_LEFT + Round( ( ATrackBar.Width - C_TRACKBAR_BORDER_LEFT - C_TRACKBAR_BORDER_RIGHT ) * ATrackBar.Position /
      ( ATrackBar.Max - ATrackBar.Min ) );
  AControl.Top := ATrackBar.Top - AControl.Height;
  AControl.Left := LLeft - AControl.Width div 2;
end;
Du willst ein Image daran ausrichten, dann einfach
Delphi-Quellcode:
procedure TForm1.TrackBar1Change( Sender : TObject );
begin
  ControlOnTrackBarPosition( Image1, Sender as TTrackBar );
end;
und schon wandert das Image ganz brav an der TrackBar entlang, zentriert über dem Pinörpel
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf