Перейти к содержанию
Fire Monkey от А до Я

BurcevD

Пользователи
  • Постов

    29
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные BurcevD

  1. Добрый день,

    подскажите пожалуйста: имеется тестовое приложение, которое нормально компилируется под windows, android и IOS simulator (SDK 6.1).

    При попытке компиляции на устройство iPad 2 высвечивается следующая ошибка

     

    [DCC Error] E2597 ld: file not found: /System/Library/Frameworks/MapKit.framework/MapKit

     

    P.S. использую MacBook с Mac OS X версии 10.7.5 (выше не обновляется)

    XCode - 4.6.3 (выше не ставится из-за версии OS)

    максимальный SDK 6.1 (6.3 - ставил, но он глючил)

     

    Я думаю, что скорее всего дело в версии SDK, но как поставить выше не имею понятия, т.к. в работе использовал только OS "Window".

     

    Что делать?

  2. пример рабочего сервера, я конечно не смогу скинуть, но pawel glowacki отличную серию сделал в свое время

    http://www.embarcadero.com/rad-in-action/delphi-labs

    спасибо за ссылку

    А подскажите, если у вас в качестве свойства объект, он тоже серилизуется в строку или создается в момент обращения к нужному свойству?

  3. Спасибо за ответ,

    а можно Вас попросить скинуть пример реализации. К моему стыду я так и не разобрался как практически работает DataSnap, немного теории знаю, но вот углублено не изучал, буду рад, если дадите пару ссылок на эту тему

  4. Добрый день,
    Подскажите пожалуйста найти решение следующей задачи:
    Хотелось бы реализовать технологию объектно-ориентированной БД + использование трехзвенной архитектуры.
    1 Часть более-менее реализована, если кратко, то имеется базовый класс объекта, который при наследовании меняется под нужный  класс с указанием имени таблицы, а также списка полей (в области published). Этот объект умеет создавать новую запись в таблице, считывать имеющуюся (по уникальному ключевому полю), производить редактирование и удаление записи.
     
    Хотелось бы узнать существует ли технология, при которой эти объекты будут создаваться (считываться) на сервере приложений, а конечному приложению будет передаваться сам объект? А также каким способом лучше реализовать свойства, которые будут возвращать в качестве результата другие объекты, т.е.
    имеется два объекта Человек, и Подразделение. В объекте Человек имеются свойства (ФИО = Иванов И.И., Возраст = 21, Код подразделения = 2) и есть объект Подразделение №2 (Код подразделения = 2, Наименование подразделения = Администрация), хотелось бы иметь что-то вроде
     
    property Podrazdelenie: TPodrazdelenie read GetPodrazdelenie;
    ...
    function <Tsome>.GetPodrazdelenie : TPodrazdelenie;
    begin
      Result := TPodrazdelenie.Create(Код подразделения);
    end;
    Естественно, что все объекты будут считываться из сервера приложений.
  5. Уважаемые разработчики!

    Хочу обратить Ваше внимание на следующие коды, 

    в модуле FMX.ListView.Types

     

    строка 1530

      if ImageSource = TImageSource.ImageList then
        Bitmap := Images.Bitmap(TSizeF(TPointF(FLocalRect.Size) * Canvas.Scale), FImageIndex)
      else
        Bitmap := GetBitmap;
    ... далее текст работы с Bitmap

    В то же время ImageSource может иметь 3 значения: 

    1481 строка

    function TListItemImage.GetImageSource: TImageSource;
    begin
      if (FImageIndex <> -1) and (Images <> nil) and Images.BitmapExists(ImageIndex) then
        FImageSource := TImageSource.ImageList
      else if GetBitmap <> nil then
        FImageSource := TImageSource.Bitmap
      else
        FImageSource := TImageSource.None;
      Result := FImageSource;
    end;
    

    И если Bitmap из прошлого кода равен nil, то происходит ошибка. 

    Следует либо обработать третьего состояния либо обработать bitmap на nil.

     

    Спасибо

     

  6. Нашел описания поведения приложения в iOS. Все дело в том, что в реальности на iPad приложение не завершается, а переходит в спящий режим. Поэтому как такого закрытия приложения нет, его можно завершить ТОЛЬКО АВАРИЙНО.

  7. Сделал такую функцию

     

    function TempPath : String;
    begin
      {$IFDEF IOS}
      Result := TPath.GetLibraryPath+TPath.DirectorySeparatorChar;
      {$ELSE}
      Result := TPath.GetPublicPath+TPath.DirectorySeparatorChar;
      {$ENDIF}
    end;

    ну и соответственно прибавляю имя файла + расширение, т.е TempPath+<SomeName>+'.'+<Ext>

  8. Добрый день, ситуация такая: есть БД, в которой хранятся различные файлы, с расширением. Требуется открыть файлы в соответствующей программе (т.е. изображения в галлереи, PDF - соответствующей программой и т.д.). файлы качаются нормально, но не выполняются, что может быть?

    Помогите плиз, 

    procedure ExecuteFile(aFileName: String);
    var
      ExtFile   : string;
      {$IFDEF ANDROID}
      mime      : JMimeTypeMap;
      ExtToMime : JString;
      Intent    : JIntent;
      {$ENDIF}
      {$IFDEF IOS}
      URL       : NSURL;
      {$ENDIF}
    begin
      ExtFile := LowerCase(Copy(ExtractFileExt(aFileName), 2, Length(aFileName)));
      {$IFDEF ANDROID}
      mime := TJMimeTypeMap.JavaClass.getSingleton();
      ExtToMime := mime.getMimeTypeFromExtension(StringToJString(ExtFile));
      if ExtToMime <> nil then
      begin
        Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
        Intent.setDataAndType(StrToJURI('file:' + aFileName), ExtToMime);
        try
          SharedActivity.startActivity(Intent);
        except
          ShowError('Невозможно отобразить файл');
        end;
      end;
      {$ELSEIF MSWINDOWS}
          ShellExecute(Application.Handle, 'open', PWideChar(aFileName), nil, nil, 0);
      {$ELSE}
      url := TNSURL.Wrap(TNSURL.OCClass.URLWithString(StrToNSStr(aFileName)));
    
      if SharedApplication.canOpenURL(Url) then
        SharedApplication.openURL(url)
      else
        ShowError('Невозможно отобразить файл');
      {$ENDIF}
    end;
    
  9. Хм, как сказать: если писать внаглую Application.Terminate, то Delphi возвращает ошибку, что "Нет такой возможности", пробовал использовать стандартные действия (из ActionList) Файл-Выход, Скрыть приложение - Не знаю почему, но не работает. Пытался и метод Execute и ExecuteTarget вызвать.

  10. Вячеслав, попробую как вы советовали, но я хочу следующее:

    У меня форма имеет TListView с древовидной информацией, и при нажатии на элемент происходит процедура раскрытие следующего уровня (практически TreeList только на основе TListView), и есть необходимость с помощью жестов выполнять разные операции, например, жест влево - вызов панели фильтрации, жест сверху вниз - вызов меню и т.д. Но если назначить жесты на TListView то происходит одновременно и раскрытие (что не нужно выполнять) и события обработки жеста. Вот хотелось бы разделить, чтобы при выполнении жеста прерывало все остальные события (нажатие элемента).

  11. Уважаемые разработчики,

    собственно сам вопрос в теме: Как отличить жест и событие OnItemClickEx в компоненте TListView, т.е. если добавить TGestureManager и сделать слайд влево или вправо

    при выполнении жеста происходит и нажатие и событие жеста , причем событие несколько раз.

    Как бы сделать обработку на окончание жеста и отдельно обработку события OnItemClickEx.

  12. Копался, копался так ничего и не получилось, в итоге сделал как предложил ruslan (пост 4) но со своими доработками, если кому интересно

    на создание объекта и на событие OnUpdatingObjects (на TListView) сделал

       aItem.Height := Round(CalculateTextHeight(aItem.Text, aItem.Objects.TextObject.Width, 36, 130, aItem.Objects.TextObject.Font))+4;
    
    aItem - TListViewItem - элемент списка из TListView
     
    сама функция вот
    function CalculateTextHeight(aText: String; aWidth: Single; aMinHeight: Single = 0; aMaxHeight: Integer = 0; aFont: TFont) : Single;
    begin
      FTextLayout.BeginUpdate;
      try
        FTextLayout.Text := aText;
        FTextLayout.MaxSize := TPointF.Create(aWidth, 1000);
        FTextLayout.WordWrap := True;
        FTextLayout.Font.Assign(aFont);
        FTextLayout.HorizontalAlign := FMX.Types.TTextAlign.Leading;
        FTextLayout.VerticalAlign := FMX.Types.TTextAlign.Leading;
      finally
        FTextLayout.EndUpdate;
      end;
      Result := FTextLayout.Height;
      if aMinHeight>0 then
        if Result < aMinHeight then
          Result := aMinHeight;
      if aMaxHeight>0 then
        if Result > aMaxHeight then
          Result := aMaxHeight;
    end;

    Параметры

    aText - текст, который там отображен,

    aWidth - ширина текстового объекта,

    aMinHeight - минимально возможная высота (0 - если не нужно ограничение)

    aMaxHeight - максимально возможная высота (0- если не нужно ограничение)

    aFont - шрифт, используемый объектом

     

    Сразу скажу, чтоб не говорили, что плагиатор, да основная часть и идея функции взята с этого форума.

    P.S.Прибавил 4 пикселя, для того, чтобы рамка поместилась

     

  13. Уважаемые разработчики, скажите пожалуйста, а будет ли у компонента свойство Max?

    А то получается с левой стороны проценты, а с правой те же самые проценты, только в количественном эквиваленте.

     

    Поясню:

    Если бы было например максимальное значение 200, а текущее положение 150, то слева было бы написано 75%, а с правой стороны 150/200. 

    Сейчас такого установить невозможно.

  14. Вы бы сами нашли ответ на свой вопрос если бы запустили VirtualKeyboardDemo на устройстве ;)

    Запустил на Android устройстве, не заметил разницы в виртуальной клавиатуре. может просто проглядел? подскажите куда глянуть?

×
×
  • Создать...