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

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

Проблема с синтаксисом.... :-(((( [D7]


Neket ©   (2007-06-06 08:53:00) 

Подскажите как правельно использовать "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;


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


Anatoly Podgoretsky   (2007-06-06 11:36:00) [1]


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

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


Amoeba   (2007-06-06 10:48:00) [2]

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


clickmaker   (2007-06-06 10:24:00) [3]


> [13] Neket   (06.06.07 09:34)

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


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


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


Здесь

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

был ?


Neket   (2007-06-06 09:34:00) [5]


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


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


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


> Neket   (06.06.07 09:21) [11]


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


Neket   (2007-06-06 09:21:00) [7]

Жаль
:-((((


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


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


Разумеется !


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


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


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


sniknik   (2007-06-06 09:11:00) [10]

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


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


> Neket   (06.06.07 08:57) [3]


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

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


sniknik   (2007-06-06 09:07:00) [12]

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

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

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


Neket   (2007-06-06 09:05:00) [13]

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

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 09:01:00) [14]

и правда.

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


Neket   (2007-06-06 08:57:00) [15]

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


MBo   (2007-06-06 08:55:00) [16]

begin
 .Font

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


Neket   (2007-06-06 08:55:00) [17]

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

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;

Тоже самое.


Наверх

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