![]() |
AW: Objekt an Trackbar Position ausrichten
Etwas genauer wäre vermutlich noch:
pos := ((Trb.Position * (Trb.Width - Links - Rechts)) div 100))+ Links - (Image.Width div 2); // (Image.Width div 2) wenn das Image zentriert über dem Strich sitzen soll Wobei Links und Rechts der Abstand des ersten und letzten Strichs zum Rand wäre. |
AW: Objekt an Trackbar Position ausrichten
Du kannst die Area des Silders mit TBM_GETTHUMBRECT herausfinden. Diese ist bezogen auf die TrackBar Area. Damit kannst du dir die Pos. auf der Form errechnen.
![]() |
AW: Objekt an Trackbar Position ausrichten
Hmm.. ich habe eigentlich versucht den Sachen von Microsoft aus dem Weg zu gehen da ich nicht weiß wie ich das in Delphi benutzen muss.. Gibt es dann dazu irgendwelche Beispiele?
|
AW: Objekt an Trackbar Position ausrichten
|
AW: Objekt an Trackbar Position ausrichten
Ok ich habe jetzt in wenig herum gebastelt. Ich habe mir jetzt gedacht, zeichne dir doch einfach eine eigene Trackbar mit vier TImages. Zwei Enden, ein Mittelteil und ein Schieber. Alles schön und gut nur stehe ich jetzt vor dem Problem, wie mache ich das mit dem Max bzw. Min. Ich habe jetzt einmal folgendes probiert und es kommt eigentlich kein schlechtes Ergebnis dabei raus:
Delphi-Quellcode:
Gibt es nicht noch eine elegantere Methode das zu lösen?
ImgSlide.Left := ImgSlide.Left+(((ImgEck1.Left+ImgEck2.Left+32)+ max div 60)div max); (* Das Ganze liegt in einem Timer mit dem Interval 100, max wurde durch ein Edit definiert und liegt in private & der Rest erklärt sich von selbst (falls nicht hier meine Erklärung: ImgSlide= Schieber, ImgEck1= Linkeecke & ImgEck2= Rechteecke)*)
Danke Luki :) PS: Bei größeren Zahlen als 60 Sekunden bewegt sich der Schieber nicht mehr |
AW: Objekt an Trackbar Position ausrichten
Keiner weiß, was du da genau machst. Wie wäre es mal mit dem Code Abschnitt im ganzen?
Hier kann keiner Hellsehen...:glaskugel: |
AW: Objekt an Trackbar Position ausrichten
Ich werde es glaub ich nie lernen.. :wall: hier:
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.StdCtrls; type TForm1 = class(TForm) ImgEck1: TImage; ImgSlideGro: TImage; ImgEck2: TImage; ImgSlide: TImage; Timer1: TTimer; LblTest: TLabel; Ed1: TEdit; Button1: TButton; Button2: TButton; Timer2: TTimer; Label1: TLabel; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); private { Private-Deklarationen } max : Integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if not (Ed1.Text = '') then begin max := StrToInt(Ed1.Text) * 10; Timer1.Enabled := true; Timer2.Enabled := true; end else begin Application.MessageBox('Bitte eine Maximal-Zahl eingeben!', 'MAX ZAHL', MB_ICONWARNING or MB_OK); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := false; Timer2.Enabled := false; Label1.Caption := '0'; ImgSlide.Left := ImgEck1.Left; end; procedure TForm1.Timer1Timer(Sender: TObject); var maxwi: Integer; begin if (ImgSlide.Left = ImgEck2.Left) or (ImgSlide.Left > ImgEck2.Left+5) then begin ImgSlide.Left := ImgEck1.Left; end else begin ImgSlide.Left := ImgSlide.Left+(((ImgEck1.Left+ImgEck2.Left+32)+ max div 60)div max); end; end; procedure TForm1.Timer2Timer(Sender: TObject); begin Label1.Caption := IntToStr(StrToInt(Label1.Caption)+1); end; end. |
AW: Objekt an Trackbar Position ausrichten
Schau mal hier hab ich mal vor langer Zeit dran rumprobiert, vllt. kann dir das ja helfen...
![]() |
AW: Objekt an Trackbar Position ausrichten
Hmm.. Da wird ja die Trackbar in einem neuen Fenster geöffnet/erzeugt nur ich möchte ja eigentlich nur errechnen wie die Trackbar sich bewegt bei unterschiedlicher Länge eines Integer Wertes der Breite der 'gebauten' Trackbar und die Position des Schiebers.
Edit: Und wenn der Wert größer als 70 sek. hängt sich das ganze auf und der Schieber bewegt sich nicht mehr.. |
AW: Objekt an Trackbar Position ausrichten
Mir erschließt sich nicht, was Du mit den Timern machst.
Häng doch mal Dein Testprojekt als Zip an. Vielleicht kann dann ja jemand mal drauf schauen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz