Limpar texto dos edits criando em tempo de execução.....
18/07/2008
0
procedure TFrmFechaTurmaTeorica.FormCreate(Sender: TObject); var SP, A, T : Integer; CodAlu, NomAlu : TEdit; Check : TCheckBox; begin with DtmIza.QryIza do begin close; sql.clear; sql.add(´select * from Configuracao´); open; end; Alunos := DtmIza.QryIza.FieldByName(´TOT_ALU_TEORICAS´).AsInteger; // Criando total de alunos for CAC := 1 to Alunos do // criando colunas begin CodAlu := TEdit.Create(Self); with CodAlu do begin Name := ´CodAlu´+ IntToStr(CAC); Tag := cac; Left := 0; Height := 20; Width := 55; AutoSize := false; Font.Size := 8; Text := ´´; top := -19+(CAC*20); Font.Style := [fsbold]; // Parent := Grade.Parent; Para fixar no Panel do JEDI Parent := Grade; // OnExit := ConsultaAlunos; // OnExit := ConsultaAlunosCodigo; end; end; // Criando total de alunos for CA := 1 to Alunos do // criando colunas begin NomAlu := TEdit.Create(Self); with NomAlu do begin Name := ´NomAlu´+ IntToStr(CA); Tag := ca; Left := 56; Height := 20; Width := 250; AutoSize := false; Font.Size := 8; Text := ´´; top := -19+(CA*20); Font.Style := [fsbold]; //Parent := Grade.Parent; Para fixar no Panel do JEDI Parent := Grade; end; end; // Criando total de alunos for Tck := 1 to Alunos do // criando colunas begin Check := TCheckBox.Create(Self); with Check do begin Name := ´Check´ + IntToStr(Tck); Left := 308; Height := 20; Width := 50; AutoSize := false; Font.Size := 8; Caption := ´Limpa´; top := -19+(Tck*20); tag := Tck; Parent := Grade; OnClick := LimpaCampos; end; end; AluPermitido.Caption := IntToStr(Alunos); Conta := 1; TotalAlunos := 0; end;
Pois criado ele fica assim
(CodAlu1)(NomAlu1)(TckAlu1)
(CodAlu2)(NomAlu2)(TckAlu2)
(CodAlu3)(NomAlu3)(TckAlu3)
(CodAlu4)(NomAlu4)(TckAlu4)
(CodAlu5)(NomAlu5)(TckAlu5)...etc
então como eu faço para que quando eu clico por exemplo no (TckAlu3), só apaga o texto dos edits dessa linha no caso o CodAlu3 e NomAlu3...
????
Robinhocne
Posts
18/07/2008
Marco Salles
mas isto da para entender .. ps: Pelo menos para mim
então achao que voce deve pelo menos [b:f1509c7a6f]saber o nome dos edit criados
em rumTime[/b:f1509c7a6f]
ai voce pode fazer tipo isto
TEdit(findComponent(´NomedoEditEmRumTime´).text:=´´;
ps.. dar um nome a um edit criado em rumTime vai depender de sua logica para criação do mesmo .. Inclusive atribuir um valor de tag especifico , para que voce possa ter mais liberdade no seu codigo
espero ter sido util
18/07/2008
Marco Salles
private { Private declarations } i:integer; procedure GerarEdit(Aowner:Tcomponent); public { Public declarations } end;
var Form1: TForm1; implementation {$R *.dfm} { TForm1 }
procedure TForm1.GerarEdit(Aowner: Tcomponent); var meuedit:Tedit; nome:String; begin meuedit:=Tedit.Create(Aowner); meuEdit.Parent:=(Aowner as TWincontrol); repeat inc(i); nome:=´edit´+inttostr(i); until findComponent(nome) = nil ; meuedit.Name:=nome; meuedit.Top:=25*i; end;
procedure TForm1.Button1Click(Sender: TObject); begin GerarEdit(self); end;
procedure TForm1.Button2Click(Sender: TObject); begin //No edit 2 coloque qual o edit que voce quer alterar //exemplo 2 para o edit 2 ; 3 para o edit 3 TEdit(findcomponent(´edit´+edit1.text)).Text:=´´; end;
isto foi possivel pq definimos os nomes dos edit
[b:ea60b1fefc]meuedit.Name:=nome;[/b:ea60b1fefc]
21/07/2008
Robinhocne
procedure TFrmFechaTurmaTeorica.LimpaCampos(Sender: TObject); var numAluno, i: Smallint; begin i := Length(TJvTransparentButton(Sender).Name); for i := Length(TJvTransparentButton(Sender).Name) downto 1 do if not (Ord(TJvTransparentButton(Sender).Name[i]) in [48..57]) then begin numAluno := StrToInt(Copy(TJvTransparentButton(Sender).Name, i + 1, Length(TJvTransparentButton(Sender).Name) - i + 2)); break; end; TEdit(FindComponent(´CodAlu´ + IntToStr(numAluno))).Clear; TEdit(FindComponent(´NomAlu´ + IntToStr(numAluno))).Clear; TEdit(FindComponent(´CodAlu´ + IntToStr(numAluno))).SetFocus; Conta := NumAluno; end;
21/07/2008
Marco Salles
A politica dos nomes depende da sua logica de criação dos mesmo
mas no mais é isto ai....
21/07/2008
Robinhocne
procedure TFrmFechaTurmaTeorica.LimpaCampos(Sender: TObject); var numAluno, i: Smallint; begin i := Length(TJvTransparentButton(Sender).Name); for i := Length(TJvTransparentButton(Sender).Name) downto 1 do if not (Ord(TJvTransparentButton(Sender).Name[i]) in [48..57]) then begin numAluno := StrToInt(Copy(TJvTransparentButton(Sender).Name, i + 1, Length(TJvTransparentButton(Sender).Name) - i + 2)); break; end;
22/07/2008
Marco Salles
de acordo com as suas especificações faça isto que dá certo :
procedure TForm1.LimpaCampos(sender: TObject); var umTag:integer; begin umTag:=TCheckBox(sender).Tag; TEdit(FindComponent(´NomAlu´+inttostr(umTag))).Text:=´´; TEdit(FindComponent(´CodAlu´+inttostr(umTag))).Text:=´´; end;
Clique aqui para fazer login e interagir na Comunidade :)