/ 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
Global variable som ikke virker globalt!?
Fra : Michael


Dato : 03-01-01 18:32

Jeg har fået et rigtigt microsoft problem, det er i hvert fald underligt

Jeg har 5 globale variabler, 1 Integer og 4 Boolean,
de bliver alle erklæret i form1 og for også tildelt en værdi i form1.

Problemet er så når jeg fra form2 "kalder" på dem alle så er det kun den der
først bliver kaldt der har en værdi, de andre har ingen værdi, og bytter jeg
om på rækkefølgen, ja så er det sgu' den "nye" første der virker, det er som
om jeg kun kan havde en global variable og det holder vist ikke.

Er der en kvik person der har en ide om hvad jeg har lavet som jeg ikke
skulle eller omvendt?

Det er i øvrigt Delphi 5

--
/md



 
 
Niels (niLLer) (03-01-2001)
Kommentar
Fra : Niels (niLLer)


Dato : 03-01-01 20:51

Just as I expected, "Michael" <michael@danwebportal.com> came up with
this:

>Jeg har 5 globale variabler, 1 Integer og 4 Boolean,
>de bliver alle erklæret i form1 og for også tildelt en værdi i form1.
>
>Problemet er så når jeg fra form2 "kalder" på dem alle så er det kun den der
>først bliver kaldt der har en værdi, de andre har ingen værdi, og bytter jeg
>om på rækkefølgen, ja så er det sgu' den "nye" første der virker, det er som
>om jeg kun kan havde en global variable og det holder vist ikke.

Kan vi se noget kode? Det er lidt svært at finde ud af ud fra den
brskrivelse...

Niels (aka. niLLer)
--
e-mail: nmartin at iname dot com ICQ UIN: 50187323
http://xoasis.com/~niller/ - niLLer's pages (My programs, in English)
http://whitehat.dk/g4s/ - The G4S Page (Personlig side, på dansk)
-- I've been Windozed!

Michael (03-01-2001)
Kommentar
Fra : Michael


Dato : 03-01-01 21:11

> Kan vi se noget kode? Det er lidt svært at finde ud af ud fra den
> brskrivelse...

Variablerne får deres værdi fra en inifil og de får en værdi, for den der
bliver "kørt" først virker og det er uanset hvilken rækkefølge jeg planter
dem i og her tænker jeg på TForm2.FormActivate.

{ form1 adresseU1 }

var
Form1: TForm1;
vEscapeIndex: Integer;
vCloseAOEmail: Boolean;
vCopyToClipBoard: Boolean;
vOutlookExpress: Boolean;
vStayOnTop: Boolean;

implementation

uses setupU2, personDataU3;

{$R *.DFM}

....


{ form2 setupU2}

var
Form2: TForm2;


implementation

uses adresseU1;

{$R *.DFM}

procedure TForm2.FormActivate(Sender: TObject);
begin
RadioGroupCloseOnEscape.ItemIndex := vEscapeIndex;

CheckBoxStayOnTop.Checked := vStayOnTop;
CheckBoxCopyToClipBoard.Checked := vCopyToClipBoard;
CheckBoxCloseAOEmail.Checked := vCloseAOEmail;
CheckBoxOutlookExpress.Checked := vOutlookExpress;
end;

....



N/A (03-01-2001)
Kommentar
Fra : N/A


Dato : 03-01-01 21:41



Michael (03-01-2001)
Kommentar
Fra : Michael


Dato : 03-01-01 21:41

> DU bytter om på hvad? Den rækkefølge variablene bliver deklareret i,

Nej på den rækkefølge jeg "bruger" dem i, og de har den ønskede værdi hvis
blot jeg kunne nøjes med én.

procedure TForm2.FormActivate(Sender: TObject);
begin
RadioGroupCloseOnEscape.ItemIndex := vEscapeIndex; { den her virker }

CheckBoxStayOnTop.Checked := vStayOnTop;
CheckBoxCopyToClipBoard.Checked := vCopyToClipBoard;
CheckBoxCloseAOEmail.Checked := vCloseAOEmail;
CheckBoxOutlookExpress.Checked := vOutlookExpress;
end;


og hvis jeg gør sådan her

procedure TForm2.FormActivate(Sender: TObject);
begin
CheckBoxStayOnTop.Checked := vStayOnTop; { nu virker den her }

RadioGroupCloseOnEscape.ItemIndex := vEscapeIndex; { den her virker }
CheckBoxCopyToClipBoard.Checked := vCopyToClipBoard;
CheckBoxCloseAOEmail.Checked := vCloseAOEmail;
CheckBoxOutlookExpress.Checked := vOutlookExpress;
end;

>... Hvis nu variablen fra start har
> værdien "False", og den så bliver tildelt værdien "False" af en
> læsning fra INI-filen, så ser det jo ud som om der ikke er sket noget!

Jeg skam også prøvet at give dem andre default værdier af samme årsag uden
held.





Niels (niLLer) (03-01-2001)
Kommentar
Fra : Niels (niLLer)


Dato : 03-01-01 22:00

Just as I expected, "Michael" <michael@danwebportal.com> came up with
this:

>Nej på den rækkefølge jeg "bruger" dem i, og de har den ønskede værdi hvis
>blot jeg kunne nøjes med én.

Prøv i stedet at lave en Record type-variabel hvow du gemmer
indstillingerne i. Prøv avt. også at single-steppe gennem programmet
og se om variablene faktisk har de rigtige værdier over alt.

>procedure TForm2.FormActivate(Sender: TObject);

Hvis du vil single-steppe, så sæt f.eks. et breakpoint på næste linie.

>begin
> RadioGroupCloseOnEscape.ItemIndex := vEscapeIndex; { den her virker }

....

>>... Hvis nu variablen fra start har
>> værdien "False", og den så bliver tildelt værdien "False" af en
>> læsning fra INI-filen, så ser det jo ud som om der ikke er sket noget!
>
>Jeg skam også prøvet at give dem andre default værdier af samme årsag uden
>held.

Prøv i stedet at give alle check-boxene værdien "intermediate", dvs.
hverken-eller. Så kan man i hvertfald nemt se om de bliver tildelt en
værdi. Det er nemlig det at jeg tænker på at checkboxene bliver
tildelt den værdi de i forvejen har.

Niels (aka. niLLer)
--
e-mail: nmartin at iname dot com ICQ UIN: 50187323
http://xoasis.com/~niller/ - niLLer's pages (My programs, in English)
http://whitehat.dk/g4s/ - The G4S Page (Personlig side, på dansk)
-- I've been Windozed!

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste