Виктор
Пользователи-
Постов
30 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент Виктор
-
Доброго дня, комрады. Как в listview сделать перетаскивание конкретного item, а в частности его изображения? Создали item-ы, загрузили изображения. Bitmap:=TBitmap.Create(120,120); Bitmap.LoadThumbnailFromFile(Memo1.Lines[Count-1],120,120); ListItem:=listview1.Items.AddItem; ListItem.Bitmap.Assign(Bitmap); Отключили в listview все кнопки и надписи. Остались только изображения и скрол. А автоматическом режиме, не получается выделить item, и переносит сразу весь listview
-
Допустим есть несколько копий приложения запущенных с разных компьютеров не в локальной сети. Расскажите как лучше всего организовать обмен информацией между ними? Какими компонентами лучше воспользоваться, как все построить? Предположим есть два варианта, у нас есть отдельно стоящий компьютер выполняющий роль сервера, и вариант когда такого компьютера нет. Для справки допустим что мы создаем самый простой аркадный Примитивный космический симулятор, для некой ролевой игры.
-
Для этого надо найти ближайшего родителя у элемента класса, нужного класса (прошу прощения за тавтологию). С помощью вот такой вот универсальной функции. Item := TListBoxItem(FindItemParent(Sender as TFmxObject,TListBoxItem)); function FindItemParent(Obj: TFmxObject; ParentClass: TClass): TFmxObject; begin Result := nil; if Assigned(Obj.Parent) then if Obj.Parent.ClassType = ParentClass then Result := Obj.Parent else Result := FindItemParent(Obj.Parent, ParentClass); end;
-
Если у вас на клики по элементам ListView не будет больше никаких действий, то правильней будет если пользователь будет иметь возможность кликнуть в любую часть строки (для этого обработку клика надо делать всей строки, а элементам отключать HitTest). Галочек как и полос прокрутки на мобильных девайсах стоит по возможности избегать, по ним неудобно попадать. В качестве места для расположения редактора времени я бы предложил невидимую до нажатия панельку, это ускорит работу ибо не потребуются ресурсы на создания окна. Уточню, что я не в курсе как там дела именно на android-е, и можно ли там отрисовать панельку поверх других элементов формы. Но если можно это на мой взгляд лучший вариант. А область за панелькой просто затемнить в момент её появления, что бы сконцентрировать внимание пользователя на ней.
-
Доброго дня. Суть вопроса в следующем. Мне надо создать директорию, в название которой надо положить путь к другой директории. Разумеется надо обойти проблему недопустимых символов / и : . И длину. В win путь не может превышать 255 символов. Таким образом мне надо еще и ужать путь хотя бы до максимум 100 символов. Не подскажите как средствами языка реализовать подобное?
-
А для win можете подсказать? Как не пытаюсь что-то не получается
-
Реализовать данные события можно через стили. Находишь в стиле элемент клик на который должен вызывать раскрытие или закрытие дочернего элемента (плюсик, стрелочка и т.д.). Как правило это элемент класса TButton или TButtonStyleObject, что бы мог изменять состояние при нажатии автоматически. Создаешь процедуру которая будет присваивать элементу стиля обработчик нажатия. procedure TFForder.TreeView2ApplyStyleLookup(Sender: TObject); var Item: TTreeViewItem; begin Item := TTreeViewItem(Sender); Item.StylesData['button'] := TValue.From<TNotifyEvent>(Click); end; При создании дочернего элемента TTreeView: It.OnApplyStyleLookup := Treeview2.OnApplyStyleLookup; И пишешь саму процедуру при нажатии на элемент стиля где выясняешь надо свернуть или развернуть элемент: function FindItemParent(Obj: TFmxObject; ParentClass: TClass): TFmxObject; begin Result := nil; if Assigned(Obj.Parent) then if Obj.Parent.ClassType = ParentClass then Result := Obj.Parent else Result := FindItemParent(Obj.Parent, ParentClass); end; procedure TFForder.Click(Sender: TObject); var Item: TTreeViewItem; begin TreeView2.BeginUpdate; Item := TTreeViewItem(FindItemParent(Sender as TFmxObject,TTreeViewItem)); if Item <> nil then if Item.IsExpanded = False then begin //здесь пишешь то что надо сделать при разворачивании элемента Item.Expand; end else begin //здесь пишешь что надо сделать при сворачивании элемента Item.Collapse; end; TreeView2.EndUpdate; end;
- 1 ответ
-
- OnCollapsed
- TTreeView
-
(и ещё 1 )
C тегом:
-
А можно в принципе по подробней как это реализовать. Я думаю с этой проблемкой столкнуться многие в том числе и новички
-
Добрый день. Берем XE6. Берем дефолтный дизайнер, дефолтный стиль. Генерим тест Faremonkey style. Пытаемся максимизировать окно кнопкой на заголовке формы. Кнопка меняет свой стиль, а вот окно не максимизируется. Тоже самое происходит и если в stylebook положить стиль для формы. Новые бордюры и кнопки отрисовываются, а вот оно перестает максимизироваться. Однако если запустить тот же дефолтный стиль под тестом VCL, то окно спокойно увеличивается. Как побороть сей казус?
-
Resize дает плохой результат. При уменьшении размеров форма в начале уменьшается, а потом увеличивается, в результате мерцание. Раньше вроде было событие onCanResize которое срабатывало перед изменениями размеров, но счас такого не нашел.
-
Вопрос конечно не шибко умный, что то в пятницу вечером не могу сообразить. Как выставить минимальные размеры формы? Что бы меньше было нельзя никак уменьшить
-
Не, не, Optimus работает только с win 7 и выше. Я говорю про стандартные общие настройки. Регулировка настроек приложения с просмотром. Там есть галочка "согласно настройкам приложения" когда её отключаешь и выкручиваешь качество на максимум вроде сглаживание появляется. Отсюда делаем вывод, что приложение просто не сообщает что его надо сглаживать.
-
Во слышу, объективную речь. Тут дело вот в чем, в настройках NVIDIA зачастую стоит "как указанно в приложении" по крайней мере там где я тестировал, так вот приложение не сообщает что его надо сглаживать. А вот если выставить настройки видеокарты в максимум, то кое какое сглаживание начинает появляться. На рабочем компе у вас просто наверно на макс. выставлено. В инете говорят, что сглаживание на ХР то появлялось то исчезало от ХЕ2 до ХЕ6, от обновления к обновлению и все не могли нормально сделать. Ме поверю, что нельзя подкрутить что бы сглаживание заработало.
-
Да и кто-то же пишет софт и под банкоматы, им без сглаживания писать, или Faremonkey не для них?
-
Оу... у меня то давно "более современная ось", а вот у пользователей программ, а они не сотрудники предприятия, а рядовые граждане доля XP существенна. Однако судя по комменатриям в инете в XE6 на ХР сглаживание работает....
-
ЧуднО не поддерживать винду доля которой 30%( И ладно бы сама студия не запускалась бы на XP это понятно, но программы скомпилированные в ней должны же работать на 30% машин как надо(( Ладно, политику Embarcadero можно обсуждать долго и бесполезно. Хотя бы подскажите как можно нашаманить, что бы было сглаживание в программах под ХР?
-
Как сделать что бы в win xp сглаживание на краям округлых элементов работало? ccHighQuality, не помогает. На семерке сглаживание наботает. EX5
-
Сомневаюсь что у вас будет время и желания копать тысячи строк рабочего проекта. Для демонстрации создал новый проект и прикрепил. И так что мы имеем по кнопке создается новая форма, если убрать строку: Form5:=Button1.Parent as TForm5; Из модуля второй формы то вылетит с ошибкой. Почему так? Кроме этого если у второй формы убрать системные иконки, то задать ей размеры при создании не получится, она будет создана с размерами заданными в дизайнере, и не центруется по центру объекта родителя. Если задать parent в ручную при создании, то форма отцентруется, но опять же заданные в oncreate размеры не применяться. Как это побороть? Projects.zip
-
Речь в данном случаи идет о стиле для combobox. Он состоит из общего ButtonStyleObject на котором расположены шрифт, контент и прочие, так же не нам расположен и еще один ButtonStyleObject на который повешена текстура стрелочки вниз. Везде Hittest:=False. Соотвественно контрол обрабатывает клик по всему элементу что полностью устраивает, однако во втором ButtonStyleObject при нажатии не меняется текстура с Normal на pressed, а надо что бы менялась. Я конечно сделал как предложено в дефолтном варианте с текстурами загруженными в основной контейнер ButtonStyleObject, но хотелось бы знать на будущие как можно реализовать нажатие на внутренний элемент стиля при условии что Hittest:=False. Предложенный вариант не сработал: [dcc32 Error] FotoOrder.pas(452): E2010 Incompatible types: 'IControl' and 'TFmxObject' В строке: StyleObjectControl := IControl(StyleObject); StyleObjectControl := IControl(StyleObject as IControl); При этом код заработал, но эффекта не произвел.
-
Ну что вам посоветовать. Правильно сказал товарищ выше, 100% нет. Да, есть над чем поработать и Embarcadero и программистам поизвращаться. Но честно говоря firemonkye стала для меня приятным сюрпризом, и как это принято говорить произвела wow-эффект. Так что если есть желание развиваться вместе с современными технологиями, то конечно же стоит работать в firemonkey. Хотя Embarcadero уверяет что они не забросят VCL, но совершенно очевидно что темпы развития замедляться, именно faremonkye будет обеспечивать продвижение продукта на рынке. Ну а для глюков и трудностей есть этот форум. За что отдельно спасибо Ярославу Бровину.
-
Допусти есть некий стиль элемента, в этом стиле есть ButtonStyleObject HitTest у которого False. Как вызвать событие клика по этому элементу? В данном случаи интересует смена Bitmapa на PressetLink
-
Хочу спросить вот что: Может взгляд совсем замылился, но создаю форму (в автосоздании убрано все кроме главной и data модуля), после создания пытаюсь обратиться к созданной форме из её же unit-а, и вылетает с ошибкой. Переменная пуста. FFOrder:=TFFOrder.Create(Form1); FFOrder.Parent:=Form1; FFOrder.Name:='FFOrder'; FFOrder.ShowModal; FFOrder.Free; // в модуле Order обращаемся в форме и ошибка FForder.Width:=DataM.Formwidth; Костыль от этого я придумал, но совсем уж какой-то костыльный (FForder:=Panel1.Parent as TFForder ) Далее. Пытаюсь выставить размеры созданной формы в oncreate. Если в настройках формы отключить borderIcons то в модуле FMX.forms мы попадем в процедуру Recreate которая перерисует форму и выставит начальные размеры указанные в дизайнере. Как этого избежать? Projects.zip
-
Смотря что считать большим коммерческим проектом. Я работаю достаточно плотно с fireMonkey