Лидеры
Популярный контент
Показан контент с высокой репутацией 25.12.2015 во всех областях
-
Вариантов много: 1. Как ребята сказали выше - это использование собственного шрифта в программе. Пример уже приводился. И использование готового компонента из примеров. Используя свой шрифт, можно делать и разными цветами. И с "бордюром". И т.д. Единственное - будет сложно получить какие-то сложные эффекты. 2. Использование картинок: Последовательность именно в таком порядке. Следовательно - меняя ширину "синей" картинки, Вы получите плавную "заливку" "звездочек". Тут вариантов намного больше чем в других случаях. Можно делать с анимацией, с любыми эффектами... Можно и компонент свой написать и в первом случае (со шрифтом) и во втором.. Вообще в голове крутится много вариантов. Просто Вам нужно решить, что для Вас важнее - память? скорость? универсальность? простота? И конечный результат.4 балла
-
Когда я перетаскивал компонентов было проблема когда мышка двигалось очень быстро компонент которая я передвигал отставал от мышки. Что бы избавиться от этого нужно AutoCapture этого компонента сделать true. Тогда пока мышка не отпущена фокус остается на этом компоненте. Пример: Добавляем в форму один компонент (в моем случае Rectangle). В конструкторе формы запишем: __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { Rectangle1->AutoCapture = true; isDown = false; } //--------------------------------------------------------------------------- Потом запишем на OnMouseDown, OnMouseMove, OnMouseUp запишем как обычно. void __fastcall TMainForm::Rectangle1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, float X, float Y) { oldX = X; oldY = Y; isDown = true; } //--------------------------------------------------------------------------- void __fastcall TMainForm::Rectangle1MouseMove(TObject *Sender, TShiftState Shift, float X, float Y) { if(!isDown) return; Rectangle1->Postion->Y = Rectangle1->Postion->Y + Y - oldY; Rectangle1->Postion->X = Rectangle1->Postion->X + X - oldX; } //--------------------------------------------------------------------------- void __fastcall TMainForm::RectangleMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, float X, float Y) { isDown = false; } //--------------------------------------------------------------------------- Вот и всё. Таким же образом можно перетаскивать форму и т.д,3 балла
-
unit uHelpers; interface uses FMX.Forms; type TForm_Helper = class helper for TForm procedure Minimize; procedure SendToTaskbar; end; implementation uses System.UITypes{$IFDEF MSWINDOWS}, Winapi.Windows, FMX.Platform.Win{$ENDIF}; { TForm_Helper } procedure TForm_Helper.Minimize; begin Application.MainForm:= nil; WindowState := TWindowState.wsMinimized; end; procedure TForm_Helper.SendToTaskbar; begin {$IFDEF MSWINDOWS} SetWindowLong(WindowHandleToPlatform(Handle).Wnd, GWL_EXSTYLE, GetWindowLong(WindowHandleToPlatform(Handle).Wnd, GWL_EXSTYLE) or WS_EX_APPWINDOW); {$ENDIF} end; end. у Вашей формы пишем type TForm1 = class(TForm) ........ protected procedure CreateHandle; override; private ........ public ...... end; implementation uses uHelpers; {$R *.fmx} {это позволит сворачивать ваше окно на панель задач, независимо от количества окон в приложении} procedure TForm1.CreateHandle; begin inherited CreateHandle; SendToTaskbar; end; а Minimize свернет все как надо, независимо от того - какое у него "состояние".2 балла
-
ListView Color Helper
Евгений (KeeperWorld) отреагировал Равиль Зарипов (ZuBy) за вопрос
Привет Всем! Много тем на форуме про раскраску 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.rar1 балл -
С помощью какого компонента проще всего реализовать Rating Bar?
Равиль Зарипов (ZuBy) отреагировал Axbor за вопрос
Можно использовать шрифт с звёздочкой и полузвездочкой потом написать несколько строчек кода. Звёздочки можно найти в шрифте FontAwesome.ttf. Думаю это не так уж и сложно...1 балл -
С помощью какого компонента проще всего реализовать Rating Bar?
Kitty отреагировал master webs за вопрос
в демках компонента ListView есть пример и тамже есть исходник1 балл -
Еще для перетаскивания формы или что угодно. Просто ставьте значение элемента с чем перетаскиваете AutoCapture = true; и всё. Как хотите так и двигайте. хоть быстро хоть медленно, то что вы перетаскиваете никогда не будет оставаться. Я тоже очень долго думал.1 балл
-
ListView Color Helper
amok отреагировал Равиль Зарипов (ZuBy) за вопрос
версия для Seatle ColorListView.zip весь код для отрисовки кастомного цвета 1) копируем себе и открываем FMX.ListView 2) Ctrl+F -> DrawItemsFill 3) Вставляем код // отрисовываем кастомный цвет........................................... // procedure TListViewBase.DrawItemsFill(const StartItem................. if TListViewItem(ListItem).Data['aUseCustomColor'].AsBoolean then FBrush.Color := TListViewItem(ListItem).Data['aCustomColor'].AsInteger; // ...................................................................... после if FAlternatingColors and (AltIndex mod 2 = 1) then FBrush.Color := FItemStyleFillAltColor; 4) Подключаем в своём проекте после стандартного FMX.ListView1 балл -
Сам спросил, сам ответил... В FMX.ListView в функции определения индекса итема по абсолютной координате клика на ListView почему-то заложено такое поведение ( возвращает индекс последнего элемента если клик пришелся на область, вертикальная координата которой больше чем начало последнего итема). Вот так исправляется: function TCustomListView.FindItemAbsoluteAt(ViewAt: Integer): Integer; var Left, Right, Pivot, Value: Integer; begin UpdateItemLookups; if Items.Count < 1 then Exit(-1); if ViewAt < 1 then Exit(0); { if ViewAt >= FHeightSums[FHeightSums.Count - 1] then Exit(FHeightSums.Count - 1); } if ViewAt > FHeightSums[FHeightSums.Count - 1] + GetItemHeight( GetItemCount - 1 ) then Exit(- 1);1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00