Fórum Trabalhar com macro #570185
31/10/2016
0
Tenho 31 TEdit onde eu tenho que colocar qual é o dia da semana.
Ex: No onshow eu coloco:
Edit1.text := DiaSemana(Now); Edit2.text := DiaSemana(Now); Edit3.text := DiaSemana(Now); Edit4.text := DiaSemana(Now); Edit5.text := DiaSemana(Now); Edit6.text := DiaSemana(Now); Edit7.text := DiaSemana(Now); Edit8.text := DiaSemana(Now); .... Edit31.text := DiaSemana(Now);
Ao invés de escrever o edit 31 vezes eu usaria um macro.
Não sei se o nome é macro mas pensei em algo assim:
Var NomeEdit : TEdit;
For i := 1 to 31 do
NomeEdit.Name := 'Edit'+IntToStr(i);
NomeEdit.Text := DiaSemana(Now+i);
end;
ou
for i := 1 to 31 do
edit+IntToStr(i)+.text := DiaSemana(Now+i)
desde já agradeço
Dirceu Morais
Curtir tópico
+ 0Posts
31/10/2016
Araujo Junior.
var
Edit: TEdit;
begin
for I := 0 To 31 do
begin
Edit := TEdit(FindComponent('Edit' + IntToStr(I)));
Edit.Text := DiaSemana(Now)
end;Gostei + 0
31/10/2016
Dirceu Morais
Na verdade estou tentando fazer é no fast report.
procedure PageHeader2OnBeforePrint(Sender: TfrxComponent);
Var Dia, Mes, Ano : Word;
NoDia : TDate;
NomeEdit : TFrxMemoView;
i : Integer;
begin
DecodeDate (<frxEmitente."DATAI">, Ano, Mes, Dia);
NoDia := StrToDate('01/'+IntToStr(Mes)+'/'+IntToStr(Ano));
For i := 1 to 31 do
Begin
NomeEdit := TFrxMemoView(FindComponent('Eds_' + IntToStr(I)));
NomeEdit.Text := DiaDaSemana(NoDia+i-1);
if Copy(NomeEdit.Text,1,3) = 'DOM' Then
NomeEdit.Font.Color:= ClRed;
end;
Só que dá erro ao executar:
Undeclared indentifier. 'FindComponent'
Gostei + 0
31/10/2016
Araujo Junior.
Uma dica para você, a melhor fonte de pesquisas é o Help do Delphi, e existe o docwiki com muita documentação. No caso ai, deve ser alguma Unit que esta faltando. No Caso, System.Classes
http://docwiki.embarcadero.com/CodeExamples/Berlin/en/FindComponent_(Delphi)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)