Перейти к содержанию
Fire Monkey от А до Я

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      11

    • Постов

      2 124


  2. rareMax

    rareMax

    Пользователи


    • Баллы

      11

    • Постов

      553


  3. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      5

    • Постов

      2 517


  4. TrueCrypt

    TrueCrypt

    Пользователи


    • Баллы

      2

    • Постов

      26


Популярный контент

Показан контент с высокой репутацией 17.03.2016 во всех областях

  1. Давненько еще нашел этот пак компонентов, но не было времени ознакомиться с ним ближе. Сегодня посмотрел демки - думаю нашему сообществу понравится эта библиотека. Описание оригинальное с гитхаба. Как скачать: GetIT(нет лицензии на студию? смотрим ниже) Прямая ссылка на последнюю версию С помощью GIT-клиента: https://github.com/gmurt/KernowSoftwareFMX.git .Можете либо встроенным в делфи, либо своим любимым. Могу посоветовать SourceTreeApp. Рекомендую именно этот способ - вам не придется постоянно перекачивать компонент для обновления. Достаточно в приложении нажать одну кнопку - и компонент обновился. Kernow Software FMX Components for XE7, XE8 & XE10 Seattle. (May work with earlier versions but untested) Firemonkey Slide menu, ListView and Segment buttons for Delphi. Inherits from a non-visual component to keep things simple. Includes demo with source. Demo App also available on app store: https://itunes.apple.com/gb/app/kscomponents-reference/id1031179701?mt=8 Feel free to support the components with a donation ;-) If you'd like to support the ksComponents project, you can do so at the following link ;-) http://www.kernow-software.co.uk/?page_id=397 TksTableView Cached table view provides native performance regardless of the number of text/items/graphics added support for embedded switches support for embedded buttons support for embedded segment buttons Canvas style methods for adding text/shapes/images Built-in support for Image, Title, SubTitle, Detail and Accessory elements Check list option support - single check or multi check Custom check mark colours Image cropping (square, round rect or circle) "Indicator" colours - add colour indicators to each row "Sticky" headers TksSlideMenu set menu background colour set selected item colour set font colours add images to items fade background left or right aligned menus inherites from non-visual Tcomponent for quick integration into existing projects uses bitmap caching for optimised performance TksSegmentButtons segment button component support for iOS style badges TksFormTransition component for animating transitions between forms TksTabControl Tab control component with support for different colours/themes Large number of built-in icons Support for iOS style badges TksNetHttpClient enhanced http client with ASync Get method TksTileMenu simple but effective main menu component TksChatView component for building iOS style chat applications TksSpeedButton TSpeedButton descendant with support for iOS style badges Any suggestions for updates are welcome :-)
    6 баллов
  2. Над этим я пока работаю. Так как по дефолту такой настройки нету. Буду думать, как сделать сортировку по умолчанию по дате.
    3 балла
  3. Картинку можно указать двумя способами: Способ 1 У каждой вкладки TTabControl есть свойство TTabItem.CustomIcon позволяющее загрузить картинку на вкладку. Способ 2. С использование TImageList Если картинки располагаются в TImageList компоненте, то нужно вначале привязать TImageList к TTabControl.Images. А затем выбрать индекс картинки у вкладки TTabItem.ImageIndex.
    2 балла
  4. Если у вас не самоцель загружать именно исходные картинки, то можно присваивать просто номер изображения. // настройка ListView если хотите в Run-Time ListView2.Images := ImageList1; // Указываем коллекцию изображений // которая будет использоваться. ListView2.ItemAppearanceName := TAppearanceNames.ImageListItem; ListView2.ItemAppearanceObjects.ItemObjects.Image.Visible := True; ... Item := ListView2.Items.Add; // Добавляем новый пункт если надо if (Item.Objects.ImageObject <> nil) then begin Item.Objects.ImageObject.ImageIndex := Item.Index; // Присваиваем номер изображения // из коллекции изображений Item.Text := Format('Item with ImageIndex = %d', [Item.Objects.ImageObject.ImageIndex]); end; А вот тут пример загрузки из файла в ImageList
    2 балла
  5. Так, я поясню. Нельзя работать с UI компонентами в не главном UI потоке. Отсюда у вас и ошибки через раз. Банально по причине того, что когда вы изменяете состояние UI компонента, это может привести к перерисовке. А в свою очередь процесс отрисовки может наложиться с очередной работой с этим компонентом из другого потока. Отсюда всякие AV в главной процедуре отрисовки.
    2 балла
  6. я пользуюсь первым вариантом, создаю такого плана record и использую его для разных вариантов отрисовок TmyListViewDrawer = record procedure PaintBitmaps(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); // динамическая отрисовка картинок procedure PaintHorzBitmaps(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); // динамическая отрисовка картинок (горизонтально LV) procedure RestoranDrawer(const Sender: TObject; const AItem: TListViewItem); // отрисовка плиточки // настройка LV class procedure RestoranConfig(aLV: TListView); static; class procedure BludoConfig(aLV: TListView); static; class procedure MenuConfig(aLV: TListView); static; // ... class procedure RestoranAdd(aLV: TListView; const aTitle, aLocation, aURL: string; const aDistance, aRating: Real; const aMinPrice, aDeliveryPrice, aDeliveryTime: integer; const aSale: Boolean); static; // добавление Itema end; плюс в том что можно потом копировать в другие проекты, просто дополняя. а не сидеть и настраивать руками
    2 балла
  7. Кнопку добавил. Теперь при прокручивании вниз, слева появляется кнопка по всей высоте сайта для прокрутки контента вверх
    2 балла
  8. Для начала - я бы попробовал обновить инди. Та версия, что поставляется с Делфи - немного отстает. Постоянно выходят багфиксы. Скачать последнюю версию можно с помошью SVN клиента(ваш любимый либо встроенный в ИДЕ): https://svn.atozed.com:444/svn/Indy10 Имя: Indy-Public-RO пароль пустой оставь
    2 балла
  9. DeviceInfo - модуль для получения информации о девайсе Android || Windows || IOS || MAC OS Intel планшет для Андроида нужно включить разрешения (permission) Ссылка на GitHub
    1 балл
  10. kami

    Tedit от TMS

    Да никто вас не отфутболивает. Но, с учетом того, что TMS-ом среди участников форума (вроде как) пользуется не так уж много народа - вряд ли стоит ожидать глобального понимания проблемы. Тем более - если она не воспроизводится у других. Кроме того - если не получается создать минимальный воспроизводимый пример, вряд ли смогут помочь и сами TMS-овцы, и тем более - Embarcadero-вцы. Судя по исходникам TMS - начиная с XE7 они используют свою реализацию для Edit-а, основанную на TStyledControl. И эта реализация по беглому взгляду не должна отличаться на Seattle и Seattle Upd1. Поэтому в решении проблемы поможет только MVCE - Minimal, Complete, and Verifiable example
    1 балл
  11. RE: Andrey Efimov Под Android. Да, именно запись.
    1 балл
  12. Brovin Yaroslav

    Обновление форума

    Специально запретил вставлять картинки по ссылке. Поскольку при удалении картинки с другого хостинга, в сообщение будет битая ссылка. Добавлять картинки как обычные вложения, а потом вставлять в тему сообщения. Так есть 100% гарантия, что изображение останется на нашем хостинге.
    1 балл
  13. что за код находится в обработчиках OnClick этих кнопок? есть подозрение что программист делает не то)
    1 балл
  14. TrueCrypt

    Обработка WM_GETMINMAXINFO

    Более гибкий вариант, работающий как под х86, так и под х64: unit Forms.Persistent; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, {$IF Defined(WIN32) OR Defined(WIN64)} System.Generics.Collections, Winapi.Windows, FMX.Platform.Win, Winapi.Messages, {$ENDIF} FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TfrmPersistent = class(TForm) {$IF Defined(WIN32) OR Defined(WIN64)} private class var Callbacks: TDictionary<HWND, Pointer>; class constructor ClassCreate; class destructor ClassDestroy; protected procedure CreateHandle; override; procedure DestroyHandle; override; {$ENDIF} end; implementation {$R *.fmx} {$IF Defined(WIN32) OR Defined(WIN64)} { TfrmPersistent } function WindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; var frm: TCommonCustomForm; oldProc: Pointer; begin frm := FindWindow(hwnd); if Assigned(frm) and (uMsg = WM_GETMINMAXINFO) then begin with PMinMaxInfo(LParam)^.ptMinTrackSize, frm do begin X := 950 + Width - ClientWidth; Y := 500 + Height - ClientHeight; end; Result := 0; end else if TfrmPersistent.Callbacks.TryGetValue(hwnd, oldProc) and Assigned(oldProc) then Result := CallWindowProc(oldProc, hwnd, uMsg, wParam, lParam) else Result := DefWindowProc(hwnd, uMsg, wParam, lParam); end; procedure TfrmPersistent.CreateHandle; var wnd: HWND; begin inherited CreateHandle; wnd := FormToHWND(Self); if wnd <> 0 then begin Callbacks.Add(wnd, Ptr(GetWindowLongPtr(wnd, GWLP_WNDPROC))); SetWindowLongPtr(wnd, GWLP_WNDPROC, NativeInt(@WindowProc)); end; end; procedure TfrmPersistent.DestroyHandle; var wnd: HWND; oldProc: Pointer; begin wnd := FormToHWND(Self); if (wnd <> 0) and Callbacks.TryGetValue(wnd, oldProc) then SetWindowLongPtr(wnd, GWLP_WNDPROC, NativeInt(oldProc)); inherited DestroyHandle; end; class constructor TfrmPersistent.ClassCreate; begin Callbacks := TDictionary<HWND, Pointer>.Create; end; class destructor TfrmPersistent.ClassDestroy; begin Callbacks.Free; end; {$ENDIF} end. Похоже, что при компиляции в х64, вложенные процедуры как-то хитро компилируются, в итоге либо кривой стек возникает, либо еще что, поэтому пришлось колбек вынести в глобальный метод.
    1 балл
  15. rareMax

    Обновление форума

    Я как то предлагал поставить плавающую кнопку "вверх". Прошу и в этот раз. Сейчас это более актуально, в связи с тем что сайт "пожирнее" стал. Приходится еще больше колесом крутить..
    1 балл
  16. Пути Господне не исповедимы!
    1 балл
  17. Какой-то глюк - проблема самоустранилась через некоторое время. Когда уже надежду всю потерял. Ничего не менял и не перепрописывал. Просто иконки стали появляться и все. Всем спасибо!
    1 балл
  18. TrueCrypt

    Обработка WM_GETMINMAXINFO

    Благодарю за ответ, пытался исходник поредактировать — винда на права доступа ругалась. Сделал так: unit Forms.Persistent; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, {$IF Defined(WIN32) OR Defined(WIN64)} Winapi.Windows, FMX.Platform.Win, Winapi.Messages, {$ENDIF} FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TfrmPersistent = class(TForm) {$IF Defined(WIN32) OR Defined(WIN64)} private FHwnd: HWND; FOldWndProc: LONG_PTR; protected procedure CreateHandle; override; procedure DestroyHandle; override; {$ENDIF} end; implementation {$R *.fmx} {$IF Defined(WIN32) OR Defined(WIN64)} { TfrmPersistent } procedure TfrmPersistent.CreateHandle; function WindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; var frm: TCommonCustomForm; begin frm := FindWindow(hwnd); Assert(frm.InheritsFrom(TfrmPersistent)); if Assigned(frm) then begin if uMsg = WM_GETMINMAXINFO then begin with PMinMaxInfo(LParam)^.ptMinTrackSize, frm do begin X := 950 + Width - ClientWidth; Y := 500 + Height - ClientHeight; end; Result := 0; end else Result := CallWindowProc(Ptr(TfrmPersistent(frm).FOldWndProc), hwnd, uMsg, WParam, lParam); end else Result := DefWindowProc(hwnd, uMsg, wParam, lParam); end; begin inherited CreateHandle; FHwnd := WindowHandleToPlatform(Handle).Wnd; FOldWndProc := GetWindowLongPtr(FHwnd, GWL_WNDPROC); SetWindowLongPtr(FHwnd, GWL_WNDPROC, NativeInt(@WindowProc)); end; procedure TfrmPersistent.DestroyHandle; begin Assert(FHwnd <> 0); SetWindowLongPtr(FHwnd, GWL_WNDPROC, FOldWndProc); inherited DestroyHandle; end; {$ENDIF} end. Может кому пригодится.
    1 балл
  19. Можно помучаться с TListView, но я остановился на TPresentedScrollBox и стилизованных Label'ах (облачки сообщений, под разные scale на png 9patch), скорость скролла хорошая, плюс есть боунсы и тд. Приложил исходники проекта, также в архиве отдельно chat.style procedure TForm2.ChatUp(UsID: integer; LastId: integer; CText: string); var Labb: TLabel; Marg: Single; LT: TLayout; begin LT := TLayout.Create(PR); LT.Parent := PR.Content; LT.Margins.Top := 2; LT.Align := TAlignLayout.Top; LT.Position.Y := PR.ContentBounds.Height + 50; Marg := PR.Width * 0.20; Labb := TLabel.Create(PR); Labb.Parent := PR; Labb.Align := TAlignLayout.Top; Labb.AutoSize := True; Labb.WordWrap := True; Labb.TextSettings.WordWrap := True; if UsID = 0 then begin Labb.Margins.Left := Marg; Labb.Margins.Right := 4; Labb.TextAlign := TTextAlign.Trailing; Labb.StyleLookup := 'labelchat_green'; end else begin Labb.Margins.Right := Marg; Labb.Margins.Left := 4; Labb.TextAlign := TTextAlign.Leading; Labb.StyleLookup := 'labelchat_white'; end; Labb.NeedStyleLookup; Labb.Text := ' ' + CText + ' '; LT.Height := Labb.Height + 4; Labb.Parent := LT; if UsID = 0 then Labb.Align := TAlignLayout.Right else Labb.Align := TAlignLayout.Left; end; Первые признаки шизофрении: Chat.zip
    1 балл
  20. Я понял, постараюсь сделать такой же блок, который был в предыдущей версии форума.
    1 балл
  21. Обновленная версия, кое что подправил теперь нет ошибки на IOS 64 bit результат (Android, IPhone 4S, IPhone 6, MacOS Yosemite на виртуалке, Windows 10) Добавлена функция isGPSActive [ANDROID], определяет включен ли сенсор на устройстве DeviceInfo.zip
    1 балл
  22. Andy

    Обновление форума

    Если есть возможность в мобильной версии форума "Последние темы" поднять в начало страницы. Думаю дл многих актуально...
    1 балл
  23. sviat9440

    Проблемы с отрисовкой

    Уже понял... ))) все ок!))
    1 балл
  24. Честно говоря, никогда не разбирался с AES'ом. Я раньше юзал ГОСТ 28147-89. Сам его реализовал на делфях со вставками асемблера, ибо без него скорость шифрования и расшифрования была катастрафически мала(со вставками скорость выросла на 2 или 3 порядка, точно не помню). Результат всегда получался одинаковый при шифровании одного и того же содержимого и одного и того же ключа. Что там в этом AES'е х... фиг его знает.
    1 балл
  25. xenon54

    [TidHTTP] Не срабатывает Timeout

    Помнится я целый день на гугл потратил в поисках этого... А насчет того что быстрей срабатывает чем установлен таймаут, что-то тут не то, я ради интереса засекал сегодня, отрабатывает четко по таймауту.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...