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

#WAMACO

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

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

  • Посещение

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

    27

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

  1. Haha
    #WAMACO отреагировална slav_z в Как убить кнопку кликнув на нее саму   
    замени TFrame13.Create(nil) на TFrame13.Create(Self) только ради бога не спрашивай зачем... проверка на дублирование имени выполняется родителем... а он у тебя nil.
  2. Thanks
    #WAMACO отреагировална nassl в Настройки RAD studio 10.3   
    Отвечу себе сам.
    Для сброса Rad Studio 10.3 к дефолтным настройкам удаляем раздел реестра
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0
    После перегрузки системы все будет OK.
  3. Thanks
    #WAMACO отреагировална dnekrasov в [Windows] Запретить окну переход в прозрачный режим   
    Недавно решил одну проблемку, которая долго мучала - решил поделиться, может кому ещё пригодится.
    При работе с двумя мониторами или с монитором и проектором часто возникает необходимость запретить окну "исчезать" при наведении курсора мыши на миниатюру другого приложения в панели задач. Чтобы это сделать надо:
    uses ... Winapi.DwmApi ... TMainForm = class(TForm) ... protected procedure CreateHandle; override; ... end; ... procedure TMainForm.CreateHandle; var Val, Res: Integer; begin inherited CreateHandle; Val := 1; Res := DwmSetWindowAttribute(FormToHWND(Self), DWMWA_EXCLUDED_FROM_PEEK, @Val, SizeOf(Val)); {$IFDEF DEBUG} if Res <> S_OK then ShowMessage(SysErrorMessage(Res)); {$ENDIF} end; Спасибо @Alex7wrt за наводку
  4. Thanks
    #WAMACO отреагировална slav_z в Работа с атрибутами текста   
    Как сделать текст с подобными атрибутами? Очень просто!
    (Цвет текста не работает в XE8) Вот весь код:
    unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.UIConsts, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects, FMX.TextLayout; type TForm1 = class(TForm) Button1: TButton; Text1: TText; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} type TTextAccess = class(TText); procedure ClearTextAttribute(Text: TText); begin TTextAccess(Text).Layout.ClearAttributes; end; procedure AddTextAttribute(Text: TText; Pos,Length: Integer; FontStyles: TFontStyles; FontColor: TAlphaColor); var Font: TFont; begin Font:=TFont.Create; Font.Assign(Text.Font); Font.Style:=FontStyles; TTextAccess(Text).Layout.AddAttribute( TTextRange.Create(Pos,Length), TTextAttribute.Create(Font,FontColor)); end; procedure TForm1.Button1Click(Sender: TObject); begin AddTextAttribute(Text1,10,17,[TFontStyle.fsBold],claRed); AddTextAttribute(Text1,34,8,[TFontStyle.fsUnderline],claBlue); AddTextAttribute(Text1,47,8,[TFontStyle.fsStrikeOut],claGreen); Text1.Repaint; end; end.  
  5. Thanks
    #WAMACO отреагировална slav_z в TMemo для вывода лога тормозит   
    возьмите TVertScrollBox, положите в него TLayout (align=top) храните строки в TStringList, вычисляйте высоту TLayout при добавлении строк. на событие TLayout.OnPaint рисуйте нужный диапазон строк (Canvas.FillText) опираясь на позицию Viewport скроллбокса. все будет летать.
  6. Like
    #WAMACO отреагировална POV в TMemo для вывода лога тормозит   
    А зачем мемо на 100 тысяч строк? Ты их глазами будет просматривать? А что если ПО крэшнется? Логгируй  БД - событие обычно редки, не затормозит ничего, всегда можно поднять последние события. Я вот с unidac так делал - прекрасно шуршало. Да, думаю, и access не сильно тормознёт от вывода одной строки изредка.
  7. Like
    #WAMACO получил реакцию от Yarpda в Работа с календарем Google   
    описание
    http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf
     
  8. Like
    #WAMACO отреагировална Brovin Yaroslav в С днем рождения Андрей Ефимов ???   
    Хочу от всей души поздравить с днем рождения нашего модератора Андрея Ефимова @Andrey Efimov. Человек, на которого можно положиться и который всегда готов прийти на помощь. Из года в год помогает нашему форуму становиться лучше. 
    С днем рождения! Успехов тебе в работе, в личных делах. И не забывать про Делфи!
  9. Like
    #WAMACO получил реакцию от Yarpda в Работа с календарем Google   
    Работал только через TMS FMX Cloud Pack, там все просто.
  10. Like
    #WAMACO отреагировална Евгений Корепов в Проигрывание стандартных звуковых эффектов Android   
    Задался вопросом, нашел ответ, может кому пригодится.
    uses Androidapi.JNI.Media, Androidapi.Helpers, Androidapi.JNIBridge, AndroidApi.Jni.JavaTypes, Androidapi.JNI.GraphicsContentViewText; .... procedure TFormMain.PlaySoundEffects(const ASoundID : Integer; AVolume : Single = 1.0); var AudioObj: JObject; Audio: JAudioManager; begin AudioObj:= TAndroidHelper.Context.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); Audio:= TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); Audio.loadSoundEffects; Audio.playSoundEffect(ASoundID, AVolume); end; Константы звуковых эффектов тут https://developer.android.com/reference/android/view/SoundEffectConstants
    Правда у меня только звук "чпок" на всех константах. Но мне он и был нужен )
  11. Like
    #WAMACO отреагировална Maka в Работа с TInAppPurchase   
    добавление поддержки подписки в FMX: http://delphitoptips.blogspot.com/2018/03/supporting-in-app-purchase.html
  12. Like
    #WAMACO отреагировална beeoz в TExpander глюки при при isExpanded=False   
    Проблема сохранилась и в IDE Delphi Rio 10.3 . Причиной оказалось то, что в модуле FMX.StdCtrls в процедуре TExpander.UpdateControlSize указана переменная FContentHeight вместо FContent.Height
    procedure TExpander.UpdateControlSize(const ChangingState: Boolean); begin FChangingState := ChangingState; try if FIsExpanded then begin FContent.Visible := FIsExpanded; if FButton <> nil then Height := FButton.Height + FContent.Height; // здесь заменил FContentHeight на FContent.Height и заработало Repaint; end else begin Repaint; FContent.Visible := FIsExpanded; if FButton <> nil then Height := FButton.Height; end; finally FChangingState := False; end; end;  
  13. Like
    #WAMACO получил реакцию от dnekrasov в Перевод VCL приложения на FMX. Подводные камни, стоит ли?   
    Не знаю, я как то переводил старое VCL приложением на FireMonkey, все прошло очень гладко, добавил новых "красивых" фич!
    Были вопросы, но они все замечательно решились.
    Клиенты довольны! Странно, что у вас опыт отрицательный.
  14. Like
    #WAMACO отреагировална dnekrasov в Перевод VCL приложения на FMX. Подводные камни, стоит ли?   
    Tokyo, Rio 
    3000 кнопок - всё отлично работает.
  15. Like
    #WAMACO отреагировална Slym в Артефакты на экране (Android)   
    Боролись как-то с артефактами отображения (мы их прозвали "крокодилами" из-за сходства на первом скриншоте с этим багом)...
    Могли отображаться также левые спрайты, или обрезки скролившихся контролов...
    Коллега выяснил что не надо трогать Form.Fill, из-за переключения в недрах FMX нативной и не нативной канвы: если нужен фон - брось Rect по контенту и в нем делай заливку...
  16. Like
    #WAMACO отреагировална Roma77751 в Gif File   
    ПРОБЛЕМА РЕШЕНА! Всем спасибо, отдельное спасибо dnekrasov и IVGSoft, натолкнули на верную мысль. Только менять переменные надо было тут 
     Begin
          Stream.Read(RGBEntry, SizeOf(RGBEntry));
          With APalette do
          begin
            B := RGBEntry.R or (RGBEntry.R shl 8);
            G := RGBEntry.G or (RGBEntry.G shl 8);
            R := RGBEntry.B or (RGBEntry.B shl 8);
            A := $FF;
          end;
     видимо китайцы что то напутали...? Прикрепляю исправленный исходник.
    FMX.GifUtils.rar


  17. Haha
    #WAMACO отреагировална Anatoliy в PUSH Notification не работает после публикации   
  18. Like
    #WAMACO отреагировална sinuke в [Android] Прозрачный StatusBar в RAD 10.3 Rio   
    Привет
    Вчера была выпущена финальная версия RAD Studio 10.3 Rio, в которой много нововведений для Андройд. Но вот про статусбар снова "забыли". Хотя не совсем, добавили файлик styles-v21.xml, который превносит новую материальную тему на устройствах под управлением Android 5.0 и выше вместо устаревшей Holo.
    Но все равно свойство формы SystemStatusBar так и не реализовали. Поэтому при запуске статус бар будет окрашен в унылый серый цвет (см. скриншот).

    Для того, чтобы сделать статусбар прозрачным и поместить под него содержимое формы, то достаточно сделать несколько несложных шагов:
    1. Убираем из деплоймента (Project -> Deployment) файл styles-v21.xml (можно просто снять галочку рядом с именем файла)

    2. Добавить в деплоймент проекта новый файл styles-v21.xml (styles-v21.zip) и прописать ему путь res\values-v21\

    3. В результате получится следующий вид

     
    P.S. В новом файле по сравнению со стандартным добавилась строчка <item name="android:windowTranslucentStatus">true</item>, которая и отвечает за прозрачный статусбар
    P.P.S. Чтобы определять размер статус бара, все также можно воспользоваться решеним ZuBy - http://blog.rzaripov.kz/2016/12/android-ios.html
    P.P.P.S. Тестовый проектик - StatusBar.zip
  19. Haha
    #WAMACO получил реакцию от Barbanel в TMapView завешивает программу   
    Сходите на Android Studio! После мытарств там, ждем обратно! ?
    По-делу.... что конкретно не получается?
  20. Like
    #WAMACO отреагировална Евгений Корепов в Генерация CRC32 hash строки   
    Вот отличный набор всего-всего - Fundamentals 4 Library и Fundamentals 5 Library
    https://github.com/fundamentalslib/fundamentals4 
    https://github.com/fundamentalslib/fundamentals5
    Я использую https://github.com/fundamentalslib/fundamentals4/blob/master/Source/Utils/cHash.pas
  21. Like
    #WAMACO получил реакцию от Anatoliy в TMapView завешивает программу   
    Сходите на Android Studio! После мытарств там, ждем обратно! ?
    По-делу.... что конкретно не получается?
  22. Like
    #WAMACO получил реакцию от Anatoliy в TMapView завешивает программу   
    Отключите создание маркеров при переключении на другую задачу...
    При возвращении... продолжайте выставлять!
  23. Thanks
    #WAMACO получил реакцию от Олег Киреев в Приложение для получения информации о составе основных комплектующих, входимостей по моделям автобусов и троллейбусов МАЗ на смартфонах v.11.52.   
    Уххх...  да...
    Рекомендация. 
    1. Уберите "вырви глаз" синий цвет шрифта.
    2. Не используйте  Windows иконки. Смотрятся убого.
    Это для начала...
    Почитайте про Material Design. В сети информации полно.
  24. Like
    #WAMACO отреагировална dnekrasov в Перехват сообщений в Windows   
    Делаем как обычно, если надо переопределить какое-то событие окна
    interface uses {$IFDEF MSWINDOWS} Winapi.Windows, Winapi.Messages, FMX.Platform.Win, {$ENDIF} System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TMainForm = class(TForm) private procedure CreateHandle; override; {$IFDEF MSWINDOWS} procedure WMIMENotify(var Msg: TMessage); message WM_IME_NOTIFY; {$ENDIF} public end; var MainForm: TMainForm; implementation {$R *.fmx} {$IFDEF MSWINDOWS} var OldWndProc: Pointer = nil; function NewWndProc(Wnd: HWND; Msg: UINT; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall; var Mess : TMessage; begin case Msg of WM_IME_NOTIFY: begin Mess.Msg := Msg; Mess.WParam := wParam; Mess.lParam := lParam; Mess.Result := 0; MainForm.Dispatch(Mess); Result := Mess.Result; end; else Result := CallWindowProc(OldWndProc, Wnd, Msg, WParam, LParam); end; end; {$ENDIF} { TMainForm } procedure TMainForm.CreateHandle; begin inherited CreateHandle; {$IFDEF MSWINDOWS} OldWndProc:= Pointer(SetWindowLong(WindowHandleToPlatform(Handle).Wnd, GWL_WNDPROC, Integer(@NewWndProc))); {$ENDIF} end; {$IFDEF MSWINDOWS} procedure TMainForm.WMIMENotify(var Msg: TMessage); begin {что-то делаем} end; {$ENDIF}  
  25. Like
    #WAMACO отреагировална gonzales в Рабочая комбинация программ для публикации в AppStore   
    Такой же рецепт для XCode 10.1, который работает в MacOS Mojave (10.14)
×
×
  • Создать...