-
Постов
776 -
Зарегистрирован
-
Посещение
-
Победитель дней
27
Активность репутации
-
#WAMACO отреагировална slav_z в Как убить кнопку кликнув на нее саму
замени TFrame13.Create(nil) на TFrame13.Create(Self) только ради бога не спрашивай зачем... проверка на дублирование имени выполняется родителем... а он у тебя nil.
-
#WAMACO отреагировална nassl в Настройки RAD studio 10.3
Отвечу себе сам.
Для сброса Rad Studio 10.3 к дефолтным настройкам удаляем раздел реестра
HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0
После перегрузки системы все будет OK.
-
#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 за наводку
-
#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.
-
#WAMACO отреагировална slav_z в TMemo для вывода лога тормозит
возьмите TVertScrollBox, положите в него TLayout (align=top) храните строки в TStringList, вычисляйте высоту TLayout при добавлении строк. на событие TLayout.OnPaint рисуйте нужный диапазон строк (Canvas.FillText) опираясь на позицию Viewport скроллбокса. все будет летать.
-
#WAMACO отреагировална POV в TMemo для вывода лога тормозит
А зачем мемо на 100 тысяч строк? Ты их глазами будет просматривать? А что если ПО крэшнется? Логгируй БД - событие обычно редки, не затормозит ничего, всегда можно поднять последние события. Я вот с unidac так делал - прекрасно шуршало. Да, думаю, и access не сильно тормознёт от вывода одной строки изредка.
-
#WAMACO получил реакцию от Yarpda в Работа с календарем Google
описание
http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf
-
#WAMACO отреагировална Brovin Yaroslav в С днем рождения Андрей Ефимов ???
Хочу от всей души поздравить с днем рождения нашего модератора Андрея Ефимова @Andrey Efimov. Человек, на которого можно положиться и который всегда готов прийти на помощь. Из года в год помогает нашему форуму становиться лучше.
С днем рождения! Успехов тебе в работе, в личных делах. И не забывать про Делфи!
-
#WAMACO получил реакцию от Yarpda в Работа с календарем Google
Работал только через TMS FMX Cloud Pack, там все просто.
-
#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
Правда у меня только звук "чпок" на всех константах. Но мне он и был нужен )
-
#WAMACO отреагировална Maka в Работа с TInAppPurchase
добавление поддержки подписки в FMX: http://delphitoptips.blogspot.com/2018/03/supporting-in-app-purchase.html
-
#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;
-
#WAMACO получил реакцию от dnekrasov в Перевод VCL приложения на FMX. Подводные камни, стоит ли?
Не знаю, я как то переводил старое VCL приложением на FireMonkey, все прошло очень гладко, добавил новых "красивых" фич!
Были вопросы, но они все замечательно решились.
Клиенты довольны! Странно, что у вас опыт отрицательный.
-
#WAMACO отреагировална dnekrasov в Перевод VCL приложения на FMX. Подводные камни, стоит ли?
Tokyo, Rio
3000 кнопок - всё отлично работает.
-
#WAMACO отреагировална Slym в Артефакты на экране (Android)
Боролись как-то с артефактами отображения (мы их прозвали "крокодилами" из-за сходства на первом скриншоте с этим багом)...
Могли отображаться также левые спрайты, или обрезки скролившихся контролов...
Коллега выяснил что не надо трогать Form.Fill, из-за переключения в недрах FMX нативной и не нативной канвы: если нужен фон - брось Rect по контенту и в нем делай заливку...
-
#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
-
-
#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
-
#WAMACO получил реакцию от Barbanel в TMapView завешивает программу
Сходите на Android Studio! После мытарств там, ждем обратно! ?
По-делу.... что конкретно не получается?
-
#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
-
#WAMACO получил реакцию от Anatoliy в TMapView завешивает программу
Сходите на Android Studio! После мытарств там, ждем обратно! ?
По-делу.... что конкретно не получается?
-
#WAMACO получил реакцию от Anatoliy в TMapView завешивает программу
Отключите создание маркеров при переключении на другую задачу...
При возвращении... продолжайте выставлять!
-
#WAMACO получил реакцию от Олег Киреев в Приложение для получения информации о составе основных комплектующих, входимостей по моделям автобусов и троллейбусов МАЗ на смартфонах v.11.52.
Уххх... да...
Рекомендация.
1. Уберите "вырви глаз" синий цвет шрифта.
2. Не используйте Windows иконки. Смотрятся убого.
Это для начала...
Почитайте про Material Design. В сети информации полно.
-
#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}
-
#WAMACO отреагировална gonzales в Рабочая комбинация программ для публикации в AppStore
Такой же рецепт для XCode 10.1, который работает в MacOS Mojave (10.14)