Componente - ScrollBar
Estou criando um componente, e precisso colocar o ScrollBar Horizontal e Vertical no meu componente!
Alguem poderia me dar um exemplo ou como fazer para coloca o scrollbar no meu componente?
Alguem poderia me dar um exemplo ou como fazer para coloca o scrollbar no meu componente?
Rudá
Curtidas 0
Respostas
Rodc
04/12/2006
Você precisa criar os dois Scroll em runtime no Contructor do seu componente. Depois de criado configure um para ficar no bottom e outro no right. Não esqueça de no Destructor liberá-los.
Para aprender um pouco mais, dê uma olhada no código do TCustomMemo para ver como ele cria os scrolls.
Para aprender um pouco mais, dê uma olhada no código do TCustomMemo para ver como ele cria os scrolls.
GOSTEI 0
Rudá
04/12/2006
Consegui colocar, mas não sei como controlar ele para por exemplo deixar ele visivel ou não, para poder ele rolar para ele só fica parado!
Alguem pode me dar mais alguma ajuda, orientação?
Para criar usei isso
Alguem pode me dar mais alguma ajuda, orientação?
Para criar usei isso
procedure TRudaNewGrid.CreateParams(var Params: TCreateParams); const ScrollBar: array[TScrollStyle] of DWORD = (0,WS_HSCROLL,WS_VSCROLL,WS_HSCROLL or WS_VSCROLL); WordWraps: array[Boolean] of DWORD = (0,ES_AUTOHSCROLL); begin inherited CreateParams(Params); with Params do begin Style:= Style and not WordWraps[FWordWrap] or ScrollBar[FScrollBars]; end; end;
GOSTEI 0
Rudá
04/12/2006
Acho que irei usar um ScrollBox, mas tenho uma dúvida eu precisso tipo colocar algo no ScrollBox que não possa ser movido, no topo do ScrollBox entende?
Alguem poed me ajudar a fazer isso?
Alguem poed me ajudar a fazer isso?
GOSTEI 0
Rodc
04/12/2006
[quote:797ec3831c=´Rudá´]...precisso tipo colocar algo no ScrollBox que não possa ser movido, no topo do ScrollBox entende?[/quote:797ec3831c]
Todos os componentes que você criar dinamicamente dentro do seu componente não podem ser mexidos pelo usuário. Apenas os componentes que o próprio usuário colocar dentro do seu scrollbox ele poderá mexer.
Segue um exemplo:
Não tenho certeza se está certo porque fiz sem o Delphi e faz tempo que não programo em pascal.
Todos os componentes que você criar dinamicamente dentro do seu componente não podem ser mexidos pelo usuário. Apenas os componentes que o próprio usuário colocar dentro do seu scrollbox ele poderá mexer.
Segue um exemplo:
private Topo: TLabel; implementation contructor Create(AOwner: TComponent); override; begin inhirited; Topo := TLabel.Create(self); Topo.Top = 0; Topo.Left = 10; Topo.Parent = self; end; destructor Destroy() begin Topo.Free(); end;
Não tenho certeza se está certo porque fiz sem o Delphi e faz tempo que não programo em pascal.
GOSTEI 0
Rudá
04/12/2006
Ele mecheu sim quando desci a barra de rolagem do ScrollBox!
GOSTEI 0
Rudá
04/12/2006
Quero algo que só possa ser movido pelo scrollbar de baixo, é algo como no Grid que o Primeiro Row Fixo não move para cima nem para baixo só para os lados!
Alguem pode me ajudar por favor?
Alguem pode me ajudar por favor?
GOSTEI 0
Rudá
04/12/2006
Já consegui resolver o problema, agora eu tenho outra dúvida!
Como faço para poder saber se no ScrollBox a Barra Vertical está aparecendo, já que ele só aparece se passar da área, mas se não passar ele não mostra, tem como eu saber se ele está aparecendo ou não?
Como faço para poder saber se no ScrollBox a Barra Vertical está aparecendo, já que ele só aparece se passar da área, mas se não passar ele não mostra, tem como eu saber se ele está aparecendo ou não?
GOSTEI 0