Fórum (Owner as TForm).Name e depois? #189288
17/10/2003
0
No meu caso retorna ´FConsSemana´.
No form ´FConsSemana´ existe um TChart chamado ´C1´
Quero q este form (FOpcGraf) altere alguma configurações de ´C1´ q aparece em vários form (Um deles é ´FConsSemana´).
Veja uma das ciosas q quero:
No evento OnClick do botão do form OpcGraf faça o seguinte:
FConsSemana.C1.Visible:=True;
Só q o form FConsSemana, vai mudar de acordo com o form q chamar FOpcGraf.
Se fui claro, alguém pode me ajudar??
Pedro Dias
Curtir tópico
+ 0Posts
17/10/2003
Beppe
1) TControl(Owner.FieldAddress(´C1´)^).Hide;
As outras duas maneiras seriam usar um form ancestrl comum, e usar o serviço de mensagens, mas está é bem mais simples.
Ataliba
Gostei + 0
17/10/2003
Pedro Dias
Vc saberia se é possivel aprofundar o TControl, veja um evento de um componebte q altero o grafico.
procedure TFOpcGraf.OpcValorClick(Sender: TObject);
var
i:Integer;
begin
Case OpcValor.ItemIndex of
0:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsValue;
1:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsPercent;
2:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsLabel;
3:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsLabelPercent;
4:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsLabelValue;
5:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsPercentTotal;
6:FConsSem.C1.Series[NumGrafAtivo].Marks.Style:=smsLabelPercentTotal;
end;
end;
Ou seja o comando q vc acabou de me ensinar, somente esconte o C1, preciso atuar mais neste componente, mas mesmo assim muito obrigadooooo
Gostei + 0
17/10/2003
Beppe
procedure TFOpcGraf.OpcValorClick(Sender: TObject); var I: Integer; C1: TChart; begin // armazeno numa variável pra facilitar C1 := TChart(Owner.FieldAddress(´C1´)^); case OpcValor.ItemIndex of 0: C1.Series[NumGrafAtivo].Marks.Style:=smsValue; 1: C1.Series[NumGrafAtivo].Marks.Style:=smsPercent; 2: C1.Series[NumGrafAtivo].Marks.Style:=smsLabel; 3: C1.Series[NumGrafAtivo].Marks.Style:=smsLabelPercent; 4: C1.Series[NumGrafAtivo].Marks.Style:=smsLabelValue; 5: C1.Series[NumGrafAtivo].Marks.Style:=smsPercentTotal; 6: C1.Series[NumGrafAtivo].Marks.Style:=smsLabelPercentTotal; end; end;
Eu tinha castado para TControl apenas por praticidade. FieldAddress retorna o endereço do campo publicado. Você dereferencia e casta para qualquer classe compatível. Por segurança, você pode usar Owner.FieldAddress(´C1´)^ as TChart.
Ataliba
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)