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

Kikoma

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

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

  • Посещение

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

    2

Активность репутации

  1. Like
    Kikoma получил реакцию от nfs-petr в [TRESTClient] Использование кодировок в TRESTClient   
    Проблема решена с использованием UTF8EncodeToShortString
     
    Вот код:
    RESTRequest1.Params.AddItem( UTF8EncodeToShortString(edParam.Text), UTF8EncodeToShortString(edValue.Text), TRESTRequestParameterKind.pkGETorPOST,[poDoNotEncode] ); Всем спасибо.
  2. Like
    Kikoma получил реакцию от Ra72 в Как программно добавить объект в StyleBook?   
    1.  А если программно в StyleBook из папки, а потом сохранить стиль?
    2. А если станет больше картинок в ресурс можно их программно добавить? как?
    3. Я для себя имя файла хроню в БД а картинки деплою assets\internal\img\ - (Надеюсь в будущем можно будет потом программно сюда добавить/закачать, а в БД запись добавлю)
       (Кстати задеплоить файлы массово можно и пути им тоже массово назначить, выделяешь и там кнопочки вверху )
    4. А смысл? Если хранить картинки jpeg то объем архива не изменится. а ресурсы на распаковку архива дополнительно будут тратиться. Если только имеешь ввиду, что задеплоить архив, а уже на месте его распаковать? - смысл? см. п.3
  3. Like
    Kikoma получил реакцию от zairkz в [Android] Разделить скроллинг и нажатие   
    Вопрос актуален!!! Тоже ищу решение, пока не нашел
  4. Like
    Kikoma получил реакцию от ASRenuff в Как узнать из какого ListBoxItem был вызван обработчик   
    Здравствуйте.
    Стоит задача: Кастомизированный TListBoxItem содержит TText.Price, TSpinBox.SBCount, TText.Sum.
    т.е. есть цена, изменяем кол-во получаем сумму и все это в TListBoxItem.
     
    Вешаем обработчик на TSpinBox.SBCountChange, но встает вопрос, каким образом узнать в каком  TListBoxItem произошло событие?
    procedure TForm2.SBCountChange(Sender: TObject); var Item: TListBoxItem; SB: TSpinBox; s1, s2: string; begin SB := Sender as TSpinBox; // Получили Sender из TSpinBox if Assigned(SB) and (SB is TSpinBox) then begin Item := ?????? //Узнаем из какого итема была вызван эта процедура s1 := StringReplace(Item.StylesData['TextPrice'].ToString,'.',',',[rfReplaceAll, rfIgnoreCase]); //Тут обертка точку на запятую меняю s2 := StringReplace(Item.StylesData['SBCount.Text'].ToString,'.',',',[rfReplaceAll, rfIgnoreCase]); Item.StylesData['TextSum.Text'] := IntToStr(Round(StrToFloat(s1) * StrToInt(s2))); end; end;
  5. Like
    Kikoma отреагировална Brovin Yaroslav в [Windows] Ищу компонент для отображения табличных данных   
    Чем не устраивает TGrid и TStringGrid, входящий в состав FireMonkey?
    Начиная с версии XE6 скорости работы TGrid и TStringGrid была значительно увеличена и на текущий момент не зависит от количества отображаемых данных. Так же эти гриды имеют поддержку LiveBinding, что позволяет в дизайнере выводить данные из TDataSet подобных компонентов.
  6. Like
    Kikoma отреагировална Brovin Yaroslav в Правила публикации сообщений на этом форуме   
    За постоянное нарушение этих правил пользователь может быть забанен, в том числе по адресу IP.Если тема оформлена не правильно, то она будет закрыта.

    1. Общие правила
    Перед тем как создать тему по вашему вопросу, воспользуйтесь поиском по форуму. Форум рассчитан на консультирования применения FireMonkey, решения прикладных задач с использованием FireMonkey.  Запрещено публиковать найденные ошибки. Для публикации и решения вопросов ошибок FMX существует специальный ресурс Embarcadero Quality Central. Запрещается обсуждение вопросов не связанных с разработкой и FireMonkey Запрещается использовать нецензурные выражения в тексте и заголовке сообщений 2. Создание темы
    Одна тема — один вопрос. Два вопроса в одной теме задавать запрещено. Запрещено создавать несколько тем для одного вопроса. Тема должна быть размещена в наиболее подходящем для нее по смыслу разделе. Если такового не имеется, то размещать тему на свое усмотрение. 2.1 Каким должен быть заголовок темы?
    Вопрос должен быть сформулирован в заголовке темы. Заголовок темы должен содержать не менее 4 слов. Заголовок темы должен формулировать вопрос как можно подробнее. 2.2. Каким должен быть текст вопроса?
    Текст вопроса нужно начать с указания используемой версии RAD Studio, Версии ОС и модель устройства (если речь идет о мобильной разработке) Текст темы должен максимально подробно описывать суть вопроса. Текст темы должен по возможности содержать иллюстрации.  Иллюстрации должны быть не от балды, а иллюстрировать текущее состояние вопроса: то есть, наглядно показывать факт существования описанного поведения. Если ваш вопрос касается конкретного случая разработки, нужно прикрепить проект (только исходные коды в zip архиве) к сообщению. Вставляя код в текст темы, позаботьтесь о том, чтобы он соответствовал стандарту «Руководство по оформлению кода на Pascal» (это можно сделать, при помощи средств автоматического форматирования кода, которые есть в RAD Studio Edit -> Format Source или Ctrl + D), а также не забудьте использовать тег «Код» при оформлении кода в сообщении. 3. Ответы в темы
    Задавать свой вопрос в чужой теме можно только в случае если ваш вопрос совпадает с вопросом в теме. Отвечать можно на любые темы. При ответе старайтесь подробно описывать решение вопроса. Избегайте лишних сообщений не касающихся решения вопроса.
  7. Like
    Kikoma получил реакцию от Andrey Efimov в [TRESTClient] Использование кодировок в TRESTClient   
    Проблема решена с использованием UTF8EncodeToShortString
     
    Вот код:
    RESTRequest1.Params.AddItem( UTF8EncodeToShortString(edParam.Text), UTF8EncodeToShortString(edValue.Text), TRESTRequestParameterKind.pkGETorPOST,[poDoNotEncode] ); Всем спасибо.
  8. Like
    Kikoma отреагировална Brovin Yaroslav в Как правильно программно удалить TListBoxItem из стилевого объекта?   
    Совершенно забыл о самом простом и существующем способе отложенного удаления объектов. У каждого контрола есть метод Release, который осуществляет отложенное удаление объекта. Используйте его:
    Item.Release
  9. Like
    Kikoma получил реакцию от Kitty в [Android] Изменить вид кнопки по умолчанию   
    Да, открыл, тоже нет рамки: причина в стиле изменилось имя:
    делаем следующее:
    3. У формы ставим StyleBook := StyleBook1

  10. Like
    Kikoma получил реакцию от Kitty в [Android] Изменить вид кнопки по умолчанию   
    Вот мои исходники (только на Delphi XE6 upd2)
  11. Like
    Kikoma получил реакцию от Kitty в [Android] Изменить вид кнопки по умолчанию   
    Как получилось у меня:
    1.То что вы открыли в Блокноте я полностью скопировал этот
    object TLayout
        StyleName = 'donetoolbutton'
      ...
    end
     
    Сохранил его в отдельный файл, при этом поменял StyleName = 'mydonetoolbutton'
    2. На форму бросил StyleBook1, щелкнул на нем два раза попал в редактор. По кнопке Load... выбрал выше созданный файл и его немного подредактировал: добавил Rectangle (Fill.Kind := None; Stroke (рамка) уже есть)
     

     
    Немного повозился с размерами и выравниванием. После кнопка Apply and Close
    3. Бросаю две SpeedButton, у одного набираю в StyleLookUp = mydonetoolbutton, у другого из списка выбираю StyleLookUp = donetoolbutton.
     

     
    Результат достигнут. На непоколебимость данного варианта не претендую, хотелось бы узнать мнение гуру.
  12. Like
    Kikoma отреагировална AngryOwl в Можно ли задать минимальные размеры для формы?   
    Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
    Причем проблема с "большой буквы".
    Как это сделать в VCL - все в курсе.
    Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
    Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
    Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
     
    Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
    Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
     
    P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
  13. Like
    Kikoma отреагировална AngryOwl в Как программно добавить анимацию к TListBoxItem   
    "Height - не работает"
    а в Вашем TListBox, в котором Вы меняете Item'ы, свойство ItemHeight случаем <> 0 ?
    В смысле - если ItemHeight <> 0, то изменение свойства Height для любого TListBoxItem работать не будет
     
    P.S. Вот простой пример, который только-что опробовал и он прекрасно работает именно так, как Вам нужно
    (удаляет выбранный элемент списка с анимацией)
    ... TListBoxItem(TListBox(Sender).Selected).AnimateFloat('Opacity', 0, 0.3); TListBoxItem(TListBox(Sender).Selected).AnimateFloatWait('Height', 0, 0.3); TListBox(Sender).Items.Delete(TListBox(Sender).Selected.Index); ... P.P.S. проверил - все работает и на Windows и на Android. корректно и с анимацией
  14. Like
    Kikoma получил реакцию от AngryOwl в [TRESTClient] Использование кодировок в TRESTClient   
    Проблема решена с использованием UTF8EncodeToShortString
     
    Вот код:
    RESTRequest1.Params.AddItem( UTF8EncodeToShortString(edParam.Text), UTF8EncodeToShortString(edValue.Text), TRESTRequestParameterKind.pkGETorPOST,[poDoNotEncode] ); Всем спасибо.
  15. Like
    Kikoma получил реакцию от AngryOwl в [Android] Изменить вид кнопки по умолчанию   
    Как получилось у меня:
    1.То что вы открыли в Блокноте я полностью скопировал этот
    object TLayout
        StyleName = 'donetoolbutton'
      ...
    end
     
    Сохранил его в отдельный файл, при этом поменял StyleName = 'mydonetoolbutton'
    2. На форму бросил StyleBook1, щелкнул на нем два раза попал в редактор. По кнопке Load... выбрал выше созданный файл и его немного подредактировал: добавил Rectangle (Fill.Kind := None; Stroke (рамка) уже есть)
     

     
    Немного повозился с размерами и выравниванием. После кнопка Apply and Close
    3. Бросаю две SpeedButton, у одного набираю в StyleLookUp = mydonetoolbutton, у другого из списка выбираю StyleLookUp = donetoolbutton.
     

     
    Результат достигнут. На непоколебимость данного варианта не претендую, хотелось бы узнать мнение гуру.
  16. Like
    Kikoma получил реакцию от Andrey Efimov в [Android] Изменить вид кнопки по умолчанию   
    Как получилось у меня:
    1.То что вы открыли в Блокноте я полностью скопировал этот
    object TLayout
        StyleName = 'donetoolbutton'
      ...
    end
     
    Сохранил его в отдельный файл, при этом поменял StyleName = 'mydonetoolbutton'
    2. На форму бросил StyleBook1, щелкнул на нем два раза попал в редактор. По кнопке Load... выбрал выше созданный файл и его немного подредактировал: добавил Rectangle (Fill.Kind := None; Stroke (рамка) уже есть)
     

     
    Немного повозился с размерами и выравниванием. После кнопка Apply and Close
    3. Бросаю две SpeedButton, у одного набираю в StyleLookUp = mydonetoolbutton, у другого из списка выбираю StyleLookUp = donetoolbutton.
     

     
    Результат достигнут. На непоколебимость данного варианта не претендую, хотелось бы узнать мнение гуру.
  17. Like
    Kikoma отреагировална AngryOwl в Как программно добавить анимацию к TListBoxItem   
    TListBoxItem(ваш_item).Animate('Opacity', 0, 0.5); TListBoxItem(ваш_item).AnimateWait('Height', 0, 0.5); и только после этого удаляйте.
    Но здесь может возникнуть ряд проблем.
    Во-первых - оптимально делать синхронизацию. Во-вторых - ввиду "ряда особенностей" FMX все может работать на Windows 8, но не будет работать (или будет, но с ошибками) на Windows 7. А на Windows XP вообще может себя повести в "3-ем варианте"... ) Более стабильно будет работать на Маке и на Android ))) Вот такие чудеса могут быть.
     
    Чтобы всего этого избежать, Вам нужно точно определить ту последовательность, которую Вы хотите воспроизвести и сделать синхронизацию.
     
    Например, как писал выше:
    TListBoxItem(ваш_item).Animate('Opacity', 0, 0.5); TListBoxItem(ваш_item).AnimateWait('Height', 0, 0.5); // тогда Animate для 'Opacity' и 'Height' выполнится параллельно // а вот следующая процедура выполнится только после окончания AnimateWait 'Height' TThread.Synchronize(TThread.CurrentThread, тут_ваша_процера_удаления_item); Думаю, что корректно описал - как. Но было бы более точно и правильно, если бы на ваш вопрос ответил непосредственно Ярослав Бровин. Он все-таки более компетентен.
  18. Like
    Kikoma отреагировална Brovin Yaroslav в Перевод массива кодов символов в строку   
    Да, вы правы. Ошибся.
     
    StringOf использует текущую кодировку на платформе, на Windows - это ANSI, на мобильных платформах - это UTF8:
    function StringOf(const Bytes: TBytes): UnicodeString; begin if Assigned(Bytes) then Result := TEncoding.Default.GetString(Bytes, Low(Bytes), High(Bytes) + 1) else Result := ''; end; Поэтому лучше используйте TEncoding.ANSII:
    TEncoding.ANSI.GetString(BufferOfBytes, Low(BufferOfBytes), High(BufferOfBytes) + 1);
  19. Like
    Kikoma отреагировална Andrey Efimov в Приложение для создания файла ресурсов (RC, RES)   
    Появилась необходимость добавить большое количество картинок, но делать это стандартными средствами не очень удобно (почитать можно тут: Где хранить большое количество картинок?).
     
    Собственно, написал маленькую программку для создания файла RC и создания bat – файла, который позволяет генерировать RES файл.
     
    В свободное время буду допиливать.
     
    Как использовать:
    Указываете путь до папки с файлами, которые необходимо добавить в ресурсы. Указываете имя выходного файла, без расширения. Расширение (.rc) уже забито в коде. Выбираете тип ресурсов. Ставите необходимые галочки. Жмёте "Создать" Итоговые файлы будут лежать рядом с exe-файлом приложения.
     
    Обращаться к ресурсам можно по оригинальным именам или автоматически сгенерованным.
    Пример (оригинальные имена):
    Имя файла "FruitsVegetables_1.png". В готовом файле будет так: FruitsVegetables_1 ТИП ПУТЬ\FruitsVegetables_1.png Надеюсь, кому-нибудь пригодится.
     
    Версия 1.4:

     
      Скачать с Google Drive (версия 1.4). Новую версию можно скачать ниже, в последнем сообщении.
  20. Like
    Kikoma получил реакцию от Andrey Efimov в Где хранить большое количество картинок?   
    StyleBook - Я бы создал дополнительное приложение для добавления картинок в StyleBook программно, и потом сохранил в файл (метод StyleBook.WriteResourses). Сам не пользовался, но копал бы в этом направлении Хранить в ресурсах - Если воспользоваться вариантом Сысоева Максима из этой темы, то опять таки быстрее было бы написать программку для создания файла ресурса resource.rc из картинок в определенной папке. Да и в будущем такая программка обязательно понадобится. Задеплоить - Добавить большое кол-во файлов и назначить им путь - не проблема, В дальнейшем работать с этим списком файлов не удобно. Я бы предложил разработчикам еще и фильтр туда вставить, было бы удобнее. Ну а пока только сортировкой по колонке пользуюсь, и то она после каждого действия слетает. (Кстати куда про найденные баги писать то можно? А то я их на листочек себе записываю) zip архив - аналог предыдущему пункту "задеплоить". APK - сам по себе zip архив, так что в итоге удобство сведется к не работать с большим списком в деплой менеджере, но дополнительной операции распаковки на устройстве (ведь при установке пользователь терпимо ждет и не спорит с иногда "долгим" процессом установки, а вот в процессе работы с приложением... ему это уже не нравится Чтобы принять окончательное решение, надо учесть будут ли добавляться картинки программно или только с обновлением apk? Как будут использоваться картинки в приложении и как лучше организовать к ним доступ для наилучшего быстродействия? Ну а самое главное программа создается для пользователя, поэтому чтобы пользователь был доволен (в контексте данной темы самый главный показатель для пользователя быстродействие работы программы)
  21. Like
    Kikoma получил реакцию от Brovin Yaroslav в Где хранить большое количество картинок?   
    StyleBook - Я бы создал дополнительное приложение для добавления картинок в StyleBook программно, и потом сохранил в файл (метод StyleBook.WriteResourses). Сам не пользовался, но копал бы в этом направлении Хранить в ресурсах - Если воспользоваться вариантом Сысоева Максима из этой темы, то опять таки быстрее было бы написать программку для создания файла ресурса resource.rc из картинок в определенной папке. Да и в будущем такая программка обязательно понадобится. Задеплоить - Добавить большое кол-во файлов и назначить им путь - не проблема, В дальнейшем работать с этим списком файлов не удобно. Я бы предложил разработчикам еще и фильтр туда вставить, было бы удобнее. Ну а пока только сортировкой по колонке пользуюсь, и то она после каждого действия слетает. (Кстати куда про найденные баги писать то можно? А то я их на листочек себе записываю) zip архив - аналог предыдущему пункту "задеплоить". APK - сам по себе zip архив, так что в итоге удобство сведется к не работать с большим списком в деплой менеджере, но дополнительной операции распаковки на устройстве (ведь при установке пользователь терпимо ждет и не спорит с иногда "долгим" процессом установки, а вот в процессе работы с приложением... ему это уже не нравится Чтобы принять окончательное решение, надо учесть будут ли добавляться картинки программно или только с обновлением apk? Как будут использоваться картинки в приложении и как лучше организовать к ним доступ для наилучшего быстродействия? Ну а самое главное программа создается для пользователя, поэтому чтобы пользователь был доволен (в контексте данной темы самый главный показатель для пользователя быстродействие работы программы)
  22. Like
    Kikoma получил реакцию от Andrey Efimov в Как программно добавить объект в StyleBook?   
    1.  А если программно в StyleBook из папки, а потом сохранить стиль?
    2. А если станет больше картинок в ресурс можно их программно добавить? как?
    3. Я для себя имя файла хроню в БД а картинки деплою assets\internal\img\ - (Надеюсь в будущем можно будет потом программно сюда добавить/закачать, а в БД запись добавлю)
       (Кстати задеплоить файлы массово можно и пути им тоже массово назначить, выделяешь и там кнопочки вверху )
    4. А смысл? Если хранить картинки jpeg то объем архива не изменится. а ресурсы на распаковку архива дополнительно будут тратиться. Если только имеешь ввиду, что задеплоить архив, а уже на месте его распаковать? - смысл? см. п.3
×
×
  • Создать...