Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизПишу свой класс. Прошу рекомендации, замечания Найти похожие ветки
← →
saNat © (2005-01-23 17:18) [0]Доброго времени суток.
В моем проекте требуется работа с Excel"ом. Поэтому решил написать класс для работы с ним. В связи с малым опытом, прошу помочь в разработке.
Предполагается создание одельного компонента. Пока для удобства отладки реализую в отдельном модуле. Ниже представлен код конструктора, деструктора и свойства, указывающие создан объетк или нет и видимость окна Excel.
//Компонент для работы с Excel
Unit ExcelUnit;
Interface
Uses
Classes,ComObj;
Type
//Объявление класса
TEVAExcel=Class(TObject)
Public
Private
//Поле связи с объектом
This:Variant;
//Поле результата создания экземпляра
fEnabled:Boolean;
//Поле видимости экземпляра
fVisible:Boolean;
//Метод чтения результата создания экземпляра
Function GetEnabled:Boolean;
//Метод чтения видимости экземпляра
Function GetVisible:Boolean;
//Метод записи видимости экземпляра
Procedure SetVisible(Param:Boolean);
Published
//Свойство результата создания объекта
Property Enabled:Boolean
Read GetEnabled
Default False;
//Свойство видимости объекта
Property Visible:Boolean
Read GetVisible
Write SetVisible
Default False;
//Конструктор
Constructor Create;
//Деструктор
Procedure Free;
End;
Implementation
Constructor TEVAExcel.Create;
Begin
Inherited;
fEnabled:=True;
Try
This:=CreateOleObject("Excel.Application");
Except
fEnabled:=False;
End;
End;
Function TEVAExcel.GetEnabled:Boolean;
Begin
Result:=fEnabled;
End;
Function TEVAExcel.GetVisible:Boolean;
Begin
Result:=fVisible;
End;
Procedure TEVAExcel.SetVisible(Param:Boolean);
Begin
fVisible:=Param;
Try
This.Visible:=Param;
Except
fVisible:=Not Param;
End;
End;
Procedure TEVAExcel.Free;
Begin
fEnabled:=False;
Try
This.Quit;
Except
fEnabled:=True;
End;
Inherited;
End;
End.
С уважением, ЕВА
← →
GanibalLector © (2005-01-23 17:53) [1]А чем стандартный не устраивает?
Уже б писал наследника от него(от стандартного т.е.)
← →
saNat © (2005-01-23 18:08) [2]А какой стандартный?
Продолжая свою канитель. Дописал методы добавления/удаления книг и листов.//Êîìïîíåíò äëÿ ðàáîòû ñ Excel
Unit ExcelUnit;
Interface
Uses
Classes,ComObj;
Type
//Îáúÿâëåíèå êëàññà
TEVAExcel=Class(TObject)
Public
Private
//Ïîëå ñâÿçè ñ îáúåêòîì
This:Variant;
//Ïîëå ðåçóëüòàòà ñîçäàíèÿ ýêçåìïëÿðà
fEnabled:Boolean;
//Ïîëå âèäèìîñòè ýêçåìïëÿðà
fVisible:Boolean;
//Ìåòîä ÷òåíèÿ ðåçóëüòàòà ñîçäàíèÿ ýêçåìïëÿðà
Function GetEnabled:Boolean;
//Ìåòîä ÷òåíèÿ âèäèìîñòè ýêçåìïëÿðà
Function GetVisible:Boolean;
//Ìåòîä çàïèñè âèäèìîñòè ýêçåìïëÿðà
Procedure SetVisible(Param:Boolean);
Published
//Ñâîéñòâî ðåçóëüòàòà ñîçäàíèÿ îáúåêòà
Property Enabled:Boolean
Read GetEnabled
Default False;
//Ñâîéñòâî âèäèìîñòè îáúåêòà
Property Visible:Boolean
Read GetVisible
Write SetVisible
Default False;
//Êîíñòðóêòîð
Constructor Create;
//Äîáàâèòü êíèãó
Function AddBook:Boolean;
//Óäàëèòü êíèãó
Function FreeBook:Boolean;
//Äîáàâèòü ëèñò
Function AddPage(Name:String):Boolean;
//Óäàëèòü ëèñò
Function FreePage(Number:Variant):Boolean;
//Äåñòðóêòîð
Procedure Free;
End;
Implementation
Constructor TEVAExcel.Create;
Begin
Inherited;
fEnabled:=True;
Try
This:=CreateOleObject("Excel.Application");
Except
fEnabled:=False;
End;
End;
Function TEVAExcel.GetEnabled:Boolean;
Begin
Result:=fEnabled;
End;
Function TEVAExcel.GetVisible:Boolean;
Begin
Result:=fVisible;
End;
Procedure TEVAExcel.SetVisible(Param:Boolean);
Begin
fVisible:=Param;
Try
This.Visible:=Param;
Except
fVisible:=Not Param;
End;
End;
Function TEVAExcel.AddBook:Boolean;
Begin
Result:=True;
Try
This.WorkBooks.Add;
Except
Result:=False;
End;
End;
Function TEVAExcel.FreeBook:Boolean;
Begin
Result:=True;
Try
This.ActiveWorkBook.Close;
Except
Result:=False;
End;
End;
Function TEVAExcel.AddPage(Name:String):Boolean;
Begin
Result:=True;
Try
This.Sheets.Add;
This.ActiveSheet.Name:=Name;
Except
Result:=False;
End;
End;
Function TEVAExcel.FreePage(Number:Variant):Boolean;
Begin
Result:=True;
Try
This.DisplayAlerts:=False;
This.Sheets[Number].Delete;
This.DisplayAlerts:=True;
Except
Result:=False;
End;
End;
Procedure TEVAExcel.Free;
Begin
fEnabled:=False;
Try
This.Quit;
Except
fEnabled:=True;
End;
Inherited;
End;
End.
Кстати, возник вопрос. У меня объявлено свойство, например список имен книг. Как сделать чтобы этот список отображался в инспекторе объектов?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c