Главная страница
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.012 c
10-1162211576
Max Ivanych
2006-10-30 15:32
2010.01.10
Защита диапазона ячеек в Excel


2-1258473755
6699
2009-11-17 19:02
2010.01.10
Файлы


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


6-1211445506
laao
2008-05-22 12:38
2010.01.10
вопросы по организации OpenSSL для Indy HTTP-сервера


4-1226515228
АгатаКристи
2008-11-12 21:40
2010.01.10
Настройка TCP/IP