krapotkin
Пользователи-
Постов
2 213 -
Зарегистрирован
-
Посещение
-
Победитель дней
210
Весь контент krapotkin
-
Ну, во-первых этот форум к разработчикам имеет ровно никакое отношение Во-вторых, вы вообще о чем? Что это за компонент?
-
записывает ссылку на себя в эту переменную. в целом, более удачным видится создание не панелей а фреймов, хотя, возможно, в вашем примере это лишь заглушка. еще: как-то так сложилась практика, что владельцем создаваемых компонентов является форма или фрейм, а не Application. это логично, потому что компоненты уничтожаются вместе с формой, на которой размещены. Именно за это отвечает параметр Owner.
-
думаю, что более правильно один из двух вариантов 1) вообще не создавать переменную. в onClose просто делать Free 2) созданной форме вешать на OnClose обработчик и там делать проверку ModalResult , так же как реализовано в TDialogService.MessageDialog
- 14 ответов
-
- tthread
- forcequeue
-
(и ещё 1 )
C тегом:
-
Это называется UX - сценарий использования пользователем вашей программы. Собственно, сначала придумывается из головы UX, а только потом пишется программа. Так что это к вам вопрос - что делать с уже введенными данными С точки зрения программирования нужно всего лишь SelectedList.Clear(); UpdateLabels();
-
я не знаю, откуда вы берете текст, который размещается в ListView но он же должен где-то храниться вот оттуда его берём в методе UpdateLabels TForm3 = class(TForm) ... SelectedList : TList<integer>; ... end; ........ procedure TForm3.FormCreate(Sender : TObject); begin SelectedList := TList<integer>.Create; end; procedure TForm3.FormDestroy(Sender : TObject); begin FreeAndNil(SelectedList); end; procedure TForm3.ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem); begin if SelectedList.Count = 2 then exit; case Selected Count of 0 : begin SelectedList.Add(AItem.Index); UpdateLabels(); end; 1 : begin if SelectedList[0] <> AItem.Index then SelectedList.Add(AItem.Index); UpdateLabels(); end; end; end; procedure TForm3.UpdateLabels(); begin if SelectedList.Count > 0 then label1.text := varIDontKnowWhereYourTextStored[ SelectedList[0] ] else label1.text := ''; if SelectedList.Count > 1 then label2.text := varIDontKnowWhereYourTextStored[ SelectedList[1] ] else label2.text := ''; end;
-
нет. никто понятия не имеет, что и как и правильно ли у вас отображается. может у вас ошибки в совсем других местах "Я хотел бы отобразить значение или (текст) содержимое TListViewItem внутри тегов TLabels образом, чтобы содержимое первой метки не могло быть одинаковым." Одинаковым с чем?? перечитаем задачу. Даже если посмотреть на картинки и ваш код, ничего не понятно. Кликнуть вы можете по одной строке ListView. Допустим, текст, который в этой строке, вы хотите разместить в Label1. А откуда берется текст в Label2 ??? Если текст1 = 'XYZ' то добавьте к нему A и в Label2 запишите 'XYZA'. Вполне совпадает с заданным вами условием. Попробуйте еще раз, на общечеловеческом языке объяснить, чего вы хотели-то ?
-
опустили палец - запомнили координату Y двигаем палец - сравниваем с исходной, рисуем там, где палец подняли палец - выставляем панель либо в верхнее положение, либо в нижнее. лучше с анимацией
-
в связи с полным несовпадением концепции и большей части компонентов это возможно только для программ уровня пара кнопок на форме а их и так несложно перевести практика говорит о том, что проще и лучше банально начинать с нуля по прототипу. как говорила моя начальница - когда делаешь работу во второй раз, это происходит в два раза быстрее.
-
тоже мучился с Edge. в частности, выяснил, что на фрейме с прозрачным фоном WebBrowser тоже прозрачный проверьте, может подойдет
- 2 ответа
-
- twebbrowser
- edge
-
(и ещё 1 )
C тегом:
-
ну вообще говоря, вы не только текст выводите, но и знаете, по каким координатам он должен быть кроме того, я предположил, что все эти региончики выводятся отдельно а не просто нарисованы на одной картинке в частности, я исходил из, того, что просто статическая картинка обычно никому не нужна, иначе что мешает вам нарисовать циферки прямо на нее изначально? вот и выходит, что есть какие-то данные о регионе, его контуре и месте на карте, что является моделью данных для этого приложения следовательно, следующий вопрос тут будет - а как определить, что курсор находится над заданным регионом. и вот тут вариант с TImage сразу начнет обрастать условиями. Если сделать там Stretch, то масштаб он подберет самостоятельно, и узнать координатки после масштабирования затруднительно поэтому для этой (гипотетической) задачи придется опять же все делать самому и выводить на битмап с масштабом. а уж битмап хоть на Image в режиме original, хоть на paintbox - не суть важно. Главное то, что вы на каждое движение мыши будете бегать по модели данных и проверять, не попал ли курсор в один из регионов.
-
не надо сравнивать VCL и FMX. VCL и прозрачную картинку-то вывести не может, о чем речь вообще в FMX все рисуется на одном Canvas. В VCL - бОльшая часть компонентов имеет свое окно в ОС. поэтому подходы к рисованию абсолютно разные. если у вас есть компоненты - вы можете рисовать ими, но компонентов для сложных деталек у вас нет (можно порисовать SVG в Graphics.TPath, но это на любителя) поэтому берете модель данных, отрисовываете ее на битмап. в том числе текст. битмап выводите на PaintBox или TImage, пофиг. получившийся код будет даже короче чем разбрасывание компонентов. да еще сможет поддерживать масштабирование, чего от компонентов добиться сложновато
-
не нужно на форме рисовать либо сначала взять скриншот формы, нарисовать на нем, и отрисовать обратно
-
с одной стороны, все можно, с другой - здесь форум по FMX вопросы по VCL тут не очень уместны. на cyberforum например напишите, там есть по delphi раздел
-
Раньше трава как известно была зеленее. Сейчас же для скролла нужно неожиданно использовать скроллбокс.
-
Не знаю, как там vkbdhelper, но это точно работает: https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FMX.ScrollableForm_Sample
- 46 ответов
-
- vkbdhelper
- scrollable form
-
(и ещё 3 )
C тегом:
-
когда появился этот синтаксис, андроида не было даже в самых радужных мечтах нельзя использовать средства работы с файлами из этого тысячелетия ? System.IOUtils.TFile например и не забыть кодировку указать UTF8
-
Потому что текст итема тоже задан компонентом и его нужно найти и сделать ему Margin либо сделать то же самое - полностью забить на то что там уже есть, оставить их пустыми и сделать все компоненты свои, в коде и по мне так это самое быстрое и самое управляемое решение ))
-
у старших Canon доступен SDK. там все это можно сделать лет 6-7 назад я делал такое. но исходники там для #, поэтому придется немного попереводить. про остальные не слышал.
-
без конкретики вряд ли кто поможет чудес не бывает же, нужно смотреть код
-
я для себя решил вопрос очень просто - вставил свои компоненты в итем и весь функционал доступен