![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где ошибка? [D5, Win2k]
QWest © (2002-04-02 17:49:00)Короче, братва, помогите найти ошибку. Задача: нужно чтобы при нажатии кнопки открывалась уже ранее созданная книга Excel.Я где - то выкопал такой код:
procedure TForm1.Button2Click(Sender: TObject);
var
Workbook: OLEVariant;
Excel: Excel97.TExcelApplication;
begin
Workbook := Excel.WorkBooks.Open("C:\BD_Excel.xls");
end;
Час уже с ним бьюсь,ничего не могу сним сделать.Кто знает в чем дело, или может предложить другой способ очень прошу помочь.
Digitman (2002-04-03 18:49:00) [1]>QWest
Уймись и не шуми.
Не "вопил чета типа", а - приведи дословно сообщение, которое получаешь при попытке скомпилировать (или выполнить все же ?) этот код
QWest (2002-04-03 16:42:00) [2]Ауууууу!!!!Вы где, блин, все??!!!
QWest (2002-04-03 16:14:00) [3]Уавжаемые,попробовал я было сунуться с нижним кодом, дак меня комп так обложил, что я с ним чуть было не подрался.Короче вопил чета типа: Variant не является отдельным объектом, вообщем бред какой-то... Сам я в этом деле мало смыслю, т. к. в Делфях только 10 дней провел (и то не полных), так что приму любую помощь и предложения по указанному выше вопросу.Заранее благодарен...
QWest (2002-04-03 16:02:00) [4]Я тут отлучился.Ооо! Да тут мне ответов понаписали.Спасибо olookin"у за помощь, сейчас попробую этот код.
olookin (2002-04-02 18:03:00) [5]А вообще то надо делать, видимо, так:
var ExcelApplication: Variant;
ExcelApplication:=CreateOleObject("Excel.Application");
ExcelApplication.Application.Workbooks.Open("C:1.xls");
а после работы
ExcelApplication.Quit; ExcelApplication:=0;
olookin (2002-04-02 17:55:00) [6]Можно так (хоть и не очень, но зато без Variantов):
var disks: array [0..5] of Char = ("A","B","C","D","E","F");
var c,d,dr: array [0..255] of Char;
i: integer;
s: string;
s:="C:\1.xls"; StrPCopy(c,s);
for i:=0 to Length(disks)-1 do begin
s:=disks[i]+":\Program Files\Microsoft Office\Office\Excel.exe";
if FileExists(s) then begin StrPCopy(d,s);
s:=disks[i]+":\Program Files\Microsoft Office\Office\"; StrPCopy(dr,s);
ShellExecute(ModelWindow.handle,"open",d,c,dr,SW_RESTORE); break; end; end;
Все это делает открывает ранее сохраненный Excel-файл.