Главная страница
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
2-1258544549
Oleg1963
2009-11-18 14:42
2010.01.10
Ищу родителей. Использование GetParent.


1-1232544933
bartalbi
2009-01-21 16:35
2010.01.10
Выезжающие панели


15-1257433390
test
2009-11-05 18:03
2010.01.10
Lazarus + Excel


2-1258031503
kyn66
2009-11-12 16:11
2010.01.10
Строку в объект


6-1210789618
EgorovAlex
2008-05-14 22:26
2010.01.10
При сканировании определённого сегмента сети я нахожу адреса,