Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

Проблема с синтаксисом.... :-((((   Найти похожие ветки 

 
Neket   (2007-06-06 08:53) [0]

Подскажите как правельно использовать "with" ?
Делаю так:

XLApp:= CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Add();
with XL.Sheets[2].Range["A2:AE2"] do
                           begin
                           .Font.Name:="Arial Cyr";
                           .Font.Size:=16;
                           .Font.Bold:=true;
                           .HorizontalAlignment:=3;
                         end;

Вылетает отшибка "Record, object or class type required".
При этом, если делвю так:

XLApp:= CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Add();
XL.Sheets[2].Range["A2:AE2"].Font.Name:="Arial Cyr";
XL.Sheets[2].Range["A2:AE2"].Font.Size:=10;
XL.Sheets[2].Range["A2:AE2"].Font.Bold:=true;
XL.Sheets[2].Range["A2:AE2"].HorizontalAlignment:=3;


то все нормально.


 
MBo ©   (2007-06-06 08:55) [1]

begin
 .Font

зачем точки-то поставил?


 
Neket   (2007-06-06 08:55) [2]

Ды без разницы...

XLApp:= CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Add();
with XL.Sheets[2].Range["A2:AE2"] do
                          begin
                          Font.Name:="Arial Cyr";
                          Font.Size:=16;
                          Font.Bold:=true;
                          HorizontalAlignment:=3;
                        end;

Тоже самое.


 
Neket   (2007-06-06 08:57) [3]

Компилятор ругается на
with XL.Sheets[2].Range["A2:AE2"] do


 
MBo ©   (2007-06-06 09:01) [4]

и правда.

для позднего связывания компилятор не может такое сделать.


 
Neket   (2007-06-06 09:05) [5]

Т.е. Придется делать так? :-(

XLApp:= CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Add();
XL.Sheets[2].Range["A2:AE2"].Font.Name:="Arial Cyr";
XL.Sheets[2].Range["A2:AE2"].Font.Size:=10;
XL.Sheets[2].Range["A2:AE2"].Font.Bold:=true;
XL.Sheets[2].Range["A2:AE2"].HorizontalAlignment:=3;


Просто когда приходиться задавать большое колличество параметров для ячеек, код увелличивается... А соответственно и рамер проги.


 
sniknik ©   (2007-06-06 09:07) [6]

> Record, object or class type required
требуется запись, обьект или класс.

а кокого типа у тебя XLApp или XL.Sheets[2].Range["A2:AE2"]? догадываюсь что вариант (ole...).

хочеш писать с with, работай с библиотекой типов (см. импорт type library), иначе откуда компилятору знать к чему относится обращения внутри with если это определяется только на этапе выполнения...


 
Сергей М. ©   (2007-06-06 09:07) [7]


> Neket   (06.06.07 08:57) [3]


И правильно ругается.

Оператор with неприменим для OleVariant-типа.


 
sniknik ©   (2007-06-06 09:11) [8]

> Т.е. Придется делать так? :-(
лучше предварительно присвоить "ранж" переменной ->
Rg:= XL.Sheets[2].Range["A2:AE2"];
Rg.Font.Name:="Arial Cyr";
Rg.Font.Size:=10;
Rg.Font.Bold:=true;
Rg.HorizontalAlignment:=3;
и код короче и длинные переходы по вариантам уберешь.


 
Neket   (2007-06-06 09:12) [9]


> Сергей М. ©   (06.06.07 09:07) [7]
>
> > Neket   (06.06.07 08:57) [3]
>
>
> И правильно ругается.
>
> Оператор with неприменим для OleVariant-типа.


Даа но насколько я понимаю и для Variant-типа  тоже?


 
Сергей М. ©   (2007-06-06 09:19) [10]


> и для Variant-типа  тоже?


Разумеется !


 
Neket   (2007-06-06 09:21) [11]

Жаль
:-((((


 
Сергей М. ©   (2007-06-06 09:24) [12]


> Neket   (06.06.07 09:21) [11]


Что мешает бросить на форму компонент TExcelApplication и работать с Excel с использованием библ-ки типов ?


 
Neket   (2007-06-06 09:34) [13]


> Сергей М. ©   (06.06.07 09:24) [12]
>
> > Neket   (06.06.07 09:21) [11]
>
>
> Что мешает бросить на форму компонент TExcelApplication
> и работать с Excel с использованием библ-ки типов ?


Опыт... а точнее его отсутствие ;-)
Вот еслиб было где почитать про использование этого компонента.


 
Сергей М. ©   (2007-06-06 09:53) [14]


> Вот еслиб было где почитать про использование этого компонента


Здесь

http://www.google.ru/search?q=Delphi+TExcelApplication&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a

был ?


 
clickmaker ©   (2007-06-06 10:24) [15]


> [13] Neket   (06.06.07 09:34)

хм... а работать вслепую через variant проще что-ли? когда для ExcelApplication хотя бы юниты есть со списком методов


 
Amoeba ©   (2007-06-06 10:48) [16]

Можно почитать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=249


 
Anatoly Podgoretsky ©   (2007-06-06 11:36) [17]


> Вот еслиб было где почитать про использование этого компонента.

А чего там читать то, пара свойств, остальное одинаково



Страницы: 1 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
11-1164218894
Psychedelic
2006-11-22 21:08
2007.07.01
Когда уже пофиксят этот баг с Group box om?


3-1175600650
natasha13
2007-04-03 15:44
2007.07.01
Изменение данных в Query


15-1180793705
@!!ex_
2007-06-02 18:15
2007.07.01
Вопрос про динамические массивы и указатели.


15-1180613756
Desdechado
2007-05-31 16:15
2007.07.01
gmail у кого-нибудь работает?


1-1177341573
Nucer
2007-04-23 19:19
2007.07.01
Автопрокрутка в TRichEdit