Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Вниз

Создание объекта и его переменные   Найти похожие ветки 

 
worldmen   (2009-06-07 00:11) [0]

Есть MDI форма в которой я создаю два окна (из одной и той же формы - TGoIc)
 
TForms = object
   Ic_1    : TGoIc;  
   Ic_2    : TGoIc;  
 end;
.....
Var
 BeginIce : TForms;
 ...
       BeginIce.Ic_1:= TGoIc.Create(Application);
       BeginIce.Ic_1.Show;

       BeginIce.Ic_2:= TGoIc.Create(Application);
       BeginIce.Ic_2.Show;

В каждой форме я загружаю свои параметры в переменные (которые расположены после implementation ). Из-за этого переменные получаются общими и значения переменных получаются те, которые были загружены последними, а мне нужно чтоб для каждого обьекта  BeginIce.Ic_1 и  BeginIce.Ic_2 они были свои.


 
DVM ©   (2009-06-07 00:18) [1]


> worldmen


> а мне нужно чтоб для каждого обьекта  BeginIce.Ic_1 и  BeginIce.
> Ic_2 они были свои.

Ну так сделай их полями класса формы.


 
Германн ©   (2009-06-07 00:37) [2]


> В каждой форме я загружаю свои параметры в переменные (которые
> расположены после implementation ).

Учебник читай!
Форма и implementation - это термины из разных областей программирования. Не имеющие друг к другу никакого отношения.


 
Юрий Зотов ©   (2009-06-07 08:51) [3]

> worldmen   (07.06.09 00:11)  

Перевожу на русский:

type
 TGoIc = class(TForm)
 private
   FParam1: ...;
   FParam2: ...;
   FParamN: ...;
 ...
 public
   procedure LoadParams; // Написать код загрузки параметров
 ...
 end;


Теперь после создания формы вызываем ее метод LoadParams, который и грузит параметры FParam1..FParamN. У каждого экземпляра формы они будут своими.

Для MDI-Child форм вызывать Show не нужно.


 
Юрий Зотов ©   (2009-06-07 09:44) [4]

Добавление - если к параметрам формы нужен доступ извне, то объявите еще и свойства:

TGoIc = class(TForm)
private
 FParam1: ...;
 FParam2: ...;
 FParamN: ...;
 ...
public
 procedure LoadParams; // Написать код загрузки параметров
 property Param1: ... read FParam1;
 property Param2: ... read FParam2;
 ...
 property ParamN: ... read FParamN;
end;


 
worldmen   (2009-06-07 12:34) [5]

После выполнения этого кода (нажатие кнопки Button1)  выводится ошибка "Access violation..."

 TGoIc = class(TForm)
 private
  FParam1: integer;
  FParam2: integer;
  FParamN: integer;
 public
  procedure LoadParams; //  код загрузки параметров
  property Param1: integer read FParam1;
  property Param2: integer read FParam2;
  property ParamN: integer read FParamN;
 end;

var
 Form1: TForm1;
 GoIc : TGoIc;

implementation

{$R *.dfm}

procedure TGoIc.LoadParams;
Begin
 FParam1:= StrToInT(Form1.Edit1.Text);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
 GoIc.LoadParams;
end;



 
Юрий Зотов ©   (2009-06-07 12:39) [6]

Переменная Form1 не получила значение.


 
Юрий Зотов ©   (2009-06-07 12:40) [7]

Или переменная GoIc не получила значение.


 
Плохиш ©   (2009-06-07 14:48) [8]


> worldmen   (07.06.09 12:34) [5]

goto [2]


 
worldmen   (2009-06-07 15:27) [9]

Все работает. Только не пойму какие свойства правильно использовать FParam1 или Param1 ? Значения есть в обоих.


 
Юрий Зотов ©   (2009-06-07 15:30) [10]

> worldmen   (07.06.09 15:27) [9]

FParam1 - это не свойство, а поле. Оно доступно для чтения и записи, но только внутри модуля с классом TGoIc.

Param1 - это свойство. Оно доступно только для чтения, но зато везде.

Соответственно и используйте.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1244196096
a.a.j.
2009-06-05 14:01
2009.08.02
webbrowser и drag&drop


3-1225096677
dolmat
2008-10-27 11:37
2009.08.02
Количество месяцев


2-1244113576
Iriss
2009-06-04 15:06
2009.08.02
Clipboard Кодировка


15-1243538953
Саша
2009-05-28 23:29
2009.08.02
как защитить программу от взлома?


15-1243888204
Юрий
2009-06-02 00:30
2009.08.02
С днем рождения ! 2 июня 2009 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский