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

enatechno

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

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

  • Посещение

  • Победитель дней

    26

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

  1. 34 минуты назад, wamaco сказал:

    Было бы очень хорошо добавить поиск! 

     

    В 13.11.2017 в 15:59, OnePeople сказал:

    Так он же есть, там где отображается название выбранной категории это поле поиска)

    Если уже второй человек не нашел его, значит лучше явно добавить значок "лупа" рядом с "облаком" или кнопку "Найти" рядом с "Новинки"

  2. 1 час назад, Павел Караваев сказал:

    for i := 0 to m-1 do
      for j := 0 to n-1 do

    У Вас перепутаны строки и столбцы. Нужно или так:
     

      for i := 0 to n-1 do
        for j := 0 to m-1 do

    Или же так:  

    SG.Cells[i,j]:=inttostr(ImMas[i,j]);

    TStringGrid:  property Cells[const ACol, ARow: Integer]

     

    TestSGDraw.zip

  3. Похоже на отсутствие прав чтения /записи в Андроиде.
    Проверьте : Project - Options - Uses Permission - Read external storage (Write external storage)

    P.S. Когда задаете вопрос, указывайте версию RAD, версию Android и устройство на котором тестируете

  4. 2 часа назад, Kitty сказал:

    .. ExtractFilePath(ParamStr(0)) ...

    Думаю, для Windows предпочтительнее использовать GetDocumentsPath(), т.к.:
    1). как правило, exe-файл лежит в папке находящейся в Program Files и для записи ini-файла рядом с exe понадобятся права администратора;
    2). если работа ведется с разных рабочих столов, то каждый пользователь сможет иметь индивидуальные настройки, хранящиеся в ini-файле

  5. В 23.10.2017 в 16:51, gonzales сказал:

    Если активировать SplashForm.Show - в винде приложение валится.

    Цитирую Виталия из этой темы:

    Application.CreateForm(TfrmDM, frmDM);

    То это не означает, что форма или модуль будут созданы в в момент исполнения этого вызова <...>  Реальное создание форм произойдет при выполнении Application.Run. 

    Там же есть пример реализации сплеша с прогрессбаром. 

  6. 17 часов назад, andahay сказал:

    Теперь ругается на последнюю строчку ([DCC Error] Unit1.pas(1151): E2003 Undeclared identifier: 'TAndroidHelper')

    Если не ошибаюсь, TAndroidHelper появился в Androidapi.Helpers позже XE7. До его появления использовался такой способ открытия URL:

     

    function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;
    var
      Intent: JIntent;
    begin
      Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
        TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(URL))));
      try
        SharedActivity.startActivity(Intent);
        exit(true);
      except
        on e: Exception do
        begin
          if DisplayError then ShowMessage('Error: ' + e.Message);
          exit(false);
        end;
      end;
    end;

     

  7. По умолчанию в DynamicAppearance есть только один объект - Text. Соответственно, из кода вы должны убрать все упоминания AItem.Objects.TextObject, AItem.Objects.AccessoryObject и изменить заполнение текста в ListViewItem (например так):

         for Item in [1..10] do
           ListView1.Items.Add.Data['Text1']:= Format('Regular item %d.%d', [Group, Item]);

    Как добавить свои объекты в LIstViewItem читайте Using the DynamicAppearance Value или смотрите видео.
     

  8. В п.3 Вы добавляете ListViewItem с Purpose := TListItemPurpose.Header. У него Objects.AccessoryObject = nil и приложение падает в TForm1.ListView1UpdateObjects.
    Могу предложить такою правку:
     

    procedure TForm1.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem);
    begin
       if AItem.Purpose <> TListItemPurpose.Header then // проверка назначения айтема
       begin
         AItem.Objects.TextObject.Width := AItem.Objects.TextObject.Width - (5 + AItem.Objects.AccessoryObject.Width);
         AItem.Objects.AccessoryObject.Visible := FChecked.Contains(AItem.Index);
       end;
    end;

     

  9. Я бы порекомендовал добавить на форму Memo и разбросать по своему коду комбинацию из моего примера для поиска места, где происходит задержка:
     

      LTime := Now;
    // действие
      Memo1.Lines.Add('Тут название действия: '+ IntToStr(MilliSecondOfTheMinute(Now - LTime)) + ' ms');

     

  10. Вы не прилагаете тестовый пример. Сделал это за Вас.
    Итак. В моем примере, откомпилированном в Delphi Berlin и запущенном на Windows, 500 строк заполняются за 13-20 миллисекунд.
    Запустите его на Delphi XE6 и скажите Ваш результат. Если результат соизмерим с моим, то дело не в StringGrid.

     

    tstStringGrid.rar

  11. Если нужно просто запустить программу, нажмите на "Подробнее", появится кнопка для запуска.

    инфа по цифровой подписи:
    Code Signing сертификаты или сертификаты разработчика. Виды, как выбрать
    Code signing для Open Source от Certum
    Code Signing в Windows, просто и недорого
    Где приобрести сертификат : KSoftwareComodoSymantec ... (ссылки есть в статьях)
    Как подписывать

  12. В 21.09.2017 в 08:54, striker сказал:

    как только подключаю Grid - начинает висеть

    Как подключаете? Через LiveBindings? Если "да", то это может быть причиной торможения (тем в более в ранних версиях XE).

    Если заполняете "вручную", то проверьте наличие конструкций BeginUpdate, EndUpdate

      Grid1.BeginUpdate;
      try
    // заполнение
      finally
        Grid1.EndUpdate
      end;

     

    1 час назад, striker сказал:

    Delphi XE6

    Большинство порекомендует Вам перейти на версию Berlin (в ней работа Grid значительно переработана)

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