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

enatechno

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

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

  • Посещение

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

    26

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

  1. Like
    enatechno получил реакцию от Winexcel в Вставка стиля   
    Я так понимаю, Вы имели ввиду FindAndCloneStyleResource? Этот метод не возвращает копию стиля. Он возвращает копию объекта(элемента) стиля.
    Например,  если Вы хотите напрямую изменить элемент стиля (например цвет фона кнопки), то делаете:
     
    AObject := Button1.FindStyleResource('background'); if (AObject is TRectangle) then TRectangle(AObject).Fill.Color := TAlphaColorRec.Aqua; И Button1 изменит цвет.
    Но, если после этого сделать Layout1.AddObject(AObject); то кнопка Button1  не будет больше иметь элемент 'background', родителем этого объекта станет Layout1. 

     Что касается
    AObject := Button1.FindStyleResource('background', True); if AObject <> nil then Layout1.AddObject(AObject); или
    if Button1.FindAndCloneStyleResource('background', AObject) then Layout1.AddObject(AObject); то вы просто создаете новый объект AObject типа TRectangle со всеми свойствами как у стилевого элемента 'background', за исключением StyleName (у вновь созданного AObject будет  StyleName = ''). В нашем примере этот новый объект (TRectangle) будет помещен на Layout1. При этом 'background' кнопки не изменится.
     
  2. Like
    enatechno получил реакцию от Равиль Зарипов (ZuBy) в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    В папке C:\Users\Public\Documents\Embarcadero\Studio\<версия>\Styles лежат файлы стилей.
    Вам надо смотреть в этой папке файлы *.style. Загрузите любой из них в StyleBook.
    Обычно стиль контрола имеет название <имя класса без Т>+'style'. Например editstyle, buttonstyle. Но есть и исключения из правил, как например <menu...>, но их тоже не сложно найти.
    Прямо в StyleBook вы можете менять параметры объектов стиля и смотреть, как они влияют на внешний вид контролов.

    И кстати, если делаете кроссплатформенный проект, учтите что TPopupMenu используется только в десктопных приложениях.
  3. Like
    enatechno получил реакцию от Brovin Yaroslav в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    Можно. Стиль называется menuviewstyle.
     
  4. Like
    enatechno получил реакцию от Brovin Yaroslav в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    В папке C:\Users\Public\Documents\Embarcadero\Studio\<версия>\Styles лежат файлы стилей.
    Вам надо смотреть в этой папке файлы *.style. Загрузите любой из них в StyleBook.
    Обычно стиль контрола имеет название <имя класса без Т>+'style'. Например editstyle, buttonstyle. Но есть и исключения из правил, как например <menu...>, но их тоже не сложно найти.
    Прямо в StyleBook вы можете менять параметры объектов стиля и смотреть, как они влияют на внешний вид контролов.

    И кстати, если делаете кроссплатформенный проект, учтите что TPopupMenu используется только в десктопных приложениях.
  5. Like
    enatechno получил реакцию от AngryOwl в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    В папке C:\Users\Public\Documents\Embarcadero\Studio\<версия>\Styles лежат файлы стилей.
    Вам надо смотреть в этой папке файлы *.style. Загрузите любой из них в StyleBook.
    Обычно стиль контрола имеет название <имя класса без Т>+'style'. Например editstyle, buttonstyle. Но есть и исключения из правил, как например <menu...>, но их тоже не сложно найти.
    Прямо в StyleBook вы можете менять параметры объектов стиля и смотреть, как они влияют на внешний вид контролов.

    И кстати, если делаете кроссплатформенный проект, учтите что TPopupMenu используется только в десктопных приложениях.
  6. Like
    enatechno получил реакцию от AngryOwl в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    Можно. Стиль называется menuviewstyle.
     
  7. Like
    enatechno получил реакцию от Winexcel в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    В папке C:\Users\Public\Documents\Embarcadero\Studio\<версия>\Styles лежат файлы стилей.
    Вам надо смотреть в этой папке файлы *.style. Загрузите любой из них в StyleBook.
    Обычно стиль контрола имеет название <имя класса без Т>+'style'. Например editstyle, buttonstyle. Но есть и исключения из правил, как например <menu...>, но их тоже не сложно найти.
    Прямо в StyleBook вы можете менять параметры объектов стиля и смотреть, как они влияют на внешний вид контролов.

    И кстати, если делаете кроссплатформенный проект, учтите что TPopupMenu используется только в десктопных приложениях.
  8. Like
    enatechno получил реакцию от Winexcel в [TPopupMenu] Можно ли стилизовать background у TPopupMenu?   
    Можно. Стиль называется menuviewstyle.
     
  9. Like
    enatechno получил реакцию от Alex7wrt в Расположение компонентов Panel ImageViewer   
    1). Если в design-time: Задайте для ImageViewer: Align - None, Anchors - [akTop,akRight] и разместите ImageViewer на нужном месте (с необходимыми отступами).

     
    2). Если не ошибаюсь, то нет свойства позволяющего сделать объект постоянно поверх все компонентов, поэтому рекомендую при добавлении компонентов перекрывающих ImageViewer делать ImageViewer.BringToFront;
     
    3). Пропорционально относительно чего? Если пропорционально размера формы, то самостоятельно пересчитывайте размер ImageViewer в TForm.OnResize
     
    4). Если речь идет о TPanel, то это стилевой объект и его цвет меняется через стиль. Более простой вариант -  в качестве "панелек" использовать "не стилевой" TRecangle. Цвет TRectanle можете задать и в design-time и runtime (Rectangle1.Fill.Color := TAlphaColorRec.White)

    И кстати, почему ImageViewer? Может TImage будет достаточно?
  10. Like
    enatechno получил реакцию от Brovin Yaroslav в Расположение компонентов Panel ImageViewer   
    1). Если в design-time: Задайте для ImageViewer: Align - None, Anchors - [akTop,akRight] и разместите ImageViewer на нужном месте (с необходимыми отступами).

     
    2). Если не ошибаюсь, то нет свойства позволяющего сделать объект постоянно поверх все компонентов, поэтому рекомендую при добавлении компонентов перекрывающих ImageViewer делать ImageViewer.BringToFront;
     
    3). Пропорционально относительно чего? Если пропорционально размера формы, то самостоятельно пересчитывайте размер ImageViewer в TForm.OnResize
     
    4). Если речь идет о TPanel, то это стилевой объект и его цвет меняется через стиль. Более простой вариант -  в качестве "панелек" использовать "не стилевой" TRecangle. Цвет TRectanle можете задать и в design-time и runtime (Rectangle1.Fill.Color := TAlphaColorRec.White)

    И кстати, почему ImageViewer? Может TImage будет достаточно?
  11. Like
    enatechno получил реакцию от Равиль Зарипов (ZuBy) в Расположение компонентов Panel ImageViewer   
    1). Если в design-time: Задайте для ImageViewer: Align - None, Anchors - [akTop,akRight] и разместите ImageViewer на нужном месте (с необходимыми отступами).

     
    2). Если не ошибаюсь, то нет свойства позволяющего сделать объект постоянно поверх все компонентов, поэтому рекомендую при добавлении компонентов перекрывающих ImageViewer делать ImageViewer.BringToFront;
     
    3). Пропорционально относительно чего? Если пропорционально размера формы, то самостоятельно пересчитывайте размер ImageViewer в TForm.OnResize
     
    4). Если речь идет о TPanel, то это стилевой объект и его цвет меняется через стиль. Более простой вариант -  в качестве "панелек" использовать "не стилевой" TRecangle. Цвет TRectanle можете задать и в design-time и runtime (Rectangle1.Fill.Color := TAlphaColorRec.White)

    И кстати, почему ImageViewer? Может TImage будет достаточно?
  12. Like
    enatechno отреагировална ENERGY в Фотография стандартной камерой смартфона   
    По поводу удаления из Gallery. Это виртуальная папка, это значит что недостаточно удалить файл из SharedCameraPath - т.к. он может быть в другом месте, т.к. MediaScanner собирает фотки со многих других папок,  но обычно достаточно этого пути.
    Но, даже если его удалить оттуда, он все равно останется в Gallery - его нужно удалять из SQL базы андроида.
     
    В общем идея следующая (описана тут) - до вызова интента сначала прочитать последний Image ID (ContentResolver.Query ) который лежит там, сохранить эту цифру.
    Затем после вызова интента камеры, запросить все id что больше сохраненного, как правило там должен появится один файл (одна запись с ID больше сохраненного) - и удалить его через ContentResolver.Delete. Параллельно можно сразу скопировать этот готовый jpeg файл, до удаления, чтобы не тратить время на создание своего из битмапа, т.к. можно получит и путь к нему.
     
     
  13. Like
    enatechno отреагировална Евгений Корепов в тунель SSH MySql   
    У большинства хостингов, светить портом sql сервера наружу считается ересью, что в принципе правильно. Поэтому обычная практика - ssh туннель до хостера и внутри него соединение с sql. Вот хороший пример настройки на мастерхосте https://masterhost.ru/support/hosting/work-with-data/program/#MySQL-tunnel
    Илья, если вы хотите из приложения коннектится по ssh и подключаться к sql, то лучше этого не делать - вам придется распространять вместе с приложением ключи (или логин с паролем) ssh,и предрекаю что через неделю ваш хостинг будет рассылать спам и майнить криптовалюту для злых хакеров.
  14. Like
    enatechno получил реакцию от Alex7wrt в Get запросы в iOS   
    Result у Вас какого типа? Попробуйте без него:
     
    xml_result:=HTTPGet('https://geocode-maps.yandex.ru/1.x/?geocode='+ 'Кунгур'+ ',+' +street+ '+улица,+дом+'+ house);  
  15. Like
    enatechno получил реакцию от Равиль Зарипов (ZuBy) в Get запросы в iOS   
    Result у Вас какого типа? Попробуйте без него:
     
    xml_result:=HTTPGet('https://geocode-maps.yandex.ru/1.x/?geocode='+ 'Кунгур'+ ',+' +street+ '+улица,+дом+'+ house);  
  16. Like
    enatechno получил реакцию от Kitty в файл не находится   
    К сожалению тут не многие пишут на с++ для IOS. Трудно гадать, в чем у Вас проблема. Варианты могут быть разные... (Как вариант: русская буква 'х' в названии файла).
    Приложите демонстрационный проект. Форма + TImage и загрузка задеплоенной картинки в TImage в runtime.
  17. Like
    enatechno получил реакцию от Kitty в файл не находится   
    путь для IOS7 и более ранних:  /var/mobile/Applications/<application ID>  
    путь для IOS8 и выше /var/mobile/Containers/Data/Application/<application ID>
  18. Like
    enatechno получил реакцию от Andrey Efimov в Зависает программа, использующая фреймы (Android)   
    1 Вариант. Заменой удаления фреймов на скрытие (подправленный проект приложил).
    2 Вариант. Расположить панель с кнопкой Back на главной форме, а не дублировать ее в каждом фрейме. (При необходимости саму кнопку Back можно скрывать при возврате на первый таб).
    3 Вариант. Использовать отложенное удаление фрейма).
     ...
    и еще много разных вариантов.
    Click; FPressed := False; StartTriggerAnimation(Self, 'Pressed') Отладчик выдал ошибку в методе объекта TControl (в Вашем случае это кнопка SpeedButton1 на фрейме). В этом методе в Click вы удаляете Frame, а значит и кнопку на ней. А в строке StartTriggerAnimation(Self, 'Pressed'); вы обращаетесь к этой удаленной кнопке (Self). Здесь и происходит AV.
    test2.zip
  19. Like
    enatechno получил реакцию от Brovin Yaroslav в OnCreate для фрейма   
    Да. 
    constructor Create(AOwner: TComponent); override;  
  20. Like
    enatechno получил реакцию от Равиль Зарипов (ZuBy) в Зависает программа, использующая фреймы (Android)   
    1 Вариант. Заменой удаления фреймов на скрытие (подправленный проект приложил).
    2 Вариант. Расположить панель с кнопкой Back на главной форме, а не дублировать ее в каждом фрейме. (При необходимости саму кнопку Back можно скрывать при возврате на первый таб).
    3 Вариант. Использовать отложенное удаление фрейма).
     ...
    и еще много разных вариантов.
    Click; FPressed := False; StartTriggerAnimation(Self, 'Pressed') Отладчик выдал ошибку в методе объекта TControl (в Вашем случае это кнопка SpeedButton1 на фрейме). В этом методе в Click вы удаляете Frame, а значит и кнопку на ней. А в строке StartTriggerAnimation(Self, 'Pressed'); вы обращаетесь к этой удаленной кнопке (Self). Здесь и происходит AV.
    test2.zip
  21. Like
    enatechno получил реакцию от Rusland в Зависает программа, использующая фреймы (Android)   
    1 Вариант. Заменой удаления фреймов на скрытие (подправленный проект приложил).
    2 Вариант. Расположить панель с кнопкой Back на главной форме, а не дублировать ее в каждом фрейме. (При необходимости саму кнопку Back можно скрывать при возврате на первый таб).
    3 Вариант. Использовать отложенное удаление фрейма).
     ...
    и еще много разных вариантов.
    Click; FPressed := False; StartTriggerAnimation(Self, 'Pressed') Отладчик выдал ошибку в методе объекта TControl (в Вашем случае это кнопка SpeedButton1 на фрейме). В этом методе в Click вы удаляете Frame, а значит и кнопку на ней. А в строке StartTriggerAnimation(Self, 'Pressed'); вы обращаетесь к этой удаленной кнопке (Self). Здесь и происходит AV.
    test2.zip
  22. Like
    enatechno получил реакцию от Rusland в FDQuery & LocalUpdate   
    FDQuery1.CachedUpdates := True; подробнее тут
  23. Like
    enatechno получил реакцию от Major в Зависает программа, использующая фреймы (Android)   
    1 Вариант. Заменой удаления фреймов на скрытие (подправленный проект приложил).
    2 Вариант. Расположить панель с кнопкой Back на главной форме, а не дублировать ее в каждом фрейме. (При необходимости саму кнопку Back можно скрывать при возврате на первый таб).
    3 Вариант. Использовать отложенное удаление фрейма).
     ...
    и еще много разных вариантов.
    Click; FPressed := False; StartTriggerAnimation(Self, 'Pressed') Отладчик выдал ошибку в методе объекта TControl (в Вашем случае это кнопка SpeedButton1 на фрейме). В этом методе в Click вы удаляете Frame, а значит и кнопку на ней. А в строке StartTriggerAnimation(Self, 'Pressed'); вы обращаетесь к этой удаленной кнопке (Self). Здесь и происходит AV.
    test2.zip
  24. Like
    enatechno получил реакцию от Major в Зависает программа, использующая фреймы (Android)   
    1). Я так понимаю эта строка в модуле фрейма? Похоже на циклическую ссылку. Uses в модуле фрейма ссылается на Form1, а Form1 ссылается на модуль фрейма?
    2). Вы создаете фрейм каждый раз при открытии TabItem2? Много ли контролов на фрейме? Создание фрейма с контролами в рантайм на андроиде - затратная по времени операция. Если программа использует не много фреймов, то я бы не создавал/удалял каждый раз фрейм при смене таба, а использовал фрейм созданный один раз. Это улучшит отзывчивость программы.

    Ну а причина зависания - то, что вы в процедуре обработчика кнопки фрейма OnClick вызываете TForm1.TabControl1Change и там удаляете этот фрейм и саму кнопку.
  25. Like
    enatechno отреагировална Равиль Зарипов (ZuBy) в первый раз публикую под IOS   
    такс видимо вы не совсем понимаете...
    компилировать под эмулятор вы можете без сертификата, НО вы не можете этот файл выложить в App Store для того чтобы выложить в App Store, вам нужно приобрести сертификат разработчика, выполнить то что я описал в первом сообщении настроить проект  Project - Options - Version Info  CFBundleIdentifier - информация из App IDs CFBundleSignature - информация из App IDs выставить конфигурацию Application Store настроить Project - Options - Provisioning выбрать провижн файл для проекта и сертификат разработчика только после этого у вас на маке в документах появится IPA файл, который можно загрузить в App Store
×
×
  • Создать...