Вверх ↑
Этот топик читают: Гость
Ответов: 5124
Рейтинг: 578
#16: 2022-01-13 08:48:52 ЛС | профиль | цитата
Давно уже и Constraints тоже. Свойства MaxHeight, MaxWidth, MinHeight и MinWidth, в KOL никто не отменял.
карма: 5
0
Разработчик
Ответов: 26048
Рейтинг: 2110
#17: 2022-01-13 13:53:24 ЛС | профиль | цитата
andrestudio писал(а):
Constraints тоже

Если только для форм, то вроде что-то похожее у нас есть

Add(MinMaxSize,13604450,259,189)
{
}
карма: 22

0
Ответов: 4581
Рейтинг: 730
#18: 2022-01-13 15:47:16 ЛС | профиль | цитата
andrestudio писал(а):
Давно уже
Нашел какой-то другой способ доступа к родительскому ThiWin дочернего компонента, чтобы не зависеть от размещения поля ThiWin.Control в структуре класса?
карма: 26

0
Ответов: 171
Рейтинг: 4
#19: 2022-01-13 16:06:09 ЛС | профиль | цитата
Когда же уже поработаете над лже срабатываниями антивирусов. Мне кажется вот это проблема. Письками мерится уже хватит, Gunta, nesco, andrestudio, Netspirit я думаю дружно нужно быть.
карма: 0
HiAsm Studio
0
Ответов: 5124
Рейтинг: 578
#20: 2022-01-13 16:14:40 ЛС | профиль | цитата
Netspirit, первичный код который тут где то фигурировал давно уже переделан и работает с FPC.
Для свойств достаточно

if _prop_akLeft then   fAnchor := fAnchor or 1;
if _prop_akTop then fAnchor := fAnchor or 2;
if _prop_akRight then fAnchor := fAnchor or 4;
if _prop_akBottom then fAnchor := fAnchor or 8;
для чтения и записи как обычно API GetProp и SetProp
envoy_sky, рецепт я тебе озвучивал и это к теме не относится.
карма: 5
0
Ответов: 171
Рейтинг: 4
#21: 2022-01-13 18:40:39 ЛС | профиль | цитата
Всех с старым новым годом. nesco Вы наверно читали этот рецепт?

--- Добавлено в 2022-01-13 18:47:13

Реально просто пустое окно скомпилиное антивирус на вирустотал орёт. Что за нах...? Что делать, куда бежать? Не порядок, хотите нормальный проект, сделать нужно нормально.

Редактировалось 1 раз(а), последний 2022-01-13 18:47:13
карма: 0
HiAsm Studio
0
Ответов: 207
Рейтинг: 14
#22: 2022-01-13 18:53:08 ЛС | профиль | цитата
envoy_sky писал(а):
Когда же уже поработаете над лже срабатываниями антивирусов.

Скомпилировал пустую форму на Delphi 10.4. Закинул на virustotal.
Вот результат https://www.virustotal.com/gui/file/0aabdb2522c7d94c318187e4762d22db33e2badc6aeb222079b322faa36aea63?nocache=1
карма: 2

0
Разработчик
Ответов: 26048
Рейтинг: 2110
#23: 2022-01-13 18:53:19 ЛС | профиль | цитата
envoy_sky писал(а):
Реально просто пустое окно скомпилиное антивирус на вирустотал орёт

Нууу, слишком много мамкиных хакеров написало паразитов на HiAsm-e, вот и орет вирустотал. Попробуй Дельфячий компилятор, а то на старый FPC давно вирустотал окрысился. Код пакета открытый, можно послать код для разбора. Кто-то вроде такое делал.

--- Добавлено в 2022-01-13 19:04:29

PS Вроде я добил этот Anchors, не могу точно сказать, правильно ли он работает, тк в действии его видел только на ютубе и читал приблизительное описание работы. Пока это прототип, ну хоть с места сдвинулся. В архиве есть файлы Share.pas и hiSynchronize.pas, их надо заменить, позднее перенесу их на SVN, после того, как определюсь с конечными сообщениями. Файлы Win.pas и WinControl.ini экспериментальные, для проверки заменить с сохранением предыдущих. Файл hiRemoteAccessManager.pas немного изменен, тоже надо заменить. В архиве есть несколько примеров на применение Anchors и ChildMargin.

Редактировалось 1 раз(а), последний 2022-01-13 19:04:29
карма: 22

1
файлы: 1Project_Anchors_001.zip [26.9KB] [89]
Голосовали:andrestudio
Ответов: 4581
Рейтинг: 730
#24: 2022-01-13 21:26:10 ЛС | профиль | цитата
nesco писал(а):
слишком много мамкиных хакеров
А также "мамкиных" антивирусов, которые у себя собрал тот сайт. О которых мы никогда и не узнали бы.
карма: 26

0
Ответов: 5124
Рейтинг: 578
#25: 2022-01-14 06:16:10 ЛС | профиль | цитата
nesco, по умолчанию akLeft и akTop должны быть True (судя по конфигурационному файлу это не так а в средах это по дефолту)
Anchors должен работать только при Align = caNone (почему то думаю что это логично, но судя по кодам в Init это не так)
nesco писал(а):
не могу точно сказать, правильно ли он работает, тк в действии его видел только на ютубе и читал приблизительное описание работы.

ну это же п... какой то
Т.е реальное признание или раскаяние от того что Вам так и не доводилось пользоваться удобством этих резинок и по этому в HiAsm они приходят с запозданием в 10-15 лет!
nesco, не, ну реально поставь уж какую нибудь IDE что ли...
В действии проверять не стал, потом может попробую на чистой сборке. Свою жалко пока тискать экспериментами.

p.s ну хоть что то сдвинулось с мёртвой точки пускай даже спустя столько лет...
карма: 5
0
Разработчик
Ответов: 26048
Рейтинг: 2110
#26: 2022-01-14 12:27:29 ЛС | профиль | цитата
andrestudio писал(а):
Т.е реальное признание или раскаяние от того что Вам так и не доводилось пользоваться удобством этих резинок и по этому в HiAsm они приходят с запозданием в 10-15 лет!

Первое, я никогда не пользовался привязкой контролов, не было надобности. Второе, а причем здесь вообще я? Че-то раньше всех все устраивало (кроме тебя), а теперь я крайний остался. Ну не посещала меня раньше муза, не посещала. Можно было днями биться и получить в результате бибус. А вот тут меня че-то прорвало на попробовать чего-нибудь интересного.
andrestudio писал(а):
реально поставь уж какую нибудь IDE что ли...

А зачем она мне. Вот есть у меня HiAsm, мне и хватит. Я давно уже отошел от серьезных дел, прошло уже мое время, а молодые что-то не очень подрываются, больше хотят всего и сразу, а так не бывает. Все это я делаю из-за того, что что-то надо делать, иначе скисну.
andrestudio писал(а):
В действии проверять не стал, потом может попробую на чистой сборке.

Да это все пока концепт-арт. Я еще никуда ничего не добавлял, все это еще пока находится на уровне рассмотрения.

--- Добавлено в 2022-01-14 12:48:09

andrestudio писал(а):
по умолчанию akLeft и akTop должны быть True (судя по конфигурационному файлу это не так а в средах это по дефолту)
Anchors должен работать только при Align = caNone (почему то думаю что это логично, но судя по кодам в Init это не так)

Да я это все эксперименты делал, отключу без проблем, мне тоже показалось как-то нелогично, тут самое главное, что это все работает. Еще и с функцией сплиттера не корректно себя ведет. Похоже, что с подключением внешних слоев (вот, действительно, где черт ногу сломать может) привязку тоже придется отключать.

Редактировалось 4 раз(а), последний 2022-01-14 13:01:26
карма: 22

0
Ответов: 5124
Рейтинг: 578
#27: 2022-01-14 15:05:42 ЛС | профиль | цитата
nesco, заразил ты меня переделать на SetWindowPos
вот такая у меня процедурка получилась, сплитер работает нормально


procedure THIWin.SetAnchors;
var
w,h,d: integer;
begin
if Control.Align <> caNone then Exit;
//if not Control.HandleAllocated then Exit;

// один раз инициализируем и пользуемся
// в Init Control.Parent. Width и Height не работают !
if not InitSize then
begin
FOldTop := _prop_Top;
FOldLeft := _prop_Left;
FOldRight := Control.Parent.Width - (_prop_Left+_prop_Width);
FOldBottom := Control.Parent.Height - (_prop_Top+_prop_Height);
FOldWidth := _prop_Width;
FOldHeight := _prop_Height;
InitSize := True;
end;

if _prop_akRight then
begin
w := FParent.Width - (FOldLeft+FOldRight);
h := Control.Height;
if not _prop_akLeft then
begin
d := FParent.Width - (FOldWidth + FOldRight);
SetWindowPos(Control.Handle, 0, d, FOldTop, FOldWidth, h, SWP_NOZORDER);
end else
SetWindowPos(Control.Handle, 0, FOldLeft, FOldTop, w, h, SWP_NOZORDER);
end;

if _prop_akBottom then
begin
w := Control.Width;
h := FParent.Height - (FOldTop+FOldBottom);
if not _prop_akTop then
begin
d := FParent.Height - (FOldHeight+FOldBottom);
SetWindowPos(Control.Handle, 0, Control.Left, d, w, fOldHeight, SWP_NOZORDER);
end else
SetWindowPos(Control.Handle, 0, Control.Left, Control.Top, w, h, SWP_NOZORDER);
end;

case _prop_MaxHeight of
0:;
else if Control.Height > _prop_MaxHeight then Control.Height := _prop_MaxHeight; end;

case _prop_MinHeight of
0:;
else if Control.Height < _prop_MinHeight then Control.Height := _prop_MinHeight; end;

case _prop_MaxWidth of
0:;
else if Control.Width > _prop_MaxWidth then Control.Width := _prop_MaxWidth; end;

case _prop_MinWidth of
0:;
else if Control.Width < _prop_MinWidth then Control.Width := _prop_MinWidth; end;

end;
карма: 5
0
Разработчик
Ответов: 26048
Рейтинг: 2110
#28: 2022-01-14 15:14:02 ЛС | профиль | цитата
А как обращаться к твоему методу, те откуда его вызывать?

Редактировалось 1 раз(а), последний 2022-01-14 15:15:17
карма: 22

0
Ответов: 5124
Рейтинг: 578
#29: 2022-01-14 15:22:58 ЛС | профиль | цитата
Ну да, ведь по дефолту то так и есть.

--- Добавлено в 2022-01-14 15:35:04

тут самое главное что я не запоминаю текущие позиции для расчёта как в моём старом коде а привязываюсь уже к константам отступов

Редактировалось 1 раз(а), последний 2022-01-14 15:35:04
карма: 5
0
Разработчик
Ответов: 26048
Рейтинг: 2110
#30: 2022-01-14 16:28:22 ЛС | профиль | цитата
Так откуда ты его вызываешь?
А свойства MinMax ты применяешь к методам KOL, или они только в твоем методе работают, а как они тогда на форме работают?

--- Добавлено в 2022-01-14 16:44:48

Зачет, твой код работает на моем примере, только MinMax пока отключил, там у меня перепривязку надо делать.

--- Добавлено в 2022-01-14 17:00:07

Странно, почему у тебя инициализация в Init не работает, у меня работает прекрасно.

Редактировалось 4 раз(а), последний 2022-01-14 17:00:35
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)