|
| Gennemløbe en anden form form komponenter Fra : Ukendt |
Dato : 26-12-06 13:42 |
|
Hej og god baghjul til alle.
Jeg ønsker at lave en "nulstil" funktion, der nulstiller nogle editbokse i
en række forms. Nulstillingen skal ske fra et menupunkt i hovedmenuen på
hovedformen. Her havde jeg forestillet mig noget lignende nedenstående kode
for hver form, der skal nulstilles.
---
with formPI do
begin
for I:= 0 to ComponentCount -1 do
If Components[i] is TEdit then
TEdit(Components[i]).Text:= IntToStr(0);
end;
etc for de øvrige forms.
---
Men denne kode nulstiller intet i denne form.
Flytter jeg koden over i selve formens unit og undlader "with formPI do" så
fungerer det fint.
Mit spørgsmål er derfor, hvordan kan jeg gennemløbe formPI for komponenter
fra min hovedform, når jeg ikke kan bruge "with formPI do"
På forhånd tak.
| |
PØLLE (26-12-2006)
| Kommentar Fra : PØLLE |
Dato : 26-12-06 15:09 |
|
Hej Michael
> with formPI do
> begin
> for I:= 0 to ComponentCount -1 do
> If Components[i] is TEdit then
> TEdit(Components[i]).Text:= IntToStr(0);
> end;
Da det virker, når det er direkte formen gå gør dog følgende
TFformPI = class(TForm)
Panel3: TPanel;
Panel6: TPanel;
Panel4: TPanel;
Edit1: TEdit;
private
PriorPanel:TPanel;
KundeIdentitetCaptionBeforeTest,
TestModeKodeRest:String;
procedure FormShowAfterHide(Sender: TObject);
function CalcSystemLock:longint;
public
procedure IdleHandler(Sender: TObject; var Done: Boolean);
procedure Reklame;
procedure ClearTEdit;
end;
var
FformPI: TFformPI;
implementation
Procedure TFformPI.ClearTEdit;
var onChange : TNotifyEvent;
I : Integer;
begin
for I := 0 to ComponentCount - 1 do
if Components[I] is TEdit then begin
onChange := TEdit(Components[I].onChange;
TEdit(Components[I].onChange := Nil;
TEdit(Components[I].Clear;
TEdit(Components[I].onChange := onChange;
end;
end;
FORKLARING:
Det er ikke afprøver, men burde kunne virke.
Årsagen til jeg gør det på denne måde er, at det Proceduren ClearTEdit er
det samme i til alle andre forme.
Du vil sikkert bemærke, at jeg har lavet en "var" som hedder onChange. Når
man sletter en TEdit og der måske er en onChange i funktion, har du ikke
styr på, hvad der sker, derfor sætter jeg midlertidig
TEdit(Components[I].onChange := Nil, hvorefter jeg kobler onChange på igen
i TEdit(Components[I].onChange := onChange.
PØLLE - du kan evt ringe, du kender mit Skypenavn
| |
|
|