Лидеры
Популярный контент
Показан контент с высокой репутацией 07.10.2016 во всех областях
-
цвет объекта TMemo
walexw и 2 других отреагировал Brovin Yaroslav за вопрос
Либо вложить TMemo в TRectangle Либо использовать выравнивание Content, а не Client3 балла -
[iOS] [iOS10] Приложение падает при использовании камеры в iOS 10 64 bit
Kitty и 2 других отреагировал Brovin Yaroslav за вопрос
Так, проблему изучил. Решение очень простое. Начиная с iOS10 приложение, если хочет использовать камеру, библиотеку и другие сторонние сервисы, должно добавлять в манифест специальные ключи. Для камеры и библиотеки эти ключи изображены ниже: Добавьте эти ключи и все будет ок. Подробнее про ключи можно прочитать тут: Cocoa Keys3 балла -
Если честно, IDE в Qt по мне так отстой И система сигналов вместо простых обработчиков, оно может и нужно кому-то, но я за много лет не почуял, что мне не хватает ее... В результате никакого RAD. В коде все обработчики устанавливать. Мне не нравится. Это как в Andoird JAVA but = FindObjectByID(R.button1) ; but.SetText('12341234') вместо привычного but.Text := '1234123';3 балла
-
Почему в Берлине нет кнопки Apply
Евгений Корепов и 2 других отреагировал krapotkin за вопрос
Ярослав уже писал, что это тайна. Это секретное оружие куется в стране-производителе и что мешает им написать нормальный редактор - вообще неизвестно3 балла -
Почему в Берлине нет кнопки Apply
Евгений Корепов отреагировал chaplin.u@gmail.com за вопрос
Почему в Берлине нет кнопки Apply как это было на прошлых версиях ? вот так1 балл -
1 балл
-
Студия не видит zipalign.exe
Прикладной отреагировал krapotkin за вопрос
была такая проблемка) а откуда SDK-то брали? файл zipalign.exe лежит в SDK\Build-tools\xxx1 балл -
Студия не видит zipalign.exe
Прикладной отреагировал bigjorj за вопрос
C:\Program Files (x86)\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\build-tools\22.0.11 балл -
У меня используется такой код на Паскале (немного отличается от вашего): procedure TFrmMain.CalculateItemHeight(Sender: TObject); var ListItem: TListBoxItem; d: integer; begin if Sender is TListBoxItem then begin ListItem := Sender as TListBoxItem; FTextLayout.BeginUpdate; try // Инициализируем текстовый слой для корректного вычисления // размеров отображаемого текста FTextLayout.Font.Assign(ListItem.Font); FTextLayout.VerticalAlign := ListItem.VertTextAlign; FTextLayout.HorizontalAlign := ListItem.TextAlign; FTextLayout.WordWrap := ListItem.WordWrap; FTextLayout.MaxSize := TPointF.Create(ListItem.Width, TTextLayout.MaxLayoutSize.Y); FTextLayout.RightToLeft := false; FTextLayout.Text := ListItem.Text; finally FTextLayout.EndUpdate; end; d:=Round(FTextLayout.Height); try FTextLayout.Text:='m'; finally FTextLayout.EndUpdate; end; d:=d+Round(FTextLayout.Height); ListItem.Height:=d; end; end; Попробуйте поставить процедуру CalculateItemHeight на OnApplyStyleLookup1 балл
-
Прозрачная иконка приложения
Равиль Зарипов (ZuBy) отреагировал Kitty за вопрос
Возвращение компонента с кодом и дальнейшее его удаление - решило проблему. Спасибо.1 балл -
Прозрачная иконка приложения
Евгений Корепов отреагировал Равиль Зарипов (ZuBy) за вопрос
вот так NotificationCenter1.ApplicationIconBadgeNumber := 0;1 балл -
Вопрос Администратору! Какие планы на Россию?
Kitty отреагировал Камышев Александр за вопрос
Если до сих пор ленился разбираться с другими IDE, с чего бы теперь вдруг перестать лениться? Сидим плотно на rad studio и ждем вкусняшки, вроде поддержки линуха. А Си бросать никак нельзя, он велик и от него исходит сияние.1 балл -
Вопрос Администратору! Какие планы на Россию?
Равиль Зарипов (ZuBy) отреагировал Kitty за вопрос
Не думаю, что если нет плюшки, то надо бросать IDE. Во вторых сервис будет, об этом говорили эмбаркадеровцы на веб.бинарах С++.1 балл -
1 балл
-
Прозрачная иконка приложения
Kitty отреагировал Равиль Зарипов (ZuBy) за вопрос
попробуй через TNotificationCenter1.CancelAll;1 балл -
Вопрос Администратору! Какие планы на Россию?
Прикладной отреагировал Камышев Александр за вопрос
тогда уж соскакивать с rad studio на qt, если не хотят С++ поддерживать, там и линукс и андроид и библиотек куча до сих пор builder используется больше из-за старых проектов и наработок1 балл -
AirDroid - замечательная программка must have1 балл
-
Файлы созданные в Delphi программе на планшете не видны на компьютере
Евгений Корепов отреагировал Юрий Гусач за вопрос
Живут, и нас еще много и DOS мы пережили на очень много лет. Программирование на ассемблере под DOS, это был просто праздник какой-то! Sorry за оффтоп. Защиту проверю. В принципе направление поиска понятно, огромное спасибо, Буду разбираться1 балл -
[RX] [FGX] Описание версии 0.7.1.112
yury2012 отреагировал Brovin Yaroslav за тема
Ссылка на скачивание (Только для RAD Studio Berlin): fgx_0.7.1.112.zip Инструкция по установке: "Инструкция по установке набора компонентов FGX" FGX - Donate: QIWI: 4890 4941 7671 0929 Yandex.Money: 4100175510891 Описание Эта версия включает в себя следующий набор компонентов: Дизайнер итемов - дизайнер итемов. TfgToast - класс отображения быстрых сообщений TfgFlipView - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink TfgProgressDialog (UPDATED) - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED) - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet (UPDATED) - Аналог контекстного меню для мобильных платформ. TfgColorsPanel - Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents (UPDATED) - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений TfgActionSheet: Добавлены и реализованы события TfgActionSheet.OnShow, TfgActionSheet.OnHide, TfgActionSheet.OnItemClick. Добавлены свойство TfgActionSheet.Theme, позволяющее выбрать вариант темы: Auto - выбирает темную или светлую тему автоматически на основании текущего стиля; Light - использует светлую тему; Dark - темную Обновлен пример ActionSheetDemo. TfgApplicationEvents - добавлены новые событии: OnActivityResult (Андроид) - позволяет получить результаты/интенты из других приложений. OnFormBeforeShown - вызывает непосредственно до момент отображения формы OnFormActive - Вызывается, когда форма активируется. OnFormDeactivate - Вызывается, когда форма деактивируется OnFormCreate - Вызывается после создания экземпляра формы OnFormDestroy - Вызывается до разрушения формы OnScaleChanged - Вызывается, когда меняется скейл у формы. Например, при перетаскивании формы с одного экрана с одним скейлом на другой с другим скейлом (Больше актуально для OSX) TfgProgressDialog, TfgActivityDialog: Добавлены свойство Theme, позволяющее выбрать вариант темы: Auto - выбирает темную или светлую тему автоматически на основании текущего стиля; Light - использует светлую тему; Dark - темную. Общие изменения: Ассерты перенесены в скоп TfgAssert.1 балл -
Z-Order для 3D-объектов с ZWrite=false
Rusland отреагировал SerhioUser за вопрос
Так. Сорцекопание выявило, что за сортировку 3d-объектов отвечает класс TRenderingCompare и код находится в методе TCustomForm3D.RebuildRenderingList. procedure TCustomForm3D.RebuildRenderingList; var I: Integer; CompareFunc: TRenderingCompare; begin if Assigned(Children) and (Children.Count > 0) and (FUpdating = 0) then begin if Not Assigned(FRenderingList) then FRenderingList := TList<TControl3D>.Create; FRenderingList.Clear; for I := 0 to Children.Count - 1 do if (Children[i] is TControl3D) then FRenderingList.Add(Children[I] as TControl3D); CompareFunc := TRenderingCompare.Create; try FRenderingList.Sort(CompareFunc); finally CompareFunc.Free; end; end; end; Никаких условий - просто сортировка без вариантов. А вот код, собственно, проверки для сортировки: function TRenderingCompare.Compare(const Left, Right: TControl3D): Integer; var V1, V2: TPoint3D; begin Result := Integer(Left.GetMaterialForSorting) - Integer(Right.GetMaterialForSorting); if (Result = 0) and Left.ZWrite and Right.ZWrite then begin if (Left.Opacity < 1) and (Right.Opacity >= 1) then Result := 1 else if (Left.Opacity >= 1) and (Right.Opacity < 1) then Result := -1 else if (Left.Context <> nil) and (Right.Context <> nil) then begin V1 := TPoint3D(Left.AbsolutePosition) - TPoint3D(Left.Context.CurrentCameraMatrix.M[3]); V2 := TPoint3D(Right.AbsolutePosition) - TPoint3D(Left.Context.CurrentCameraMatrix.M[3]); Result := Trunc(V2.Length - V1.Length); end; end; end; Как видно если ZWrite = false, 3D-объекты НЕ СОРТИРУЮТСЯ и находятся в порядке создания на форме. Список находится в приватной переменной FRenderingList, к которой мы не можем получить доступ даже сделав наследника от TForm3D. Ладно. FRenderingList заполняется из списка TFmxChildrenList.Children, до которого мы можем достучаться. Но его массив Items[] доступен только на чтение. Посему повлиять на его порядок мы тоже не можем. Пока что единственный выход, который я нашел - подключать к проекту копию исходника "FMX.Forms3D.pas" и корректировать его под свои нужды. (Под Mac OS X такой финт не работает - берется стандартный "FMX.Forms3D.pas") А ведь достаточно было бы сделать RebuildRenderingList виртуальной и хотя-бы в protected секции. Ну а лучше, думаю, было бы кустомизировать TRenderingCompare класс. Может кто знает лучший вариант?1 балл -
Ответ косвенно был дан в теме Автоматический переход на вторую строку TLabel Поэтому на базе этого ответа его легко модифицировать для этой задачи. Идея простая в момент загрузки стиля и изменения размеров TListBoxItem, вычислять высоту занимаемого текста и на основании этих данных переопределять высоту итема. Практика 1. Для определения размеров текст используем TTextLayout. Лучше создавать объект этого класса один раз. Поскольку в нашем случае он будет использоваться часто. procedure TForm1.FormCreate(Sender: TObject); begin // FTextLyout: TTextLayout - поле формы FTextLyout := TTextLayoutManager.DefaultTextLayout.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin FreeAndNil(FTextLyout); end; 2. Пишем свой обработчик, который мы будем вызывать по достижению двух событий: Изменение размера TListBoxItem. В этом случае нужно перевычислить высоту итема. При загрузки нового стиля итема, нам нужно заново вычислить высоту итема. Поскольку стиль может содержать новые настройки отображения текста (шрифт, размер и тд.) Я назвал это событие CalculateItemHeght: procedure TForm1.CalculateItemHeight(Sender: TObject); var ListItem: TListBoxItem; begin if Sender is TListBoxItem then begin ListItem := Sender as TListBoxItem; FTextLyout.BeginUpdate; try // Инициализируем текстовый слой для корректного вычисления // размеров отображаемого текста FTextLyout.Text := ListItem.Text; FTextLyout.MaxSize := TPointF.Create(ListItem.Width, 1000); FTextLyout.WordWrap := ListItem.WordWrap; FTextLyout.Font := ListItem.Font; FTextLyout.HorizontalAlign := ListItem.TextAlign; FTextLyout.VerticalAlign := ListItem.VertTextAlign; finally FTextLyout.EndUpdate; end; // Получаем высоту текста при текущих настройках итема ListItem.Height := FTextLyout.Height; end; end; Обратите внимание, что этот код работает для горизонтальной ориентации TListBoxItem и обычного TListBoxItem итема без картинок. Поэтому я для упрощения понимания кода, принимаю за ширину текста ширину самого итема. Но как вы понимаете, текст в итеме имеет еще свои отступы и может располагаться, например, справа от изображения. В этом случае этот в этот код нужно будет добавить определение текущих размеров стилевого объекта текста, отвечающего за вывод текста в TListBoxItem. Но в вашем примере этого не нужно. 3. Вешаем наш обработчик на два события каждого итема TListBoxItem.OnResize и TListBoxItem.OnApplyStyleLookup. Результат1 балл