Как определить тип объекта (Делфи)

Автор mkrz, 17.11.06, 07:44:50

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mkrz

В FAQ SDK описан пример:
Для получения типа 2D объектов используется функция GetObjParam. В нее нужно передать reference найденного объекта. Нужно также передать нулевой указатель на структуру параметров и size == 0.
Пример
int type = GetObjParam( obj, 0, 0, ALLPARAM );

В Делфи такой номер не проходит:
type_obj := doc.ksGetObjParam( obj, 0, ALLPARAM );

Подскажите как узнать на какой объект (отрезок, дуга и т. д.) указывает итератор при переборе всех объектов?

Заранее благодарен.

Bordes

Вот так, например:

reference refObj=MoveIterator(it, 'F');

int Type=GetObjParam(refObj,0,0,0);

switch(Type)
   {
   case LINESEG_OBJ:   ***   break;
   case ARC_OBJ:      *** break;
   case CONTOUR_OBJ: *** break;
   case BEZIER_OBJ: *** break;
   case NURBS_OBJ:  *** break;
   case ELLIPSE_ARC_OBJ: *** break;
   default: *** break;
   }

mkrz

В Си конечно так:
int Type=GetObjParam(refObj,0,0,0);

а в Паскале (под Делфи)
type_obj := doc.ksGetObjParam( obj, 0, ALLPARAM );
второй нолик (нулевой указатель на структуру параметров) не проходит!

Может есть еще соображения?

Bordes

Цитата: mkrz от 20.11.06, 13:50:37
...
Может есть еще соображения?

есть цитата из файла \SDK\Pascal\Delphi\step5\step55.pas

    pObj := FindObj( x, y, ksGetCursorLimit() );
    if ( ExistObj(pObj) > 0  ) then              // Если объект найден
    begin

      _type := GetObjParam( pObj, nil, 0, 0 );   // Узнаем тип объекта
      if ( _type = TOLERANCE_OBJ ) then          // Если найденный объект допуск формы

Bordes

И ещё из \SDK\Pascal\Delphi\gayka1\base.pas

   // Если объект найден проверяем - является ли он линией выноски
    if ( newPosLeater <> 0) and ( GetObjParam(newPosLeater, nil, 0, ALLPARAM) <> POSLEADER_OBJ )  then
      newPosLeater := 0;                        // Найденный объект не линия выноски


mkrz

Спасибо Bordes. Все получилось. Кстати где ты проживаешь? Есть подозрения что мы земляки. Я из Магнитогорска