-
Постов
2 124 -
Зарегистрирован
-
Посещение
-
Победитель дней
390
Весь контент Brovin Yaroslav
-
procedure TForm1.FormCreate(Sender: TObject); begin ScrollBox.AniCalculations.Animation := True; ScrollBox.AniCalculations.BoundsAnimation := True; ScrollBox.AniCalculations.TouchTracking := [ttVertical, ttHorizontal]; end;
- 2 ответа
-
- AniCalculations
- Animation
- (и ещё 2 )
-
Windows XP больше не поддерживается ни Microsoft, ни Embarcadero. FireMonkey официально не поддерживается на Windows XP. Поэтому с большой долей вероятности вы ответ не получите.
-
Разместите непосредственно на самой форме TLayout. Layout.HitTest := True; Layout.Align := TALignLayout.Content; Отправьте слой на задний план: Send To Back Используйте события OnClick и OnDblClick у Layout
- 2 ответа
-
- OnClick
- OnDblClick
-
(и ещё 1 )
C тегом:
-
Глядя на ваш проект, я могу уверенно сказать, что вы не знаете основ объектно-ориентированного языка Delphi. А раз так, то я вам порекомендовал бы вначале изучить основы, а потом уже писать код. После прочтения, хотя бы Программирование на языке Delphi. Учебное пособие. у вас у самого отпадут многие вопросы и думаю вы по другому взгляните на свой код. P.S. Пара мыслей на счет вашего кода: Ваша ошибка: Попытка обратиться изнутри класса формы к полям формы, через внешнюю глобальную переменную, которая просто не создана. Например, здесь вы создаете форму и сохраняете ее в локальной переменной AForm procedure TForm1.Button1Click(Sender: TObject); var Aform:TForm5; begin Aform := TForm5.Create(Application); Aform.Parent := Form1; Aform.Width := Form1.Width; Aform.Height := Form1.Height; Aform.Left := Form1.Left; Aform.Top := Form1.Top; Aform.ShowModal; Aform.Destroy; end; А тут, почему-то считаете, что в Form5 содержит вашу форму, что и в AForm (Не верно, никакой связи между этими переменными нету). procedure TForm5.FormCreate(Sender: TObject); begin Form5 := Button1.Parent as TForm5; Form5.Height:=300; Form5.Width:=400; end; Неправильно, Обращаться к форме внутри формы, через глобальную переменную по многим причинам. var Form5: TForm5; procedure TForm5.FormCreate(Sender: TObject); begin Form5 := Button1.Parent as TForm5; Form5.Height := 300; Form5.Width := 400; end; Отсюда при обращении к Form5.Height (где Form5 = nil в вашем случае) вы получите Aсcess Voiolation Правильно: напрямую обращаться внутри класса к полям формы: var Form5: TForm5; procedure TForm5.FormCreate(Sender: TObject); begin Height := 300; Width := 400; end;
-
В RTL включен уже класс по работе с ZIP-архивами: System.Zip.TZipFile
-
Демо проекты: demos.zip Презентации: 01. Улучшение продуктивности и качества кода при разработке на VCL.pdf 02. Обеспечение взаимодействия настольных и мобильных приложений.pdf 03. Переход к мобильности и платформе приложений FM.pdf
-
Первая версия AppMethod вышла между XE5 и XE6 и представляла собой XE5. Новая версия AppMethod, которая вышла в июне основывается на ХЕ6. В дальнейшем я думаю такая же практика будет продолжаться. Вначале релиз RAD Studio, а потом уже обновленная версия AppMethod.
-
Триггеры вызываются автоматически на уровне TControl. То есть, когда пользовать нажимает на кнопку TButton, кнопка при: нажатии мышкой на кнопкуперемещении мыши по области кнопкивыходе из области кнопкиЗапускает процедуру срабатывания триггеров через: { ITriggerEffect } procedure ApplyTriggerEffect(const AInstance: TFmxObject; const ATrigger: string); virtual; { ITriggerAnimation } procedure StartTriggerAnimation(const AInstance: TFmxObject; const ATrigger: string); virtual; procedure StartTriggerAnimationWait(const AInstance: TFmxObject; const ATrigger: string); virtual; Тем самым TControl передает этот вызов всем дочерним объектам кнопки. В том числе вашему TButtonStyleObject. Поэтому картинка в TButtonStyleObject сменится на базовом уровне и не нужно форсировать вызов. Вы описали не полностью вопрос, потому что начали вы с ручного вызова события, а кончили сменой картинки в TButtonStyleObject. На вторую часть я ответил выше. На первую часть вопроса, вы можете вытащить объект стиля, взять у него интерфейс IControl и вручную сэмулировать срабатывание клика, например так: var StyleObject: TFmxObject; StyleObjectControl: IControl; begin StyleObject := Button1.FindStyleResource('background'); if (StyleObject <> nil) and (StyleObject is TControl) then begin StyleObjectControl := IControl(StyleObject); StyleObjectControl.MouseDown(TMouseButton.mbLeft, [], 0, 0); StyleObjectControl.MouseClick(TMouseButton.mbLeft, [], 0, 0); StyleObjectControl.MouseUp(TMouseButton.mbLeft, [], 0, 0); end; end; Однако, я бы не стал придумывать велосипед.. Попробуйте уточнить, что именно вы хотите добиться.
-
Magento?
-
Нет, если стиль уже загружен в Design-Time в TStyleBook. То повторная загрузка не нужна.
-
В вашем проекте не лишним будет не только создать TStyleBook, но и подключить его к форме Form.StyleBook. После этих стандартный манипуляций стиль успешно будет применен.
-
Добрый день Стандартный TProgressBar работает так: Держит две картинки: задний фон, без прогресса (в вашем случае желтые кубики) и активный прогресс (синие кубики) По мере прогресса растягивает картинку с активным прогрессом Отсюда ваш вариант не сделать только при помощи стиля. Так как вариант растягивания картинки с синими кубиками не подходит для вас. Решение Решение вашего варианта может быть в наследовании TProgressBar и переопределении в наследнике алгоритма заполнения активного прогресса путем перекрытия метода TProgressBar.DoRealign. Далее регистрируете ваш новый компонент и используете его.
-
Всеми возможностями среды можно пользоваться только 30 дней. Разработка под Android бесплатная в принципе (даже по истечении испытательного срока). Если мне память не изменяет то вроде только под C++ Builder Разработанные приложения под Андроид можно публиковать в Google Store (даже по истечении испытательного срока) P.S. Еще вроде обновили FAQ и описание варианта Free на официальном сайте: http://www.appmethod.com/pricing
-
Нужно именно форму встроить с рамкой или встроить содержимое одной формы в другую? Если речь идет о втором, то есть механизмы Frame (аналогично VCL). Создаете фреймы в проекте. B в нужных местах формы размещаете их в любом количестве. Кстати использование фреймов для разработки позволяет разгрузить форму от логики по обработке UI и сосредоточиться на логике обработки ваших данных.
-
Если у вас все есть, то в чем собственно вопрос?
-
Думаю, логично будет прикрепить сравнительные скриншоты в этому вопросу, чтобы было наглядно виден результат сравнения. Так же полагаю, вам следует подробнее изучить вопрос печати любых изображений, так как печать изображения никак не связана с FireMonkey. Постараюсь кратко пояснить. Вы делаете скриншот любого приложения. И получаете размер изображения в точках. Ровно столько, сколько занимает это изображение в видео памяти. Или другими словами, если размер экрана был 300 х 400 точек, то такое же изображение, такого же качества вы получите. По сути скриншот ничем не отличается от обычного вывода изображения на экран. Далее вы пытаетесь 300 х 400 точек распечатать на бумаге А1 (В районе: 594 × 841 мм). То есть спроецировать пиксель в физические размеры на бумаге.Или другими словами вы пытаетесь один пиксель вашего скриншота разместить в регион бумаги размером (594/300 ~ 2 мм, 841 / 300 ~ 2,8 мм). То есть в конечном итоге каждая точка вашего изображения займет на бумаге точку с физическим размером 2 мм на 3 мм. Думаю дальше уже понятно, что вот она и потеря качества. Ошибочно полагать, что можно любое изображение без потери качества распечатать на любом формате бумаги. И это не зависит от того, каким образом было сформировано изображение окна.Так как размер все равно будет одинаковым.