Главная страница
    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.48 MB
Время: 0.004 c
3-1175777778
root
2007-04-05 16:56
2007.07.01
COM и MIDAS вызов события на стороне клиента?????????


2-1181030795
авыф
2007-06-05 12:06
2007.07.01
потоки


3-1175776852
~F@ntom~
2007-04-05 16:40
2007.07.01
Обнуление счетчика..


3-1175689951
Ega23
2007-04-04 16:32
2007.07.01
Посмотреть связи по таблице


3-1175833182
Xmen
2007-04-06 08:19
2007.07.01
Некоторые вопросы по FastReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский