Limpar texto dos edits criando em tempo de execução.....
Estou criando alguns edits, dessa maneira e um ComboBox na frente deles, ai então fica uma linha de edit com o primeiro de codigo, o segundo para o nome e o combobox na frente, esse combobox que eu fiz é para que quando o usuário não querer o nome daquela linha ele clicar no combobox da linha do nome que ele quer que apague, mas não estou conseguindo fazer isso, os coidfo estão abaixo ai!
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...
????
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
Curtidas 0
Respostas
Marco Salles
18/07/2008
olha , meio complicado entender isto :
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
Estou criando alguns edits, dessa maneira e um ComboBox na frente deles, ai então fica uma linha de edit com o primeiro de codigo, o segundo para o nome e o combobox na frente, esse combobox que eu fiz é para que quando o usuário não querer o nome daquela linha ele clicar no combobox da linha do nome que ele quer que apague, mas não estou conseguindo fazer isso, os coidfo estão abaixo ai!
mas isto da para entender .. ps: Pelo menos para mim
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...
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
GOSTEI 0
Robinhocne
18/07/2008
não consegui compreender cara...!
GOSTEI 0
Marco Salles
18/07/2008
veja algo + ou -
isto foi possivel pq definimos os nomes dos edit
[b:ea60b1fefc]meuedit.Name:=nome;[/b:ea60b1fefc]
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]
GOSTEI 0
Robinhocne
18/07/2008
consegui ficou dessa maneira
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;
GOSTEI 0
Marco Salles
18/07/2008
então achao que voce deve pelo menos saber o nome dos edit criados
em rumTime
consegui ficou dessa maneira ...
procedure TFrmFechaTurmaTeorica.LimpaCampos(Sender: TObject);
var
numAluno, i: Smallint;
begin
..............................
TEdit([b:6145560d2b]FindComponent[/b:6145560d2b](´CodAlu´ + IntToStr(numAluno))).Clear;
TEdit([b:6145560d2b]FindComponent[/b:6145560d2b](´NomAlu´ + IntToStr(numAluno))).Clear;
TEdit([b:6145560d2b]FindComponent[/b:6145560d2b](´CodAlu´ + IntToStr(numAluno))).SetFocus;
Conta := NumAluno;
end;
A politica dos nomes depende da sua logica de criação dos mesmo
mas no mais é isto ai....
GOSTEI 0
Robinhocne
18/07/2008
sim sei mas esse começo que eu não sabei como fazer !
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;
GOSTEI 0
Marco Salles
18/07/2008
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...
????
de acordo com as suas especificações faça isto que dá certo :
private
{ Private declarations }
procedure LimpaCampos(sender:TObject);
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;
GOSTEI 0
Robinhocne
18/07/2008
assim fica mais facil, valeu
GOSTEI 0