/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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









Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste