GARANTIR DESCONTO

Fórum Componente - ScrollBar #334165

04/12/2006

0

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?


Rudá

Rudá

Responder

Posts

05/12/2006

Rodc

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.


Responder

Gostei + 0

05/12/2006

Rudá

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
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;



Responder

Gostei + 0

05/12/2006

Rudá

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?


Responder

Gostei + 0

05/12/2006

Rodc

[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:
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.


Responder

Gostei + 0

05/12/2006

Rudá

Ele mecheu sim quando desci a barra de rolagem do ScrollBox!


Responder

Gostei + 0

05/12/2006

Rudá

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?


Responder

Gostei + 0

06/12/2006

Rudá

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?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar