![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите дописать компонент [D4, D5, D6, Win95/98, NT4]
Ferrarium © (2002-05-13 15:32:00)В компоненте есть код для работы со сторонним компонентом (не входящим в стандартную оставку). Как надо написать код чтобы если компонент установлен код относящийся к нему компилировался, а если нет, то нет.
пример:
function DataSet_Open(DataSet:TDataSet):boolean;
begin
// как выкинуть этот код прикомпиляции компонента если
// не установлен TOraQuery
if DataSet is TOraQuery
then
begin
Result:=(DataSet as TOraQuery).Opening;
Exit;
end;
if DataSet is TQuery
then Result:=(DataSet as TQuery).Open
else Result:=DataSet.Open;
end;
Игорь Шевченко (2002-05-13 16:57:00) [1]День добрый,
Использовать не IS и AS а подобные им функции по имени класса,
например, аналог IS
function HSClassBasedOn (Value: TClass; const Name : String) : Boolean;
begin
Result := false;
while Value <> nil do begin
if SameText(Value.ClassName, Name) then begin
Result := true;
Exit;
end;
Value := Value.ClassParent;
end;
end;
if HSClassBasedOn(DataSet, "TOraQuery") then
...
После это выбираете (опять же, по имени) адрес метода Opening,
выполняете его и вуаля!
С уважением,