Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
2-1258455286
cxGrid
2009-11-17 13:54
2010.01.10
не могу раскрасить строки cxGrid


15-1257526923
Avant Browsr
2009-11-06 20:02
2010.01.10
Где хранятся "Избранное" и "Журнал"?


15-1256567711
savva
2009-10-26 17:35
2010.01.10
К обладателям клиента форумного..


3-1233121999
Merry
2009-01-28 08:53
2010.01.10
Запрос из 2 таблиц


2-1258407251
котэ
2009-11-17 00:34
2010.01.10
Рисование на окне полноэкранного приложения




   Наверх