Fórum Erro com Parent #386482

16/09/2010

0

Tenho um metodo onde faço a impressao de pedidos, neste momento preciso imprimir um campo memo, entao como utilizo esse metodo em varios forms, crio um memo em tempo de execucao da seguinte maneira:     [CODE]   var   Observ: TMemo;
begin
  Observ := TMemo.Create(Self);
  Observ.Visible := False;
  Observ.Width := 520;
  Observ.Parent := FPedidos;     Observ.Text := CdsPedidosOBSER.Value;
  for lx := 0 to Observ.Lines.Count - 1 do
  begin
    RDprint.Imp(lin,010,Observ.Lines[lx]);
    Inc(lin);
  end;
[CODE]     O problema aparece quando chamo esse metodo de outro form, retorna o seguinte erro control has no parent window, pq estou colocando o Parent do form principal, como faço entao para conseguir chamar esse metodo de outro forms, imagino que alterando a propriedade Parent ? Mas como ?     Abs  
   
Felipe Ip

Felipe Ip

Responder

Posts

16/09/2010

Wilson Junior

procedure Imprimir_Memo(MyParent: TWinControl);
var
  Observ: TMemo;
begin
  Observ := TMemo.Create( MyParent );
  try
    Observ.Visible := False;
    Observ.Width := 520;
    Observ.Parent := MyParent;
    
    Observ.Text := CdsPedidosOBSER.Value;
    for lx := 0 to Observ.Lines.Count - 1 do
    begin
      RDprint.Imp( lin, 010, Observ.Lines[lx] );
      Inc( lin );
    end;
  finally
    FreeAndNil( Observ );
  end;
end;

Imprimir_Memo( Meu_TForm ) 


Espero ter colaborado.
Responder

Gostei + 0

16/09/2010

Eriley Barbosa

var   Observ: TMemo;
begin
  Observ := TMemo.Create(Self);
  Observ.Visible := False;
  Observ.Width := 520;
  Observ.Parent := Screen.ActiveForm.Name;     Observ.Text := CdsPedidosOBSER.Value;
  for lx := 0 to Observ.Lines.Count - 1 do
  begin
    RDprint.Imp(lin,010,Observ.Lines[lx]);
    Inc(lin);
  end;
Responder

Gostei + 0

21/09/2010

Felipe Ip

Nao deu certo nenhuma das duas, mas deixe eu colocar como estou criando esse metodo:     procedure TFPedidos.CabecalhoOrcamento(Sender: TObject; Pagina: Integer);     Como estou usando o rdprint e preciso do numero da pagina que ele gera, preciso criar o metodo dessa maneira.     Na segunda opcao do amigo ERILEY, a propriedade NAME da Screen.ActiveForm, nao estava disponivel, ai testei com PARENT, mas o erro continuou.     Obrigado
Responder

Gostei + 0

21/09/2010

Eriley Barbosa

Testei da seguinte forma e funcionou:   Observ.Parent := Screen.ActiveForm;
Responder

Gostei + 0

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

Aceitar