Ir para conteúdo
Fórum Script Brasil
  • 0

Scrollbar Não Quer Aparecer


Skin_

Pergunta

Olá pessoal....

Estou com mais algumas dificuldades:

1) Como criar vários TLabels e TEdits em tempo de execução, de modo que cada um fique abaixo do anterior?

2) Não estou conseguindo fazer a barra de rolagem aparecer no form. Ele está configurado com as seguintes opçoes: borderStyle:= bsSingle; AutoScroll:=True e apenas mostra o ícone de "fechar" na barra de títulos. Além disso, dentro dele tem dois TPanels que ficaram muito maiores que o tamanho do monitor. Desse modo, gostaria que a barra de rolagem ficasse visível. Como faço isso?

Muito obrigado

Skin_

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Pessoal, ainda ão sei como adicionar um componente em tempo de execução....

Estou com dúvidas de que essa seja a melhor saída para o meu problema. Vou tentar descrever:

No formulário de cadastro de indivíduos (sapos) coletados, um único indivíduo pode ter mais de um coletor. Deixei um lugar no formulário para que o usuário informe o primeiro coletor. No entanto, se houverem mais, havia pensado em criar mais campos para que os usuários possam inserir os outros coletores. Embora essa seja uma solução, eu não sei como implementá-la. Além disso, se o usuário criar mais TEdits no formulário, precisarei modificar a posição (no layout) de todos os outros campos abaixo (para que não haja sobreposição de Edits). Isso é trabalhoso e não parece ser muito inteligente.

Alguém tem alguma sugestão para isso?

Outra coisa: ainda não consegui fazer a barra de rolagem aparecer. Porque isso está acontecendo?

Aguardo uma resposta!

Muito obrigado

Skin_

Link para o comentário
Compartilhar em outros sites

  • 0

para criar Edits em tempo de execução:

var
edt : Tedit;
begin
edt := Tedit.create(form1);
edt.name := 'nomedaeditasercriada'; //não podem existir duas edits 
//com o mesmo nome
edt.width := 100;
edt.heidht := 21;
edt.top := 0;
edt.left := 0;
edt.parent := form1;
end;

para colocar dentro de um panel troque o form1 pelo nome do panel!

falou

Link para o comentário
Compartilhar em outros sites

  • 0
Deixei um lugar no formulário para que o usuário informe o primeiro coletor. No entanto, se houverem mais, havia pensado em criar mais campos para que os usuários possam inserir os outros coletores.
Skin_, se isto pode ocorrer, não seria o caso de criar uma tabela para cadastrar os coletores de cada indivíduo (relacionados por um código, p.e.)?

Neste caso, você talvez podesse fazer uso de um DBGrid para permitir a edição de tantos coletores quantos fossem necessários, sem preocupação com scroll, criação de componentes e alteração do lay-out.

Link para o comentário
Compartilhar em outros sites

  • 0

escreva esse código e rode o programa. Dá pra criar quantas labels você quiser ou qualquer outro componente.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  edt : array of Tlabel;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

setlength(edt,length(edt)+1);
edt[length(edt)-1] := Tlabel.create(Form1);
edt[length(edt)-1].name := 'label'+inttostr(length(edt)); //não podem existir duas edits
//com o mesmo nome
edt[length(edt)-1].width := 100;
edt[length(edt)-1].height := 16;
edt[length(edt)-1].top := length(edt)*edt[length(edt)-1].height;
edt[length(edt)-1].left := 0;
edt[length(edt)-1].parent := form1;


end;

end.

Valeu pela dica Danilo, muito boa.

Link para o comentário
Compartilhar em outros sites

  • 0
Skin_, se isto pode ocorrer, não seria o caso de criar uma tabela para cadastrar os coletores de cada indivíduo (relacionados por um código, p.e.)?

Neste caso, você talvez podesse fazer uso de um DBGrid para permitir a edição de tantos coletores quantos fossem necessários, sem preocupação com scroll, criação de componentes e alteração do lay-out.

A tabela de Coletores já existe. Eu havia pensado no seguinte: enquanto o usuário preenche o form, ele tem a opção de digitar um (ou mais) coletor(es). Caso algum deles ainda não exista na tabela de coletores (e eu ainda não pensei numa maneira de checar isso), eles seriam inseridos e o(s) codigo(s) respectivos fariam a ligação com o indivíduo coletado. (É difícil explicar em palavras.....)

Mesmo assim... obrigado pela dica. Acho que usar um Grid poderá simplificar muito o trabalho.

De qualquer forma, num TGrid, como saber quantas linhas ele possui e como recuperar o valor de cada campo de cada registro? (ou seja, como recuperar o valor de uma linha e coluna específicas do grid?)

Thales Pontes Martins, obrigado pela dica.....

Skin_

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...