Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Amazing bug ?


Dodfr ©   (2005-08-11 12:41:00) 

In this code, when I do form1.form.left:=PosX[0]; the PosX[1] changes and get PosX[0] value ?!? how is it possible as I do not write any value inside it after filling array once ???

const
 MaxFormView=4;

type
 _INISettings = record
   OnTop:integer;
   FontName:string;
   FontSize:integer;
   PosX:array[0..MaxFormView] of integer;
   PosY:array[0..MaxFormView] of integer;
 end;
 INISettings = _INISettings;
 PINISettings = ^INISettings;

var
 Pini:INISettings;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
var
 i:integer;

begin
   for i:=0 to MaxFormView do
   begin
     Pini.PosX[i]:=str2int(ini.ReadString(ConstSettings,'PosX'+int2str(i),'0'));
     Pini.PosY[i]:=str2int(ini.ReadString(ConstSettings,'PosY'+int2str(i),'0'));
   end;

   Form1.form.left:=Pini.PosX[0];
   // now PosX[1]=PosX[0] !!!
   Form1.form.Top:=Pini.PosY[0];
   // now PosY[1]=PosY[0] !!!

  If I copy/past the for/next and .left/top block a second time just below this code, array are refilled and this time they don't change after the form.left end form.top !!!


Dodfr   (2005-08-11 12:47:00) [1]

If I change location of PosX and PosY in record definition it do not help.

If I simply fill arrays with this, it do not help :

   for i:=0 to MaxFormView do
   begin
     Pini.PosX[i]:=i;
     Pini.PosY[i]:=i;
   end;

If I do some i2:=Pini.PosX[0] there is no bug.

How the form1.form.left:=PosX[0] could copy value of PosX[0] inside PosX[1] ???


Наверх

Титульная страница Поиск, карта сайта Написать письмо