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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      4

    • Постов

      2 124


  2. Martifan

    Martifan

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


    • Баллы

      1

    • Постов

      396


  3. Dzuyba

    Dzuyba

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


    • Баллы

      1

    • Постов

      5


  4. DirtyBorov

    DirtyBorov

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


    • Баллы

      1

    • Постов

      71


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

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

  1. Тяжело вам сейчас сказать. Так как в следующих версиях концепция грида изменилась и он в настоящий момент не содержит контрол-ячеек. В вашем случае, на счет количества ячеек, я думаю, что там использована оптимизация. И ячейки при прокручивании просто перемещаются и обновляются новыми данными, вместо того, чтобы создавать 100 или 1000 ячеек столбца. Поэтому там скорее всего будет всегда только видимое количество ячеек. Это можно проверить путем изменения высоты грида и проверки при этом количество.
    2 балла
  2. может попробовать 30221_ios_8_simulator_hotfix_beta_for_xe8 http://cc.embarcadero.com/Item/30221
    1 балл
  3. В большинстве случаев эта ошибка связана: С линковкой проекта с устаревшей версии SDK. То есть у вас в среде старые хедеры от iOS SDK. Этот случай обычно возникает при обновлении XCode. С PAServer. Лечится перезапуском OSX или PAServer (с убиением всех дочерних процессов) С новыми требованиями Apple к формируемым файлам в пакете приложения. Entitlements. Тут нужно искать в официальных блогах статьи о том, как подправить этот файл для деплоя. Обычно касается старых версий среды и новых iOS SDK. С неправильной установкой XCode. При установки новой версии XCode может слететь активный путь, указывающий местонахождение текущей версии XCode. Проверить можно вызвав в консоле: xcode-select -p
    1 балл
  4. При стилизованной рамке окна, иконка кэшируется. Первый раз она запрашивается в момент первой отрисовки формы. Поэтому в вашем случае ее нужно задать сразу после создания хендла а именно в CreateHandle. TForm15 = class(TForm) StyleBook1: TStyleBook; protected procedure CreateHandle; override; end; implementation uses VCL.Graphics, Winapi.Windows, Winapi.Messages, FMX.Platform.Win; { TForm15 } procedure TForm15.CreateHandle; var NewAppIcon: TIcon; begin inherited; NewAppIcon := TIcon.Create; NewAppIcon.LoadFromFile('c:\icon.ico'); SendMessage(ApplicationHWND, WM_SETICON, 1, NewAppIcon.Handle); SendMessage(WindowHandleToPlatform(Handle).Wnd, WM_SETICON, 1, NewAppIcon.Handle); end;
    1 балл
  5. Коллега, вы совершенно не верно подходите к решению задачи. TreeView - это представление, а база данных - это модель. Потому построение дерева должно опираться на данных в БД, а не наоборот. Дерево в базе хранят обычно в одной таблице такой структуры: id - id объекта parent - id родителя text - наименование например ваша структура в БД будет примерно так выглядеть: 1, null, Родитель 1 2, 1, Потомок 1-1 3, 1, Потомок 1-1 4, null, Родитель 2 5, 4, Потомок 2-1 6, 4, Потомок 2-2 7, 6, Потомок 2-3 - обратите внимание - потомок потомка и т.д. Для того что бы связать запись БД и Item в дереве используйте свойство Tag. Это просто и удобно. Как строить дерево: 1. Самый плохой способ - при запуске программы, из БД считывается все данные и по ним строится полное дерево. При добавлении/удалении записи все повторяем - перечитываем полное дерево. Таким способом лучше не делать. За такой метод бьют ногами не похвалят. Причем и пользователи (за тормоза программы) и админ сервера БД (за нагрузку на сервер). 2. Этот способ немного лучше - при запуске мы точно также считываем полное дерево из БД. Но при добавлении записей, мы добавляем только конкретный Item в дерево и его Tag присваиваем ID который назначил сервер при создании записи в БД. Но тут все еще есть недостаток - полное построение дерева - если записей много, то может занимать много времени. 3. Самый лучший способ - при запуске считываются только корневые записи (parent = null). А остальные подгружаются по мере необходимости. Когда пользователь разворачивает ветку, то из БД получаем все записи parent = Selected.Tag и добавляем детей к этой ветке. Добавление новых записей так же как в способе 2. Рекомендую вам использовать именно способ 3. Во первых он самый быстрый, во вторых считывание из БД наиболее простое. Иначе вам без рекурсивных хранимых процедур будет сделать полное чтение дерево очень сложно. Здесь же можно все выбирать простыми запросами. Еще пара советов: если данных много и по дереву ходят много - то постепенно программа подгрузит много веток и это может занимать много памяти, что может привести к тормозам. Потому при сворачивании ветки, лучше всех детей удалять. Когда ветка не имеет детей, то у нее нет слева стрелочки для разворачивания. Потому возникает вопрос - как же тогда развернуть ветку, чтобы подгрузить детей? Все просто. Надо создать одного фейкового ребенка. Т.е. просто Item-пустышку не связанную с БД. А когда ветку разворачивают, то первым делом надо пустышку удалить. Потом считать БД. Естественно при сворачивании делаем наоборот - сначала удаляем все реальные Item-ы, а потом вновь добавляем пустышку. Вот как то так.
    1 балл
  6. В TabControl(е) создал TabItem и на его положил кнопку так что бы половина кнопки была не видна. А токого же поведения когда кнопка лежит на панели (TPanel) добится не получается, кнопку всегда видно, даже когда она выходит за рамки панели. Кто может сказать почему и как это исправить? Для наглядности прицепил картинку с проблеммой
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...