Форум: "Начинающим";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];
ВнизВозможно ли запустить метод класса при создании класса? Найти похожие ветки
← →
Сергей (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c