dziwny problem z INI

0

Z dwóch różnych form operuje plikiem INI. Problem polega na tym, że każda z form odczytuje tylko te ustawienia, które sama zapisała (sprawdzałem notatnikiem kolejno).

Operuje tam 3-ema checkboxami. Jeżeli w jednej formie ustawie swoją kombinację CHECKED, i zapisze ją do INI, to się zapisuje. Druga forma ma to samo i też prawidłowo zapisuje (sprawdzone!) Każda z form ma rózwnież w OnCreate odczyt tego ustawienia w INI. No i odczyty są prawidłowe, ale tylko każda swój (błędy pojawiają się przy odczycie ustawienia zrobionego przez drugą formę).

Dokładnie wszystko sprawdziłem, i wszędzie jest INI.Free.

Czy to może być spowodowane tym, że każda z form ma zmienną INI w następującym miejscu? :

<font color="green">procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
ust: Tust;
INI: TINIFile;

implementation

uses Unit1;</span>

"Ust" to nazwa drugiej formy (czyli tej).

O co chodzi? Czemu to nie działa - niech ktoś pomoże bo już szału dostaje...

0

A nie mozesz zdefinioowac zmiennej INI tylko w jednej formie (w sekcji public ozywiscie) a pozniej odwolywac sie z innych zmiennych do tej formy? Jak takzrobilem w swoim programie i dziala.

0

Hmm, może to zabrzmi trochę lamersko, ale jak wtedy wygląda to odwołanie do niej?

0

INI

0

No dobra, mam tak:

W pierwszej formie:

<font color="green"> private
{ Private declarations }
public
{ Public declarations }

end;

var

INI:TINIFile;</span>

W drugiej formie <font color="green">USES INI</span>

I dalej jest tak jak opisywałem za pierwszym razem. Każda z form ma swoje zapisy i swoje odczyty !!!!

0

W sekcji PUBLIC deklarujesz zmienna INI. Wglada to mniej wiecej tak:

//w mainFrm.pas (przykladowo)
(...)
private
Private declarations }
public
{ Public declarations }
INI : TINIFIles;
end;
(...)

Pozniej gdzies tam sie odwolujesz MainFrm.INI.... cos tam cos tam....

0

Już doSZEDŁem od czego tak sie dzieje. To trochę dziwne. Wystarczyło wszystkie te polecenia odczytu z obydwu form dać nie w OnCreate, a w OnShow i już działa - czy to nie dziwne?

Może przez to, że operowałem w OnCreate checkboxem, którego jeszcze nie było, ponieważ komputer właśnie go tworzył (OnCreate).

1 użytkowników online, w tym zalogowanych: 0, gości: 1