Вверх ↑
Этот топик читают: Гость
Ответов: 378
Рейтинг: 61
#1: 2012-07-30 18:07:46 ЛС | профиль | цитата
При значении AlphaBlendValue=255 встраиваемое окно выравнивается правильно, т.е. по координатам 0,0 внутри нового родительского окна.

Если убавить значение AlphaBlendValue хотябы на 1, то выравнивание происходит по координатам 0,0 монитора, а не родительского окна.

code_28659.txt

Попробуйте уменьшить AlphaBlendValue и сдвиньте окно в левый верхний угол.
Возможно ли это поправить
карма: 0
0
файлы: 1code_28659.txt [2.9KB] [452]
Ответов: 16884
Рейтинг: 1239
#2: 2012-07-30 19:45:50 ЛС | профиль | цитата
У кого ещё проявляется описанный эффект ? У меня нет. W7.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1528
Рейтинг: 57
#3: 2012-07-30 19:54:43 ЛС | профиль | цитата
Tad писал(а):
У кого ещё проявляется описанный эффект ?

у меня
карма: 0

0
Ответов: 1173
Рейтинг: 49
#4: 2012-07-30 20:15:08 ЛС | профиль | цитата
У меня тоже. Win 7 x86. При классическом стиле второе окно держится на 0;0 экрана, с Aero его вообще не видно.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2012-07-30 20:27:59 ЛС | профиль | цитата
Ex_ писал(а):
У меня тоже
Картинку выложи.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1376
Рейтинг: 197
#6: 2012-07-30 21:27:01 ЛС | профиль | цитата
kacmem писал(а):
При значении AlphaBlendValue=255 встраиваемое окно выравнивается правильно
а если в свойстве Name у MainForm прописать имя, то не правильно выравнивается (или это только у меня так)

Add(MainForm,2953706,357,154)
{
Name="m"
}
Add(ChildFormEx,9957204,406,154)
{
}
BEGIN_SDK
Add(EditMultiEx,9781603,200,200)
{
}
Add(MainForm,823131,238,217)
{
Left=35
Top=105
Color=12639424
BorderStyle=0
ShiftLeft=5
ShiftTop=20
FormFastening="parent.m"
}
END_SDK


карма: 1

0
Ответов: 1173
Рейтинг: 49
#7: 2012-07-30 22:15:06 ЛС | профиль | цитата
Tad писал(а):
Картинку выложи
Классический стиль | 9 Кб
Стиль Windows 7 с Aero | 38 Кб

foksov писал(а):
а если в свойстве Name у MainForm прописать имя, то не правильно выравнивается
С именем "m" -- да, а вот с "p", например, всё ОК. Магия
карма: 0

0
Ответов: 1731
Рейтинг: 68
#8: 2012-07-30 22:32:52 ЛС | профиль | цитата
Я даже первую схему не могу открыть, ХиАсм выдает ошибку

карма: 1

0
Ответов: 1173
Рейтинг: 49
#9: 2012-07-30 22:36:09 ЛС | профиль | цитата
Cosinus,
Tad писал(а):
Картинку выложи.

карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#10: 2012-07-30 22:47:14 ЛС | профиль | цитата
Читаю и думаю, а нафига таким способом дочернюю форму привязывать, когда у нее режим привязки уже встроен Компонент SetParent делался для привязки сторонних окон, а не окон одного приложения, может поэтому оно и не работает как надо.
карма: 22

0
Ответов: 378
Рейтинг: 61
#11: 2012-07-31 03:14:57 ЛС | профиль | цитата
nesco писал(а):
нафига таким способом дочернюю форму привязывать
Это лишь пример, привязывается стороннее окно... Вернее мы встраиваемся в стороннее окно...
карма: 0
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#12: 2012-07-31 03:35:10 ЛС | профиль | цитата
kacmem писал(а):
Это лишь пример, привязывается стороннее окно...

Где там у тебя в примере сторонне окно, там дочерняя форма этого же приложения, а не окно другого приложения
Ты бы лучше блокнот привязал, вот тогда и посмотрели бы
карма: 22

0
Ответов: 378
Рейтинг: 61
#13: 2012-07-31 05:11:27 ЛС | профиль | цитата
nesco писал(а):
Ты бы лучше блокнот привязал, вот тогда и посмотрели бы
Зачем? Эффект тот же.
------------ Дoбавленo в 05.11:
Вот, пожалуйста, пример вам с блокнотом.

Make(delphi)
ver(4.04 build 185)
Add(MainForm,3158579,483,315)
{
Width=659
Height=580
Position=1
Point(Handle)
link(onCreate,10332811:doEvent1,[])
}
Add(WinEnum,1218438,602,329)
{
link(onFindWindow,560410:doEvent1,[])
link(Caption,8438217:Text,[])
}
Add(VisualStrings,8438217,602,252)
{
Lines=#20:Безымянный - Блокнот|
Width=137
Height=32
}
Add(Hub,10332811,525,329)
{
link(onEvent1,955090:doExec,[(549,335)(549,314)])
link(onEvent2,1218438:doFind,[])
}
Add(WinExec,955090,560,308)
{
FileName="notepad.exe"
}
Add(Hub,560410,658,329)
{
OutCount=4
link(onEvent1,9783382:doSetParent,[])
link(onEvent2,1783027:doLeft,[])
link(onEvent3,1783027:doTop,[])
link(onEvent4,9079268:doWork1,[(689,356)(689,475)])
}
Add(PosWindow,1783027,700,336)
{
link(Handle,5775991:Var2,[])
}
Add(GetDataEx,5775991,700,312)
{
Angle=3
link(Data,7195231:Var3,[(642,317)(642,373)])
}
Add(SetParent,9783382,749,329)
{
link(Handle,5775991:Var3,[(755,317)])
link(NewParent,3158579:Handle,[(762,298)(468,298)(468,359)(489,359)])
}
Add(ChildForm,9079268,770,469)
{
link(Data1,7195231:Var2,[(776,450)(629,450)])
link(Data2,12787585:Value,[])
}
BEGIN_SDK
Add(EditMulti,14706909,21,21)
{
WorkCount=1
DataCount=2
Width=230
Height=172
link(doWork1,5450242:doData,[(35,27)(35,104)])
}
Add(MainForm,11065785,126,70)
{
Width=800
Height=600
Color=255
Font=[Tahoma,7,0,16777215,204]
WinStyle=1
Name="Table"
AlphaBlendValue=254
Caption=""
BorderStyle=0
TransparentColor=62495
Position=1
FormFastening="parent.Main"
Point(Handle)
Point(doAlphaBlendValue)
link(onCreate,9279770:in,[])
}
Add(MultiElementEx,9279770,189,84)
{
@Hint=#13:Вписываемся и|13:выравниваемся|
link(Handle,11065785:Handle,[(195,72)(163,72)(163,127)(132,127)])
link(ID рулетки,14706909:Data1,[(202,52)(27,52)])
AddHint(-85,63,95,26,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,11212567,21,21)
{
WorkCount=#2:in|
DataCount=#6:Handle|10:ID рулетки|
Width=160
Height=158
link(in,12392559:doSetParent,[(35,27)(35,90)])
}
Add(PosWindow,13486624,119,84)
{
@Hint=#13:Выравниваемся|
link(Handle,11574663:Var3,[(125,66)])
link(Left,9879325:Var1,[(132,72)])
link(Top,9879325:Var2,[])
AddHint(-68,68,98,13,@Hint)
}
Add(SetParent,12392559,49,84)
{
@Hint=#11:Вписываемся|
link(onSetParent,8755171:doEvent1,[])
link(Handle,11574663:Var2,[])
link(NewParent,11212567:ID рулетки,[(62,52)(34,52)])
AddHint(-19,44,86,13,@Hint)
}
Add(Memory,3474470,133,28)
{
Default=Integer(0)
AddHint(58,11,21,13,Default)
}
Add(GetDataEx,9879325,133,67)
{
Angle=1
link(Data,3474470:Value,[(139,72)])
}
Add(Hub,8755171,91,84)
{
link(onEvent1,13486624:doLeft,[])
link(onEvent2,13486624:doTop,[])
}
Add(GetDataEx,11574663,49,61)
{
Angle=3
link(Data,11212567:Handle,[(27,66)])
}
END_SDK
Add(DoData,5450242,77,98)
{
link(onEventData,11065785:doAlphaBlendValue,[])
link(Data,14706909:Data2,[(83,63)(34,63)])
}
END_SDK
Add(Memory,12787585,777,413)
{
@Hint=#15:AlphaBlendValue|
Default=Integer(255)
AddHint(-7,-28,33,13,Default)
AddHint(62,58,96,13,@Hint)
}
Add(InfoTip,2623824,819,357)
{
Info=#133:При значении AlphaBlendValue=255 встраиваемое окно выравнивается правильно, т.е. по координатам 0,0 внутри нового родительского окна.|0:|131:Если убавить значение AlphaBlendValue хотябы на 1, то выравнивание происходит по координатам 0,0 монитора, а не родительского окна.|
Transparent=1
HAlign=0
Width=358
Height=102
Margin=5
}
Add(GetDataEx,7195231,623,368)
{
Angle=3
link(Data,1218438:Handle,[(608,373)])
}
карма: 0
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#14: 2012-07-31 09:08:17 ЛС | профиль | цитата
kacmem писал(а):
Зачем? Эффект тот же.

В твоем последнем примере, у меня прозрачность вообще ни на что не влияет -- красный квадрат висит посередине экрана и никуда не уезжает.
И вообще, для позиционирования и привязки своей дочерней формы внутри главной формы, я настоятельно рекомендую использовать FormFastening
карма: 22

0
Ответов: 378
Рейтинг: 61
#15: 2012-07-31 10:31:21 ЛС | профиль | цитата
nesco писал(а):
у меня прозрачность вообще ни на что не влияет -- красный квадрат висит посередине экрана и никуда не уезжает
При изменении AlphaBlendValue красный квадрат у меня уезжает в левый верхний угол монитора, только внутри родительского окна.
nesco писал(а):
я настоятельно рекомендую использовать FormFastening
Где его найти можно? Мой HiAsm с последними SVN обновлениями и даже поиск по компонентам от indigo не помог найти его
карма: 0
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)