Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где ошибка? [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-файл.


Наверх

Титульная страница Поиск, карта сайта Написать письмо