Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.10;
Скачать: CL | DM;

Вниз

Возможно ли запустить метод класса при создании класса?   Найти похожие ветки 

 
Сергей   (2009-11-18 17:05) [0]

Всем привет. При создании класса мне необходимо установить путь к базе данных. В классе написал метод. Что бы не вызывать его каждый раз при создании класса можно ли его вызвать в конструкторе? Может быть есть другой способ?

function TMOD_PrintPermission.SetFullBaseName(): boolean;
begin
FullBaseName:="D:\Base.mdb";
//прочитать с ини файла путь к базе
FullBaseName:=  ControlerOptionsLoadOk("FullPathBase");
// проверить наличие базы по прочитанному пути
if FileExists(FullBaseName)=false then
//если файла нет
begin
//выдать сообщение
ShowMessage("Нет файла базы по указанному пути. Выберите файл базы данных");
//окно для выбора нового пути
FullBaseName:=FileNameBase("D:\Base.mdb");
// записать новый путь в ини файл
ControlerOptionsSaveOk(FullBaseName, "FullPathBase");
// передать путь  в переменную класса
if FileExists(FullBaseName)=false then
ShowMessage("Нет файла базы по указанному пути. База не будет подключена.");
end;


 
Медвежонок Пятачок ©   (2009-11-18 17:07) [1]

constructor CreateWithDBParams(AParams : что_то_там_в_носу);


 
Демо ©   (2009-11-18 17:09) [2]

В конструкторе тоже можно параметры передавать.
constructor Create(<параметры>);


 
Сергей   (2009-11-18 17:29) [3]

Т.е при создании экземпрляра класса мне нужно писать
s:= class.CreateWithDBParams(...)


 
Демо ©   (2009-11-18 17:58) [4]

type
> Т.е при создании экземпрляра класса мне нужно писать
> s:= class.CreateWithDBParams(...)


Конструкторов может быть сколько угодно.
На выбор:

 TMyClass=class
 private
   FPathDB: String;
 public
   constructor Create(PathDB: String="");
   constructor CreateWithDBParams(PathDB: String);
 end;

constructor TMyClass.Create(PathDB: String);
begin
 PathDB := FPathDB;
end;

constructor TMyClass.CreateWithDBParams(PathDB: String);
begin
 PathDB := PathDB;
end;


 
Демо ©   (2009-11-18 17:59) [5]

Только реализация правильно так:

constructor TMyClass.Create(PathDB: String);
begin
FPathDB := PathDB;
end;

constructor TMyClass.CreateWithDBParams(PathDB: String);
begin
FPathDB := PathDB;
end;


 
Сергей   (2009-11-19 12:55) [6]

Т.е я могу создать экземпляр класса вызовом одного из двух конструкторов?


 
Kolan ©   (2009-11-19 15:32) [7]

Да.



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

Текущий архив: 2010.01.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1257271998
trxnet
2009-11-03 21:13
2010.01.10
2 задачки. Размен денег и произведение многочленов


2-1258308164
&#8467;o&#8467;
2009-11-15 21:02
2010.01.10
Клавиатура в замену джостику


2-1258621753
antonsha
2009-11-19 12:09
2010.01.10
TreeView


15-1256804778
@!!ex
2009-10-29 11:26
2010.01.10
Нужен веб дизайнер.


15-1257370212
Юрий
2009-11-05 00:30
2010.01.10
С днем рождения ! 5 ноября 2009 четверг