De oplossing zal heel eenvoudig zijn maar ik zie het even niet. Op basis van hoeverre ik ingezoomd ben weet ik het aantal Pixels per seconden. Nu is bij 100% zoom mijn aantal Pixels per seconden 64px/sec. Ik wil nu op basis van een afstand vanaf links of vanaf boven omrekenen naar hoeveel ms ik zit, dit is voor een selectie die ik teken op basis van het aantal seconden.
Ik wil dus een volgende functie maken:
Delphi Code:
function PxToSec(const I: Integer) : Single;
var
HBlockSize : Single; // Pixels per second
SubColWidth : Integer;
begin
SubColWidth := Ceil((ZoomHorizontal * (BlockWidth100 / 100)) / 4);
HBlockSize := (SubColWidth * 4);
Result := // <-- Hier kom ik er niet aan uit..
end;
Dank aan RVK, de oplossing ook maar even hier posten - was ook even vergeten dat ik met een grid van 4x4 werk.. dus moest zowiezo nog de blocksize * 4 doen..:
Delphi Code:
function PxToPos(const I: Integer) : Single;
var
HBlockSize : Single; // Pixels per second
SubColWidth : Integer;
begin
SubColWidth := Ceil((ZoomHorizontal * (BlockWidth100 / 100)) / 4);
HBlockSize := (SubColWidth * 4) * 4;
Result := 1 + (I / HBlockSize); { We start at 1 second }
end;
Bookmarks