-
Постов
2 517 -
Зарегистрирован
-
Посещение
-
Победитель дней
264
Активность репутации
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Rad Studio
Запускаете проект с отладкой. Когда среда поменяет свой вид на Debug, перетаскиваете среду на требуемый монитор. Сохраняете выбранное расположение, путем нажатия на кнопку Save current desktop .png]
-
Равиль Зарипов (ZuBy) получил реакцию от Евгений (KeeperWorld) в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) получил реакцию от Rusland в Запрос на закрытие приложения при нажатии кнопки Назад
заменить незнаю можно или нет, но расположение зависит от самого девайса
-
Равиль Зарипов (ZuBy) отреагировална krapotkin в SuperObject vs JSON
работать с XSO гораздо удобнее, а уж читать код - вдвойне
и там разные штуки типа фильтров встроены
а еще при сериализации например в этом случае, XSO хорошо и удобно работает с TObjectList, а System.JSON - нет
и атрибуты при сериализации - крайне удобная вещь
и то, что EMRO никогда не переплюнет
автор исправляет замечания прямо за пару дней )))
-
Равиль Зарипов (ZuBy) отреагировална Andrew в Смещается заголовок формы на Android Intel
Нашел и устранил последнюю проблему планшета Lenovo TAB S8-50LC (CPU Intel Atom). Не исключаю, что подобная проблема возникает и на других устройствах.
При изменении ориентации устройства картинка поворачивается моментально. Возможно поэтому в 9 случаях из 10 программа не успевала на это правильно реагировать и форма в портретной ориентации отображалась как альбомная и наоборот. В общем, это выглядело крайне неприятно:
Нужно в процедуре "TPlatformAndroid.HandleAndroidCmd(ACmd: Int32);" найти строки:
===============
APP_CMD_CONFIG_CHANGED:
begin
FContentRectMightHaveChanged := ContentRectChangeRefreshCount; // <<---- !!!!
FOrientationMightHaveChanged := True;
Include(FAppCmdStates, TAndroidAppCmdState.ConfigChanged);
end;
===============
и в отмеченной строке умножить ContentRectChangeRefreshCount на 3 или 4: FContentRectMightHaveChanged := ContentRectChangeRefreshCount * 4;
После этой поправки и исправлений от "Magnum Labs" (см. выше) форма отображается правильно, сколько планшет не крути. На скорость работы приложения это никак не отразилось. Проверялось также на нескольких аппаратах Samsung.
Если будет интересно, в следующий раз расскажу как устранить проблему ненужного появления NavigationBar если кликнуть по TMediaPlayerControl или TWebBrowser, а также странной анимации появления/скрытия указанных компонент при изменении их свойства Visible. Проблема с NavigationBar касается устройств, у которых имеется SoftKey.
-
Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в SuperObject vs JSON
Привет Всем!
Решил поделится впечатлениями по работе с SuperObject'ом и родным JSON'ом
тест был файла с 2000+ объектами в JSON файле
структура файла была такая
{ "status":"OK", "last_id":"711", "objects":[ { "obj_id":"1", "obj_acc_id":"1", "obj_cat_id":"24", "obj_title":"13 магистраль", "obj_descr":"ЖК представляет собой комфортный дом, состоящий из 14 блок-секций (подъездов). Расположен в перспективном развивающемся районе по 13 Магистрали с удобным выездом как на левый берег, так и в старую часть города. Вблизи Жилого комплекса распологается новая школа, парк отдыха и культуры.", "obj_address":"ул. Мамышулы - 104, д. 16\/1", "obj_address2":null, "obj_url":"3fa07dd73be072b049529c80c7d74732", "obj_planet":"1", "obj_country":"1", "obj_region":"1", "obj_city":"292", "obj_lat":"51.141", "obj_lon":"71.4835", "obj_insert_dt":null, "obj_update_dt":null, "obj_editted":"0", "obj_updated":"0", "obj_deleted":"0", "obj_showed":"1", "obj_rating":"0", "obj_pro_top":"0", "obj_pro_selected":"0", "obj_pro_unix_dt":"0", "obj_partner":"0", "obj_parent_id":"0", "obj_has_child":"0", "obj_currency":"0" }, // тут далее 2000+ объектов ] } SuperObject Время выполнения: ~01:393
JSON родной Время выполнения: ~01:690
разница не особо ощутима, тем более если будет меньше объектов
JSON родной
function JSONParse(const aJSONData: string; const aMemo: TMemo): boolean; var aJSValue: TJSONValue; aJSObject, aJSObjArr: TJSONObject; aJSArray: TJSONArray; I: integer; begin Result := false; aJSValue := TJSONObject.ParseJSONValue(aJSONData) as TJSONValue; if Assigned(aJSValue) then begin aJSObject := aJSValue as TJSONObject; aMemo.Lines.Add('status: ' + aJSObject.GetValue('status').Value); if aJSObject.GetValue('status').Value = 'OK' then begin Result := true; if Assigned(aJSObject) then begin aJSArray := aJSObject.GetValue('objects') as TJSONArray; if Assigned(aJSArray) then begin Result := true; aMemo.Lines.Add('last_id: ' + aJSObject.GetValue('last_id').Value); aMemo.Lines.Add('count: ' + aJSArray.Count.ToString); for I := 0 to aJSArray.Count - 1 do begin aJSObjArr := aJSArray.Items[I] as TJSONObject; if Assigned(aJSObjArr) then begin aMemo.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' + aJSObjArr.GetValue('obj_cat_id').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_title').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_descr').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_address').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_url').Value); end; end; end; end; end; aJSValue.Free; end; end; SuperObject
function JSONSOParse(const aJSONData: string; const aMemo: TMemo): boolean; var xObject: ISuperObject; xCount, I: integer; sfmt: string; begin Result := false; xObject := SO(aJSONData); aMemo.Lines.Add('status: ' + xObject['status'].AsString); if xObject['status'].AsString = 'OK' then begin Result := true; xCount := xObject['objects'].AsArray.Length; aMemo.Lines.Add('count: ' + xCount.ToString); aMemo.Lines.Add('last_id: ' + xObject['last_id'].AsInteger.ToString); for I := 0 to xCount - 1 do begin aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_acc_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_cat_id"'].AsInteger.ToString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_title"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_descr"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_address"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_url"'].AsString); end; end; end; Разница ощутима когда пишешь код, SO намного легче читать
Подробней почитать и скачать SO
-
Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) отреагировална krapotkin в Кодировка под Android
если честно, не хочется подсказывать как не надо делать
лучше подсказывать, куда смотреть для решения задач хранения структурированных данных
например для ini файла можно вот
или
воспользоваться https://github.com/onryldz/x-superobject
там все понятно на примерах и очень удобно
-
Равиль Зарипов (ZuBy) получил реакцию от amok в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Описание TfgToast - Быстрые уведомления
Описание:
Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения Поддерживаемые платформы: Android, iOS Демо проект: Samples\ToastsDemo\ToastsDemo.dproj Доступен с версии: RX (R100) Возможности:
Несколько быстрых способов отображения уведомления: TfgToast.Show(Message) - только текст TfgToast.Show(Message, Icon) - текст и картинка TfgToast.Show(Message, Duration) текст + настройка длительности отображения TfgToast.Show(Message, Duration, Icon) - текст + картинка + длительность отображения Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor) Доступно редактирование цвета сообщения (TfgToast.MessageColor). Возможность добавить к сообщению иконку (TfgToast.Icon) Доступно редактирование длительности отображения уведомления (TfgToast.Duration) Возможность менять глобальные параметры отображения всех тостов в рамках приложения (TfgToast.DefaultBackgroundColor, TfgToast.DefaultMessageColor и TfgToast.DefaultPadding) Примеры вызова:
// Быстрое отображение, только текст TfgToast.Show('Message'); // Быстрое отображение, текст + картинка TfgToast.Show('Message', Bitmap); // Настраиваемое отображение var Toast: TfgToast; begin Toast := TfgToast.Create(EditToastMessage.Text, TfgToastDuration(ComboBoxDurationType.ItemIndex)); try if SwitchShowIcon.IsChecked then Toast.Icon.Assign(Image1.Bitmap); Toast.MessageColor := ColorComboBoxMessage.Color; Toast.BackgroundColor := ColorComboBoxBackground.Color; Toast.Show; finally Toast.Free; end; end; Скриншоты:
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Семисегментный индикатор
Добрый день, Юрий,
Красота. Хороший компонент. Возможно вам пригодятся пара замечаний по портированию с VCL на FMX, которые помогу вам сделать ваш компонент еще лучше.
Когда вы выполняете отрисовку в перекрытом методе TControl.Paint, не надо вызывать BeginScene и EndScene. Так как этими методами руководит сцена, обычно это форма.
procedure TSeparator.Draw(px1, py1, px2, py2: Single; pColor: TAlphaColor; Opac: Single); var MyRect: TRectF; begin MyRect := TRectF.Create(px1, py1, px2, py2); with Canvas do begin [b] BeginScene; // <!--- Не нужно[/b] Fill.Kind := TBrushKind.Solid; Fill.Color := pColor; FillRect(MyRect, 0, 0, AllCorners, Opac); [b]EndScene; [/b][b]<!--- Не нужно[/b] end; Canvas end; Дополнительно:
1. Инициализацию точек для полигона можно сделать сразу на прямую.
Было:
// Установить точки, определяющие многоугольник p1 := TPointF.Create(px1, py1); p2 := TPointF.Create(px2, py2); p3 := TPointF.Create(px3, py3); p4 := TPointF.Create(px4, py4); p5 := TPointF.Create(px5, py5); p6 := TPointF.Create(px6, py6); // Создать полигон SetLength(MyPolygon, 6); MyPolygon[0] := p1; MyPolygon[1] := p2; MyPolygon[2] := p3; MyPolygon[3] := p4; MyPolygon[4] := p5; MyPolygon[5] := p6; Стало:
MyPolygon := [TPointF.Create(px1, py1), TPointF.Create(px2, py2), TPointF.Create(px3, py3), TPointF.Create(px4, py4), TPointF.Create(px5, py5), TPointF.Create(px6, py6)]; При этом для динамических массивов перед присваивание не нужно вызывать функцию SetLength. Экономия места и 6 переменных.
2. Сравнение вещественных чисел должно осуществляться при помощи функции System.Math.SameValue. Это касается всех мест в этом юните. В противном случае у вас могут быть фантомные ложные срабатывания условий, которые найти будет сложно.
Было:
procedure TSevSeg.SetCellSpace(const Value: Single); begin if Value = CellSpace then exit; FCellSpace := Value; end; Стало:
procedure TSevSeg.SetCellSpace(const Value: Single); begin if SameValue(Value, CellSpace) then exit; FCellSpace := Value; end; -
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в [RX] [FGX] Описание версии 0.7.0.69
Ссылка на скачивание (Только для RAD Studio RX): fgx_0.7.0.69.zip
Инструкция по установке: "Инструкция по установке набора компонентов FGX"
Описание
Эта версия включает в себя следующий набор компонентов:
Дизайнер итемов (NEW) - дизайнер итемов. TfgToast (NEW) - класс отображения быстрых сообщений TfgFlipView (UPDATED) - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink TfgProgressDialog (UPDATED)- Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED)- компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet - Аналог контекстного меню для мобильных платформ. TfgColorsPanel (UPDATED)- Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений
TfgActionSheet: Исправлена ошибка не позволяющая использовать действия TTakePhotoFromCameraAction и TTakePhotoFromLibraryAction под iOS. Исправлена ошибка приводящая к AV, если экшен не имел обработчика OnExecute (Android, iOS) Исправлен внешний вид под iOS. Раньше, если TfgActionSheet не содержал заголовка, сверху система все равно оставляла под него пустое место. Теперь если заголовка нет, то место не выделяется. Обновлен пример ActionSheetDemo TfgProgressDialog, TfgActivityDialog: Добавлено свойство Cancellable, позволяющее сделать диалог отменяемым по нажатию на экран или кнопку Back. Добавлено событие OnCancel, вызываемое, если пользователь отменил диалог. Обновлен пример. Теперь все операции выполняются в отдельном потоке, асинхронно. Добавлен метод IsShown, позволяющий определить, показан диалог или нет Добавлено свойство TfgOrigressDialog.Max, позволяющее указать максимальное значение прогресса. Улучшена генерация имени действия. Если прикрепляется системный экшен TSysCommonAction, то имя берется из CustomText TfgFlipView: Добавлено пролистывание при помощи жестов. Добавлена опция ShowNavigationButtons, позволяющая скрыть кнопки смены слайдов Добавлено событие OnImageClick, позволяющее отследить нажатие пользователем на слайд Обновлен пример для корректной работы на всех платформах. Исправлена ошибка слайдшоу, приводящая к невозможностью контролировать и менять параметры слайдшоу. Изменен курсор на руку TfgColorsPanel, TfgGradientEdit: Добавлены пропущенное свойство Size в секции published. -
Равиль Зарипов (ZuBy) получил реакцию от Alex7wrt в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) получил реакцию от Pax Beach в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) получил реакцию от Martifan в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) получил реакцию от master webs в ListView Color Helper
Привет Всем!
Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
Вот что получилось
LV_Helper.zip ColorListView.zip
Доступно для Seattle
ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
Равиль Зарипов (ZuBy) отреагировална Vitaldj в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.
Сообщение для клиентов и партнеров от IDERA
Здравствуйте,
Я Ренди Якобс, CEO компании IDERA, Inc. Вы, скорее всего, видели новости в прессе о приобретении Embarcadero компанией IDERA. Вот ссылка на эту новость, если вы еще ее не видели.
Мы приглашаем Вас присоединиться к сообществу IDERA и продолжить успешную историю лидера рынка продуктов для разработчиков и специалистов по базам данных. Я хочу представить компанию IDERA и объяснить, почему мы в восторге стать владельцами Embarcadero
IDERA работает более, чем с 10000 клиентами по всему миру, предоставляя им решения для мониторинга производительности баз данных, приложения и технологическую инфраструктуру. Мы уверены, что специалисты по базам данных имеют определяющее влияние на общую технологическую эффективность и оцениваем наш подход, как ориентированный на данные. Наши продукты позволяют быстро идентифицировать и исправить проблемы с производительностью по всему стеку используемых технологий, при этом обеспечивая уникальные возможности поддержки безопасности и согласованности.
Я был назначен CEO в 2013 году и с этого времени я всегда был сфокусирован на долгосрочных отношениях с заказчиками, основой которых были инновационность, качество и простота использования продуктов. Я верю в то, что успешные софтверные компании всегда ориентированы на успех клиента, обеспечивая:
Программное обеспечение высокого качества – полное тестирование кода, с использованием автоматической генерации тестов Простоту в использовании – интуитивно понятные интерфейсы, особенно процесс установки/обновления Скорость работы приложений – минимальные задержки, хорошую масштабируемость, аналитику в реальном времени Клиенты всегда будут довольны производителями ПО, соответствующего этим критериям. Выпуск продуктов, сфокусированных на приоритетных инновациях и возможностях, по надежному графику, улучшает взаимоотношения с клиентами, являясь основой их успеха. IDERA инвестирует в технологии по этому принципу, и этот принцип будет также распространяться на продукты Embarcadero.
Как известно, Embarcadero имеет две отдельные линейки продуктов: 1) продукты для кроссплатформенного моделирования, администрирования и оптимизации баз данных и 2) решения для разработки приложений для множества платформ. За эти годы количество клиентов Embarcadero достигло 10000, а количество пользователей исчисляется миллионами, включая практически полный список Global 2000. Embarcadero имеет представительства по всему миру и партнеров практически в каждой крупной стране.
Продукты Embarcadero для моделирования, администрирования и управления производительностью баз данных отлично дополняют продукты IDERA с минимальным пересечением в функциональности и назначении. После объединения обеих компаний, мы сможем предложить специалистам в области данных исчерпывающее решение для управления, использования и защиты данных для любой компании. Мы будем благодарны обратной связи от клиентов по интеграции этих продуктов, чтобы быть уверенными в соответствии нашим принципам простоты использования, качества и масштабируемости.
Что касается средств разработки Embarcadero, то это для нас новая возможность. На нескольких форумах разработчиков мне были заданы прямые вопросы относительно будущего этих продуктов. Я хочу подчеркнуть, что мы воспринимаем эти продукты как огромную ценностью. Так как приложения распространяются сквозь платформы и другие каналы, потребность в инструментах для создания следующих поколений приложений будет расти. Такие технологии, как Интернет вещей или использование в приложениях маячков, не существовали всего несколько лет назад. Сегодня уже каждый видит возможность создания приложений для устройств, которые упрощают и улучшают жизнь людям. Мы верим в то, что лидер рынка средств разработки должен ориентироваться на разработчиков и отличаться скоростью выпуска новых решений, простотой использования и темпами изменений.
В связи с этим, мы сформировали новую команду, которая будет сфокусирована только на средствах разработки Embarcadero. Их задача – обеспечить темпы роста за счет инноваций и возможностей M&A. Мой коллега, Атанас Попов, возглавил данное направление. Атанас будет уделять внимание росту бизнеса и инвестициям для привлечения еще большего количества клиентов. Мы считаем, что средства разработки имеют большой потенциал и мы с нетерпением ждем работы с вами, чтобы расставить приоритеты для наших инвестиций.
Embarcadero потратила годы на построение надежной партнерской сети. Многие компании мечтают о создании подобной сети партнеров, но потратив время и силы разочаровываются. Но если упорство компании позволило это сделать, результаты и потенциал будут значительны. Embarcadero работает с десятками глобальных партнеров. Для поддержания здоровой партнерской сети требуются больше отличных продуктов и стабильный интерес к приобретению со стороны потенциальных клиентов. Мы собираемся не только познакомить партнеров Embarcadero с продуктовым портфелем IDERA, но и вовлечь маркетинговую команду IDERA в диалог с клиентами. Мы полагаем, что умеренные изменения и инвестиции расширят пространство возможностей для наших партнеров, работающих с клиентами по всему миру.
C точки зрения взаимодействия с заказчиками, мы основываемся на публикации планов выпуска продуктов для активных заказчиков и поддержку диалога с теми, кто хочет внести свой вклад. Мы верим, что сообщества пользователей приносят пользу, и будем развиваться соответственно. Мы также полагаем, что это изменит возможности инноваций и увеличит ценность для наших пользователей. Мы остаемся верны этим принципам стремимся к работе с вами для каждодневного улучшения, и чтобы помочь вам получить ожидаемое.
Если у Вас есть вопросы, присылайте их, пожалуйста, на randy.jacops@idera.com.
При наличии 20 000 клиентов, практически невозможно поддерживать прямой диалог с каждым, но мы ответим на вопросы. Что более важно, мы будем присылать Вам «дорожные карты», информацию о вебинарах и другой контент, который сможет Вас заинтересовать. Я призываю Вас принимать участие во всех мероприятиях, чтобы отношения стали взаимно полезными.
Спасибо за вашу работу! Надеемся на дальнейшее сотрудничество!
С уважением,
Randy Jacops
CEO, IDERA, Inc.
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.
Я так скажу, пока ничего не ясно, что да как. И даже в этой статье кроме упоминания о продажах ничего нет конкретного. Я имею в виду про развитие продуктов.
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?
Какая у вас версия среды?
По идеи ничего больше не нужно:
Да, это работает только для Windows, для остальных платформ посмотрите: Средства логирования в FireMonkey
-
Равиль Зарипов (ZuBy) отреагировална Tera в Семисегментный индикатор
Компоненты TSevSeg - семисегментный индикатор и TSeparator - разделитель.
Переписал компоненты с VCL. Может, кому пригодится. Пример использования:
Для разового использования можно просто подключить к проекту как модуль.
SevenSegment.zip
-
Равиль Зарипов (ZuBy) получил реакцию от Kitty в [TidIPWatch] Узнаём локальный IP
можно использовать вот это
-
Равиль Зарипов (ZuBy) отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?
Еще в FMX достаточно использовать Log.d. При этом сообщения будут выводиться в окно IDE Messages.
-
Равиль Зарипов (ZuBy) получил реакцию от zairkz в Реализовать свою маску в Edit
как напишете такой обязательно поделитесь))
-
Равиль Зарипов (ZuBy) получил реакцию от dnekrasov в Реализовать свою маску в Edit
uses maskUtils
Edit1.Text := MaskDoFormatText('000.000.000.000;#0',Edit1.Text, #0);