Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 16:28   #11
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Вот-вот. Именно такой вывод и напрашивается.
Но была надежда, что за несколько лет, которые FM является миру, появились умельцы, которые что-то увидели больше чем есть в официальных мануалах.

WndProc тоже, к сожалению, ничего хорошего не принесло.
Как заколдованный этот прямоугольник формы, не хочет, зараза, превращаться в круг.
Прик вне форума Ответить с цитированием
Старый 30.06.2014, 16:55   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Не думаю что в FM нет такой возможности. Врядли от нее отказались при всей тяжести этого фреймворка. Просто нужно копнуть глубже.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 21:00   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Т.е. ехе создается и запускается, а форма как была прямоугольной, с заголовком, кнопками на нем и прочим не нужным барахлом (в этой задаче), так и появляется.
А с настройками компилятора поиграться пробовали?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2014, 21:30   #14
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

вот тут есть начало
http://www.cyberforum.ru/delphi-begi...020-page2.html
eval вне форума Ответить с цитированием
Старый 30.06.2014, 21:33   #15
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

ТС Вы как-то расплывчато обозначили суть темы.
На сколько помню, проект FM успешно работает в виндах.

Вы хотите плавную трансформацию квадрата в круг средствами винды?

Если так, то винда сама это не умеет.
Вы задаете параметры функции и получаете рассчитанный результат а потом его присваиваете и ничего между тем и этим. Не из чего делать анимацию.

Можно сделать кастыль:
Получаем тек. форму окна, получаем данные региона, рассчитываем новые показатели региона для след. фрейма, делаем CreateКруглогоРегиона, отправляем буфер.
Свой WndProc берет уже готовый кадр и присваивает окну с передачей управления винде. И так, пока цикл отрисовки круга не завершится.
В теории получится очень не плохая анимация.

Тоже самое делает и FM но там все построено на изображениях вместо компонент окна. С ними можно на ушах стоять, а винда таких возможностей не дает.

Последний раз редактировалось Человек_Борща; 30.06.2014 в 21:35.
Человек_Борща вне форума Ответить с цитированием
Старый 30.06.2014, 21:54   #16
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Как заколдованный этот прямоугольник формы, не хочет, зараза, превращаться в круг.
Нипанятна же. Если мы хотим нативно врасти в винду, то у нас всё должно работать по правилам винды @_@
Код:
uses Winapi.Windows, FMX.Platform.Win;
{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin
        SetWindowRgn(FmxHandleToHWND(Handle), CreateEllipticRgn(0, 0, 1000, 100), TRUE);
end;
Хотим не только под виндой? Ну тогда или очень внимательно изучать возможности FMX, или под каждую платформу писать свой натив-код.
StriderX вне форума Ответить с цитированием
Старый 01.07.2014, 09:49   #17
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Чтобы было понятно.
Приложение делается в среде винды 7 и только для десктопной винды, используя FireMankey (как ее там) в Дельфи ХЕ4.
Можно проделать очень простой эксперимент, который займет не более 3 минут.
Разумеется тем, кто имеет на борту Дельфи FM.
Создается проект "FireMonkey Desktop Application".
В обработчике события формы OnCreate пишется всего навсего две строчки (а по версии (StriderX вообще одна):
Код:
uses Windows; //этот модуль автоматом не подключается
procedure TForm1.FormCreate(Sender: TObject);
var
  Rgn : HRGN;
begin
  Rgn := CreateEllipticRgn(0, 0, 200, 200);
  SetWindowRgn(HWND(Handle), Rgn, TRUE);
end;
Если это дело скомпилировать и запустить, то форма как была прямоугольной с заголовком, бордюром, такой и появляется.
Но если этот код будет скомпилирован в обычном VCL приложении, то форма появится в виде круга.
Вот конкретно о чем речь.
StriderX, да, именно так как у вас показано, но это общее место и приведенные нами совершенно одинаковые фрагменты в FM не срабатывают.

Настройки компилятора я смотрел, но так как с FM только-только начал ковыряться, то и понять от какой опции этот эффект может зависеть пока не удалось. Если такое вообще есть в настройках.
Прик вне форума Ответить с цитированием
Старый 01.07.2014, 10:01   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
приведенные нами совершенно одинаковые фрагменты в FM не срабатывают.
Я конечно гадаю на кофейной гуще... Но могу предположить, что Winapi.Windows суть не одно и тоже, что Windows по умолчанию. То же самое относится и к юнитам с FMX. Перейдя туда (в юниты Файермонки) возможно найти все эти юниты, типа Windows кросплатформенные. Однако если провести эксперимент и использовать свою версию FireMonkey с uses в которых вставлены виндороориентированные юниты, то вполне вероятно что и взлетит....
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.07.2014, 10:18   #19
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Задача то, по большей части, академическая, чем прикладная (к стенке не поставят, если все же не получится), потому шибко неохота лезть в кишки FM.
Да и куда лезть, если описание функции, к примеру, SetWindowRgn выглядит так:
Код:
function SetWindowRgn; external user32 name 'SetWindowRgn';
Прик вне форума Ответить с цитированием
Старый 01.07.2014, 10:27   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
если описание функции, к примеру, SetWindowRgn выглядит так
Где оно так выглядит? В каком юните?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FireMonkey ZuBy Общие вопросы Delphi 2 28.12.2013 20:37
FireMonkey Konstant_Tom C++ Builder 4 18.06.2013 19:20
Bass и FireMonkey Dark_Observer Мультимедиа в Delphi 1 28.09.2012 22:17
А где Firemonkey? GSirr О форуме и сайтах клуба 2 04.08.2012 00:19
Firemonkey и TApplication arxlex Общие вопросы Delphi 1 14.04.2012 11:00