Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

quarta-feira, 15 de julho de 2015

DELPHI - Setar a posição de uma TTrackbar (ou de um TScrollBar) conforme o clique do mouse

Reações: 
Function GetPosTrackBar(ATrackBar : TTrackBar): Integer; // caso queira com o tscrollbar, trocar a classe de referência, e calcular o tamanho das caixas de navegação.
var
  ATrbP : TPoint;
  MouP  : TPoint;
  W : Integer;
  L1, L2, L3 : Integer;
  D1 : Double;
begin
  MouP    := Mouse.CursorPos; // Posição atual no momento do clique do mouse
  ATrbP   := ATrackBar.ClientOrigin; // posição de referência da track bar com a TScreen (tela do computador)
  W       := ATrackBar.Width; // Largura da trackbar
  L3      := (ATrackBar.ThumbLength Div 4); // borda lateral da track bar, ela muda conforme o tamanho do ThumbLength (1/4 do seu tamanho)
  L1      := MouP.X - ATrbP.X - ATrackBar.BorderWidth - L3; // pegar a posição do clique do mouse com referencia a trackbar
  L2      := ATrackBar.Max; // pegar o tamanho total de posições da trackbar

  D1      := (L2 / W) ; // pegar o valor de referencia do pixel versus a largura da track
  Result := Round(D1) * L1; // multiplica o valor de referência dos pixels com a posição do clique 
end;


//Usando:

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  TrackBar1.Position := GetPosTrackBar(TrackBar1); // retorna a posição aonde foi clicado, para o local visivel da track
...

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer