Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.004 c
2-1181246808
koha
2007-06-08 00:06
2007.07.01
Как узнать сколько раз процесс подключался к процессору?


2-1181312681
ЮРЕЦ
2007-06-08 18:24
2007.07.01
image и paintbox


1-1178165959
Novice
2007-05-03 08:19
2007.07.01
Скорость TCheckListBox


2-1181221488
Magedon
2007-06-07 17:04
2007.07.01
Регистрация DLL


2-1181363908
Стул
2007-06-09 08:38
2007.07.01
MS Word. Как с ним работать?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский