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

haword

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

    533
  • Зарегистрирован

  • Посещение

  • Победитель дней

    19

Весь контент haword

  1. а саму себя опять запустить нельзя? а вообще по правильному надо все делать БЕЗ перезагрузок. обновление данных делать не в OnShow или OnCreate а в отдельных процедурах кои можно будет потом повторно запускать.
  2. если не хочешь править существующий создай свой класс на основе стандартного и в нем уже меняй. все действие происходит в классе TListViewItems процедуре ApplyFilter else if Filter(Item.Text) or Filter(Item.Detail) then begin FFilteredItems.Add(Item); Inc(SectionSize); end;
  3. TlistView не позволяет встраивать контролы ввода. А так да - шустрый. если позволяет показывать кнопку то что мешает созать свой тип итема с едитом?
  4. Вариант от Ярослава со своим классом TListBoxItem очень даже хороший так как более гибкий.
  5. type TComboValue = class key: string; end; ... a := TComboValue.Create; a.key := 'sdfsdfsdfdsf'; Box.Items.AddObject('name',a); .... key:= TComboValue(Box.Items.Objects[Box.ItemIndex]).key;
  6. Уперся в проблему и думаю как ее можно красиво решить. Короче смысл такой. На форме один ListView. В нем список. При выбора записи нужно перезаполнить ListView данными из подкатегории на которую ссылается выбранное поле. Проблема в том что в OnItemClick нельзя очищать ListView, после выхода из обработки выскакивает ошибка обращения к этому Item так как оно используется после отработки события. Попробовал сделать на OnClick. Вышла другая проблема, при использовании тачэкрана, когда HasTouchTracking выдает true, приходится два раза нажимать на поле или задержку пальцем делать что бы получить нужные данные через Selected или ItemIndex. Пока что придумал так это сделать два ListView и через visible переключать их. Но это грабли. Может у кого то есть более красивое решение?
  7. ну я понимаю что после 2014 года, а после может настать и в 16 и в 20. Поэтому и было интересно что из обещанного будет в XE8, ведь вроде как бету уже запустили?
  8. есть где ни будь информация что нас ждет в будущем в RAD студии? Например что принесет XE8? в интернете актуальной информации по этому поводу совсем нет.
  9. у меня проект, ДВЕ формы. на основной форме лежит TTabControl на нем 12 табов, на табах по ListView ToolBar и пару кнопок. Так вот просто создание формы под андроидом на телефоне занимает около 7 секунд!!! надо что то с этим делать
  10. в TTreeView есть параметр ShowCheckboxes если его выставить в false то чекбоксов не будет.
  11. хочешь сделать проект, заработать бабок и пойти дальше - оставайся на vcl. хочешь делать проект, каждый раз упираться в какую ни будь хрень, лезть в исходники обезьяны, смотреть как они там сделали, ругнуться, скопировать в свой проект файл исходника, исправить, пересобрать проект и упереться в следующий косяк - тогда начинай на обезьяне. в принципе, если тебя устроит ПО с ПРОСТЫМ интерфейсом, без вывертов, и больших требований к быстродействию но зато кроссплатформенно то можешь начать и на обезьяне. Так как по своему опыту вижу что интерфейс пашет раза в полтора - два тормознее на обезьяне чем на vcl. как одна из причин - полупрозрачность элементов. То есть все компоненты рисуются последовательно вне зависимости от того перекрыты ли они поверх другими компонентами или нет, начиная с нижнего по самый верхний. плюс тормозной вывод любой надписи через создание TTextLayout и заполнение его параметрами. так что быстродействие в обезьяне хромает. но зато работает и на телефоне и на маке и на винде, обещают в будущем еще и на линуксе что будет запускаться.
  12. сделал но на костылях. изменил обработку onMouseDown procedure TCustomComboBox.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin inherited; if not (ssTouch in Shift) and (Button = TMouseButton.mbLeft) then DropDown else if ssTouch in Shift then begin md_x:=x; md_y:=y; MouseMoved:=False; end; end; добавил еще две procedure TCustomComboBox.MouseMove(Shift: TShiftState; X, Y: Single); begin inherited; if ssTouch in Shift then begin if ((x > (md_x + 10)) or (x < md_x -10)) or ((y > (md_y + 10)) or (y < md_y -10)) then MouseMoved:=True; end; end; procedure TCustomComboBox.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin inherited; if (not MouseMoved) and (ssTouch in Shift) then DropDown; end; то есть если тачем нажали на комбобокс и сдвинули палец то список не вызовется. костыль но вроде работает. хотя я уверен есть более красивое решение.
  13. Глюки на глюках. Проблема в том что LowerCase который используется в TSearchBox не преобразовывает буквы в нижний регистр но зато вводимые данные в поиск преобразовываются в нижний регистр. Lower := Text.Trim.ToLower; - введенный текст в нижем регистре LowerCase(X).Contains(Lower); не может найти текст так как регистр не поменялся для X Есть в ListView строка с текстом "Ярослав". При вводе в поле поиска текста "Яро", он преобразовывается в нижний регистр и получается "яро". далее ищется вхождение "яро" слове "Ярослав", не находит и поле попадает под фильтр. Решение: заменяем LowerCase(X).Contains(Lower); на X.ToLower.Contains(Lower);
  14. То есть, что бы список выскакивал не при нажатии на контрол а при отпускании. Проблема в том что листать списки с комбобоксами очень не удобно. любое касание комбобокса вызывает его список. Хорошо что бы было или настраиваемое или по умолчанию на тачевых устройствах вызов списка происходил при отпускании и при этом учитывалось двигался или нет контрол, что бы если был скролинг список не показывать. В нативном контроле так и реализовано.
  15. Между заставкой картинкой и показом моей программы проходит порядка 3 секунд и в этот момент чёрный экран. Картинка пропадает а форма еще не нарисована. Видно много компонентов накидал на табы поэтому долго грузится.
  16. можно закрывать тему. такое в принципе в данное время в огнеобезьяне не возможно из за того что Application.CreateForm не создает форму и не вызывает OnCreate событие у формы. Формы создаются в Application.Run. То есть процесс загрузки форм отобразить невозможно. Остается только пялится на черный экран и ждать пока покажется программа.
  17. Можно ли сделать изменяемую заставку? Например что бы там писалось по очереди - Загрузка данных, Данные загружены? попробовал сделать по старинке, в DPR добавил в ручную создание формы, вывод ее перед созданием главной формы, при создании других форм изменение надписи в ней, после того как главная форма показана убираем спэш. Под виндой все нормально работает. На андроиде далее родного сплеша дело не идет. Программа зависает. Application.Initialize; SplashForm:= TSplashForm.Create(Application); // SplashForm:= TSplashForm.Create(nil); SplashForm.Show; Application.CreateForm(Tdm, dm); //TDataModule Application.CreateForm(TMainForm, MainForm); // Application.CreateForm(TSplashForm, SplashForm); Application.Run;
×
×
  • Создать...