Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Линии в Excel, поиск и добавление линии 
V
    Опции темы
Foley
Дата 27.2.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: нет
Всего: 7



Как найти нарисованную линию в Excel и ее позицию и длину(или создать)?(не границы ячейки)
PM MAIL ICQ   Вверх
YurikGL
Дата 3.3.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 5.7.2005
Где: Уфа

Репутация: 2
Всего: 2



нужно пройтись по коллекции
ActiveSheet.Shapes...

Подробности можно посмотреть здесь http://forum.vingrad.ru/index.php?showtopic=84634
--------------------
 
PM MAIL WWW ICQ   Вверх
Foley
Дата 4.3.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: нет
Всего: 7



Статью я эту читал. Можно примерчик?
PM MAIL ICQ   Вверх
Albinos_x
Дата 5.3.2006, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



добавить элемент коллекции просто, принцип такой же как в ворде (см. статью по указанной ссылке). покажу несколько примеров:
нарисовать линию:
Код
...
ExcelWorksheet1.Shapes.AddLine(70,150,120,160);
...

первые два параметра X,Y начала линии вторые два - конца.
нарисовать прямоугольник:
Код
...
ExcelWorksheet1.Shapes.AddShape(1,100,150,200,350);
...

второй и третий параметры - X,Y левого верхнего угла прямоугольника, следом два - правого нижнего.
первый параметр тип элемента коллекции:
1 - прямоугольник
2 - парралелограм
3 - трапеция
4 - ромб
5 - скруглённый прямоугольник
6 - восьмиугольник
и т.д.... можно посмотреть порядок открыв Excel - автофигуры - основные фигуры

все эти функции возращают элемент типа Shape, т.е. можно сделать так:
Код
...
var Sh:Shape;
begin
Sh:=ExcelWorksheet1.Shapes.AddLine(70,150,120,160);
// далее работаем с Sh
// допустим
Sh.Name:='MyLine'
...

тоже можно проделать и с OleVariant:
Код
...
var Sh:OleVariant;
begin
Sh:=ExcelWorksheet1.Shapes.AddLine(70,150,120,160);
// далее работаем с Sh
// допустим
Sh.Name:='MyLine'
...



Принцип же работы с элементами коллекции, также такой же как ворде (ещё немного похож на работу с таблицами в ворде).... т.е. сначало узнаём общее количество элементов коллекции на листе:
Код

var col:integer;
...
begin
col:=ExcelWorksheet1.Shapes.Count;

далее если они имеются, т.е. col<>0 выполняем нужные операции:
Код

var col:integer;
     i:integer
...
...
col:=ExcelWorksheet1.Shapes.Count;
if col<>0 then
   begin
   // перебираем коллекцию
   for i:=1 to col do
      begin
      // проверяем наша линия ли и вообще линия ли
      if ExcelWorksheet1.Shapes.Item(i).Name='Line 2' then
          begin
          // выполняем необходимые операции
          // выставляем позицию слева
          ExcelWorksheet1.Shapes.Item(i).Left:=158.25;  // по аналогии и с другими параметрами
          end;      
      end;
   end;
...

линия возращает name = Line через пробел идёт номер по порядку создания элементов коллекции, т.е. если первый прямоугольник, то у него будет имя = Rectangle 1, имя линии идущей следом будет = Line 2. Это если имена по умолчанию, т.к. имя можно и задать:
Код
...
ExcelWorksheet1.Shapes.Item(1).Name:='55555' ;
...

если хотим параметры выставлять в сантименрах, то это делается по аналогии с вордом:
Код
...
// позиция слева 2,5 см
ExcelWorksheet1.Shapes.Item(1).Left:=ExcelApplication1.CentimetersToPoints(2.5);
...



PS: то что здесь я написал, добавлено в статью по указанной ссылке

Это сообщение отредактировал(а) Albinos_x - 5.3.2006, 07:21


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Foley
Дата 6.3.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: нет
Всего: 7



Albinos_x ну с меня тебе + горит, как тока власть появиться сразу отблагодарю 8оD...
PM MAIL ICQ   Вверх
Albinos_x
Дата 6.3.2006, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



smile smile smile


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

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


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.1845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.