antarey
-
Постов
284 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Активность репутации
-
antarey отреагировална slav_z в Автопрокрутка TListBox
скорее всего стиль у TListBox еще не загружен... и ему нечего еще прокручивать... попробуйте это:
-
antarey получил реакцию от Ingalime в C++Builder Windows 10 Native App
Подскажите, как в FMX реализовать типа нативное приложение под Вынь 10 - когда заходиш в настройки, потом в какой-то подпункт и в левом верхнем углу в капшине появляется стрелка назад.
Убрать капшин , кинуть панель плюс три стандартные кнопки можно, но тогда форма ведет себя не совсем по нативному, когда пристыковываеш ее к краям экрана, она автоматически не ресайзится
-
antarey получил реакцию от Евгений Корепов в C++Builder Windows 10 Native App
Подскажите, как в FMX реализовать типа нативное приложение под Вынь 10 - когда заходиш в настройки, потом в какой-то подпункт и в левом верхнем углу в капшине появляется стрелка назад.
Убрать капшин , кинуть панель плюс три стандартные кнопки можно, но тогда форма ведет себя не совсем по нативному, когда пристыковываеш ее к краям экрана, она автоматически не ресайзится
-
antarey отреагировална enatechno в FDQuery & LocalUpdate
FDQuery1.CachedUpdates := True; подробнее тут
-
-
antarey получил реакцию от Равиль Зарипов (ZuBy) в C++Builder & TTask
Нда, иногда и примеры надо смотреть , спасибо за подсказку.
-
antarey получил реакцию от Евгений Корепов в NetHTTPClient и личные сообщения на сайте forum.ru-board.com на C++Builder 10.1
Проапдейтился, все нормально, заходим
-
antarey отреагировална Евгений Корепов в NetHTTPClient и личные сообщения на сайте forum.ru-board.com на C++Builder 10.1
Сейчас посмотрю исходники. Минутку...
Да, в Update1 System.Net.HttpClient.pas исправлен :-)
-
-
antarey отреагировална Andrey Efimov в Локаль Андроида
Попробуйте - Как определить выбранный на устройстве язык?
p.s. Пользуйтесь поиском.
-
antarey получил реакцию от zairkz в Есть ли статьи о том, как редактировать стили и использовать BitmapStyleDesigner ?
Подскажите, есть где-то, и где если есть, подробная документация по редактированию и созданию новых стилей средствами IDE и BitmapStyle Designer
-
antarey получил реакцию от Kitty в Проблемы со стилями и релиз конфигурацией XE8 &C++
Написал Ярославу, говорит взяли на заметку, правда когда поправят не уточнил
-
antarey отреагировална xenon54 в XE8 и TApplicationEvents
Советую глянуть FGX от Ярослава, там есть реализация дополнительных ивентов.
-
antarey отреагировална kami в Parallel Library на одно процессорных компах
не будет*. Планировщик потоков - штука очень умная.
*При условии, что Ваш код не глючит сам по себе.
-
antarey получил реакцию от Georgeream в Тормоза анимации на Андроид
Подскажите, почему при использовании анимации на андроиде она безбожно тормозит.
TFloatAnimation или AnimateFloat или ChangeTabAction на Виндовс отрабатывается плавно и без тормозов - ета же анимация но на андроиде
выполняется заметно медленнее и не соответствует установленной скорости
анимация
FContainer->AnimateFloat("Position.Z", TrackBarAnimDepth->Value,TrackBarAnimSpeed->Value); FContainer->AnimateFloatDelay("Position.Z", 0,TrackBarAnimSpeed->Value, 1); FContainer->AnimateFloatWait(APropertyName, 360,TrackBarAnimSpeed->Value, TAnimationType::InOut); зачастую на андроиде не прорисовывается
-
antarey получил реакцию от Brovin Yaroslav в Тормоза анимации на Андроид
Посмотрите последний пример анимации для XE7 - там анимируются не контролы, а скрин контролов. На телефоне не проверял - но по логике проблема когда много компонентов должна быть решена
-
antarey отреагировална Равиль Зарипов (ZuBy) в Перехват СМС сообщения от определенного адресата
так сделано в одной из моих программ, автоматическое считывание кода подтверждения оплаты, подредактируй только его и не забудь про разрешения
-
antarey получил реакцию от AndrewSa в Можно ли использовать один TFloatAnimation для двух объектов?
Придумал как реализовать эфект Анимация смены TabItem в TabControl , но есть вопрос - можно ли для двух объектов использовать один TFloatAnimation? или реализовывать через TTimer?
-
antarey получил реакцию от AndrewSa в Тормоза анимации на Андроид
Подскажите, почему при использовании анимации на андроиде она безбожно тормозит.
TFloatAnimation или AnimateFloat или ChangeTabAction на Виндовс отрабатывается плавно и без тормозов - ета же анимация но на андроиде
выполняется заметно медленнее и не соответствует установленной скорости
анимация
FContainer->AnimateFloat("Position.Z", TrackBarAnimDepth->Value,TrackBarAnimSpeed->Value); FContainer->AnimateFloatDelay("Position.Z", 0,TrackBarAnimSpeed->Value, 1); FContainer->AnimateFloatWait(APropertyName, 360,TrackBarAnimSpeed->Value, TAnimationType::InOut); зачастую на андроиде не прорисовывается
-
antarey отреагировална Brovin Yaroslav в Как вычислить размер текста?
Нужно использовать TTextLayout для этого. Это будет быстрее, чем создавать TText, TLabel, которые по сути в конечном итоге используют тот же TTextLayout.
В приведенном ниже коде, нужно правильно задать требуемые настройки текста: шрифт, переносы, выравнивание и тд.
uses FMX.TextLayout; {$R *.fmx} procedure TForm3.Button1Click(Sender: TObject); var TextLayout: TTextLayout; begin TextLayout := TTextLayoutManager.DefaultTextLayout.Create; try TextLayout.BeginUpdate; try TextLayout.Text := Text; TextLayout.MaxSize := TPointF.Create(Width, 1000); TextLayout.WordWrap := WordWrap; TextLayout.Font := Font; TextLayout.HorizontalAlign := TextAlign; TextLayout.VerticalAlign := VertTextAlign; finally TextLayout.EndUpdate; end; // TextLayout.TextRect; <- Здесь будет размер текста finally TextLayout.Free; end; end; Когда получите размер текста в TEdit, не забудьте, что нужно учесть размер рамки эдита и возможное наличие кнопок, что корректно задать ширину.
Обновлять ширину надо в события OnChange и OnChangeTrtacking, в зависимости от требуемой вам ситуации.
-
antarey отреагировална Brovin Yaroslav в Как заставить обычную форму отображаться как Popup?
Вам надо сконвертировать абсолютные координаты кнопки в экранные. О том, как это сделать ответ тут: О видах координат в FireMonkey и конвертации между ними
-
antarey отреагировална AngryOwl в Как заставить обычную форму отображаться как Popup?
Сдается мне что все очень просто... По крайней мере я данным решением пользовался не раз и оно прекрасно работает. А именно:
- во-первых - есть уже на форуме подобное обсуждение, и если мне не изменяет память, то было и еще!
- во-вторых: (если очень грубо....)
........... var p : TPointF; function GetMousePos: TPointF; var Platform: IInterface; begin Result.Create(0, 0); Platform := TPlatformServices.Current.GetPlatformService(IFMXMouseService); if Platform <> nil then Result := (Platform as IFMXMouseService).GetMousePos; end; begin p := GetMousePos; ваша_форма.Left := round(p.X); // тут уж вы сами решайте - как вам ее "сдвинуть" ваша_форма.Top := round(p.Y) + ваша_форма.Height; // ну аналогично сдвинуть по вертикали..... ваша_форма.Show; end; только это все грубо. сами решайте что и куда сдвигать и что еще учитывать.
Т.е. надо обрабатывать событие OnClick вашей кнопочки, а внутри обработчика то что написано выше.
Типа как-то так для вашего случая)
-
antarey получил реакцию от ASRenuff в Помогите перевести код с Delphi на С++ по использованию TTextLayout
Руководствуясь темой (Как сделать автоматическое изменение высоты TListBoxItem под содержимое текста?) переделал код на C++Builder.
Unit1.h
public: // User declarations TTextLayoutClass *FTextLyoutClass; TTextLayout* FTextLyout; Unit1.cpp //--------------------------------------------------------------------------- void TForm1::CalculateItemHeight(TObject *Sender) { TListBoxItem *ListItem=dynamic_cast<TListBoxItem*>(Sender); if (ListItem!=NULL) { FTextLyout->BeginUpdate(); try { FTextLyout->Text = ListItem->Text; FTextLyout->MaxSize = TPointF(ListItem->Width, 1000); FTextLyout->WordWrap = ListItem->WordWrap; FTextLyout->Font = ListItem->Font; FTextLyout->HorizontalAlign = ListItem->TextAlign; FTextLyout->VerticalAlign = ListItem->VertTextAlign; ListItem->Height = FTextLyout->Height; } __finally { FTextLyout->EndUpdate(); } } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { FTextLyout = (TTextLayout*)(new TTextLayoutClass(TTextLayoutManager::DefaultTextLayout)); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { FreeAndNil(FTextLyout); } //--------------------------------------------------------------------------- void __fastcall TForm1::ListBoxItem3ApplyStyleLookup(TObject *Sender) { CalculateItemHeight(Sender); } //--------------------------------------------------------------------------- void __fastcall TForm1::ListBoxItem3Resize(TObject *Sender) { CalculateItemHeight(Sender); } //--------------------------------------------------------------------------- И получаю ошибку:
Это я не правильно переделал код или же глюк студии?
На офф. форуме тоже подымался етот вопрос - но к сожалению без ответов
-
antarey получил реакцию от Kitty в Голосование за появление обучающего курса по FireMonkey
Очень сильно поддерживаю - не забывайте за бульдозеристов - если будет код на делфи - рядом на с++
-
antarey получил реакцию от Kitty в Как в Firemonkey на C++Builder использовать ява код?
Итак, вот результат моих потуг
antareyToast.java
package com.antarey; import android.content.Context; import android.os.Handler; import android.os.Looper; import android.widget.Toast; public class antareyToast { private Context context; private Handler mHandler = new Handler(Looper.getMainLooper()); private String mMsg; public antareyToast(Context context) { this.context = context; } public void ShowToast(String msg) { mMsg = msg; mHandler.post(new Runnable() { public void run() { Toast.makeText(context, mMsg, Toast.LENGTH_SHORT).show(); } }); } } обертка
unit com.antarey.antareyToast; interface uses FMX.Helpers.Android, Androidapi.Helpers, AndroidAPI.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.os; type JantareyToast = interface; JantareyToastClass = interface(JObjectClass) ['{C4BED43A-7A25-43F2-A9BE-B2E1602FB2D8}'] function init(JContextparam0 : JContext) : JantareyToast; cdecl; end; [JavaSignature('com/antarey/antareyToast')] JantareyToast = interface(JObject) ['{5AFABA34-5223-424D-A381-5F61E4B67B53}'] procedure ShowToast(JStringparam0 : JString) ; cdecl; end; TJantareyToast = class(TJavaGenericImport<JantareyToastClass, JantareyToast>) end; procedure ShowToast(ToastMsg: String); implementation procedure ShowToast(ToastMsg: String); var Activity:JantareyToast; begin Activity:= TJantareyToast.JavaClass.init(SharedActivityContext); Activity.ShowToast(StringToJString(ToastMsg)); end; procedure RegisterTypes; begin TRegTypes.RegisterType('com.antarey.antareyToast',TypeInfo(com.antarey.antareyToast.JantareyToast)); end; initialization RegisterTypes; end. вызов
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ShowToast( UnicodeString(_D("Ура!!!! - Получилось")) ); } //--------------------------------------------------------------------------- Все работает.
Более подробно читаем тут
Но ето только один из методов, использовать стандартные библиотеки немного проще, проще в том что не надо писать ява код самому, а обертки есть уже готовые