PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Como pegar o valor do text, componente criando em tempo projeto? #400944

12/05/2011

0

Pessoal, bom dia...

Estou tentando criar um componente herdado do TLabelEdit, mais com uma propriedade para mudar o TLableEdit em TComboBox, como não vi uma forma de fazer isso, criei um combo dinamicamente quando mudo a propriedade para dropdown.

Segue o código

procedure TCASLlblEdt.SetStyle(const Value: TStyleComboBox);
var
  CASComboBox: TComboBox;
begin
  {criando um combobox dinamicamente}
  CASComboBox := TComboBox.Create(nil);
  try
    FStyle := Value;
    //Redimensiona a caixa de texto do edit
    if Value = cbSimple then
    begin
      Self.Width := 121;
      CASComboBox.Visible := False;
      FreeAndNil(CASComboBox);
    end
    else
    begin
      Self.Width := 49;
      with CASComboBox do
      begin
        Parent     := Self;
        Name       := 'CASComboBox';
        Text       := EmptyStr;
        Visible    := True;
        Top        := -2;
        Left       := -2;
        Width      := 49;
        //Passando valores para o List do ComboBox
        Items.Text := 'AC'+#13+#10+'AL'+#13+#10+'AP'+#13+#10+'AM'+#13+#10+
                      'BA'+#13+#10+'CE'+#13+#10+'DF'+#13+#10+'GO'+#13+#10+
                      'ES'+#13+#10+'MA'+#13+#10+'MT'+#13+#10+'MS'+#13+#10+
                      'MG'+#13+#10+'PA'+#13+#10+'PB'+#13+#10+'PR'+#13+#10+
                      'PE'+#13+#10+'PI'+#13+#10+'RJ'+#13+#10+'RN'+#13+#10+
                      'RS'+#13+#10+'RO'+#13+#10+'RR'+#13+#10+'SP'+#13+#10+
                      'SC'+#13+#10+'SE'+#13+#10+'TO';
        //muda o Label do edit
        Self.EditLabel.Caption := 'UF';
      end;
    end;
  finally
    //
  end;
end;


Minha duvida é:

Quando selecionar para ser combobox e colocar um valor no texto... Passar este valor?

Tipo

ShowMessage(TCASLlblEdt(FindComponent('CASComboBox')).Text);

Outra coisa também, quando entrar nesta condição aqui
if Value = cbSimple then

    begin

      Self.Width := 121;

      CASComboBox.Visible := False;

      FreeAndNil(CASComboBox);

    end

Gostaria que o combobox desaparecesse antes mesmo de compilar, tem como?



Obrigado pessoal.


Adriano Dolce

Adriano Dolce

Responder

Posts

12/05/2011

Adriano Dolce

A duvida 01 eu ja resolvi, passando o valor do ComboBox para o Self do componente

//Pega o result do combobox
  Self.Text := CASComboBox.Text;


Resolvi criar o TComboBox no onCreate e destrui-lo no Destroy da classe.

Mudei esta parte aqui
procedure TCASLlblEdt.SetStyle(const Value: TStyleComboBox);
begin
  FStyle := Value;
  //Redimensiona a caixa de texto do edit
  if Value = cbSimple then
    Self.Width := 121
  else
  begin
    Self.Width := 49;
    with CASComboBox do
    begin
      Parent     := Self;
      Name       := 'CASComboBoxX';
      Text       := EmptyStr;
      Visible    := True;
      Top        := -2;
      Left       := -2;
      Width      := 49;
      //Passando valores para o List do ComboBox
      Items.Text :=
        'AC'+#13+#10+'AL'+#13+#10+'AP'+#13+#10+'AM'+#13+#10+'BA'+#13+#10+
        'CE'+#13+#10+'DF'+#13+#10+'GO'+#13+#10+'ES'+#13+#10+'MA'+#13+#10+
        'MT'+#13+#10+'MS'+#13+#10+'MG'+#13+#10+'PA'+#13+#10+'PB'+#13+#10+
        'PR'+#13+#10+'PE'+#13+#10+'PI'+#13+#10+'RJ'+#13+#10+'RN'+#13+#10+
        'RS'+#13+#10+'RO'+#13+#10+'RR'+#13+#10+'SP'+#13+#10+'SC'+#13+#10+
        'SE'+#13+#10+'TO'+#13+#10+'EX'+#13+#10+' ';
      //muda o Label do edit
      Self.EditLabel.Caption := 'UF';
    end;
  end;
end;


Mais ainda continui com problema para eliminar o combobox quando mudo a propriedade do componente



Responder

Gostei + 0

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

Aceitar