Вверх ↑
Этот топик читают: Гость
Ответов: 501
Рейтинг: 18
#31: 2016-07-30 14:56:10 ЛС | профиль | цитата
Medvedoc,
костыли спасут мир

Add(MainForm,10377423,413,77)
{
Width=369
Height=295
Point(onMouseEnter)
Point(SizeHeader)
Point(Left)
Point(Top)
}
Add(ComboBox,7723821,504,63)
{
Left=85
Top=50
Width=200
Height=21
Strings=#5:12321|5:11113|5:11111|5:11122|5:45464|5:67867|5:87867|5:34535|5:56546|5:46464|5:46546|
ReadOnly=0
Point(PHandle)
Point(onMouseLeave)
Point(onMouseEnter)
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(onSelect)
Point(onKeyDown)
}
Add(InlineCode,3059356,518,252)
{
WorkPoints=#14:doShowDropDown|
DataPoints=#7:PHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: PHandle: THI_Event;|59: procedure doShowDropDown(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|66:procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);|3:var|21: sControl: PControl;|25: Info: TComboBoxInfo; |5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|38: if not Assigned(sControl) then exit;|34: ZeroMemory(@Info, SizeOf(Info));|30: Info.cbSize := SizeOf(Info);|41: GetComboBoxInfo(sControl.Handle, Info);|69: SendMessage(sControl.Handle, CB_SHOWDROPDOWN, ToInteger(_Data), 0);|47: ShowScrollBar(Info.hwndList, SB_VERT, false);|4:end;|0:|4:end.|
link(PHandle,7723821:PHandle,[])
}
Add(ChanelToIndex,995737,672,294)
{
link(onIndex,1648065:doData,[])
}
Add(PointInRect,12893594,616,301)
{
Point2AsOffset=0
link(onTrue,995737:doWork2,[])
link(onFalse,995737:doWork1,[(660,314)(660,300)])
link(Point,15729776:Point,[(622,285)(706,285)])
link(RPoint1,13635318:Point,[])
link(RPoint2,921591:Point,[(636,285)(664,285)])
}
Add(PointXY,13635318,623,238)
{
link(X,7638766:Result,[(629,222)(580,222)])
link(Y,2712349:Result,[(636,222)(517,222)])
}
Add(Timer,8911384,420,175)
{
Interval=10
link(onTimer,2712349:doCalc,[])
}
Add(MouseEvent,6661673,700,56)
{
}
Add(PointXY,921591,658,238)
{
link(X,7723821:Width,[(664,212)(545,212)])
link(Y,10317435:Result,[])
}
Add(PointXY,15729776,700,238)
{
link(X,6661673:MouseX,[])
link(Y,6661673:MouseY,[])
}
Add(ChangeMon,1648065,721,294)
{
link(onData,4054098:doEvent1,[])
}
Add(MathParse,2712349,511,175)
{
DataCount=3
MathStr="%1 + %2 + %3"
link(onResult,7638766:doOperation,[])
link(X1,10377423:SizeHeader,[(517,142)(419,142)])
link(X2,10377423:Top,[(524,142)(433,142)])
link(X3,7723821:Top,[(531,141)(538,141)])
}
Add(Math,7638766,574,175)
{
link(onResult,10317435:doOperation,[])
link(Op1,10377423:Left,[(580,142)(426,142)])
link(Op2,7723821:Left,[(587,141)(531,141)])
}
Add(Hub,4054098,784,294)
{
link(onEvent1,12403760:doCase,[])
link(onEvent2,12522858:In,[])
}
Add(Math,10317435,665,175)
{
link(onResult,12893594:doCheck,[(709,181)(709,240)(604,240)(604,307)])
link(Op1,7723821:Height,[(671,138)(552,138)])
link(Op2,2581835:Value,[])
}
Add(Memory,2581835,672,105)
{
Default=Integer(0)
}
Add(Case,12403760,875,294)
{
Value=Integer(1)
DataOnTrue=Integer(105)
link(onNextCase,2581835:doClear,[(912,300)(912,202)(653,202)(653,118)])
link(onTrue,2581835:doValue,[(912,307)(912,202)(653,202)(653,111)])
}
Add(LineBreak,691918,462,252)
{
link(Out,3059356:doShowDropDown,[])
Primary=[12522858,357,49]
}

карма: 1
        ]  
0
Ответов: 16435
Рейтинг: 1210
#32: 2016-07-30 15:41:07 ЛС | профиль | цитата
RAWY_EX, хреновые костыли. Не спасут.
Ты не пробовал выбрать 46546 - оно последнее в выпадающем списке.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 25395
Рейтинг: 2070
#33: 2016-07-30 16:54:36 ЛС | профиль | цитата
Tad писал(а):
Ты не пробовал выбрать 46546 - оно последнее в выпадающем списке.

А что не так? У меня прекрасно выбирает и клавишами, и мышью, а вот скрол мышью не работает и про это я уже писал. Если в этом только проблема?
карма: 19

0
Ответов: 501
Рейтинг: 18
#34: 2016-07-30 17:11:27 ЛС | профиль | цитата
Tad, осмелюсь предположить что *опа с фокусом? ну я тут не при делах это все мусор nesco я давал пример без хлама
вот так у вас должно работать

Add(MainForm,10377423,266,77)
{
Width=369
Height=295
Point(onMouseEnter)
Point(SizeHeader)
Point(Left)
Point(Top)
Point(onMouseWheel)
}
Add(ComboBox,7723821,427,70)
{
Left=130
Top=35
Width=200
Height=21
Strings=#5:12321|5:11113|5:11111|5:11122|5:45464|5:67867|5:87867|5:34535|5:56546|5:46464|5:46546|
ReadOnly=0
Point(PHandle)
Point(onMouseLeave)
Point(onMouseEnter)
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(onSelect)
Point(onKeyDown)
Point(doSetFocus)
Point(onMouseWheel)
}
Add(InlineCode,3059356,441,259)
{
WorkPoints=#14:doShowDropDown|
DataPoints=#7:PHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: PHandle: THI_Event;|59: procedure doShowDropDown(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|66:procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);|3:var|21: sControl: PControl;|25: Info: TComboBoxInfo; |5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|40: //if not Assigned(sControl) then exit;|36: //ZeroMemory(@Info, SizeOf(Info));|32: //Info.cbSize := SizeOf(Info);|43: //GetComboBoxInfo(sControl.Handle, Info);|69: SendMessage(sControl.Handle, CB_SHOWDROPDOWN, ToInteger(_Data), 0);|47: ShowScrollBar(Info.hwndList, SB_VERT, false);|4:end;|0:|4:end.|
link(PHandle,16069202:Var2,[])
}
Add(ChanelToIndex,995737,595,301)
{
link(onIndex,1648065:doData,[])
}
Add(PointInRect,12893594,539,308)
{
Point2AsOffset=0
link(onTrue,995737:doWork2,[])
link(onFalse,995737:doWork1,[(583,321)(583,307)])
link(Point,15729776:Point,[(545,292)(629,292)])
link(RPoint1,13635318:Point,[])
link(RPoint2,921591:Point,[(559,292)(587,292)])
}
Add(PointXY,13635318,546,245)
{
link(X,7638766:Result,[(552,229)(503,229)])
link(Y,2712349:Result,[(559,229)(440,229)])
}
Add(Timer,8911384,343,182)
{
Interval=10
link(onTimer,2712349:doCalc,[])
}
Add(MouseEvent,6661673,623,63)
{
}
Add(PointXY,921591,581,245)
{
link(X,7723821:Width,[(587,219)(468,219)])
link(Y,10317435:Result,[])
}
Add(PointXY,15729776,623,245)
{
link(X,6661673:MouseX,[])
link(Y,6661673:MouseY,[])
}
Add(ChangeMon,1648065,644,301)
{
link(onData,4054098:doEvent1,[])
}
Add(MathParse,2712349,434,182)
{
DataCount=3
MathStr="%1 + %2 + %3"
link(onResult,7638766:doOperation,[])
link(X1,10377423:SizeHeader,[(440,149)(272,149)])
link(X2,10377423:Top,[(447,149)(286,149)])
link(X3,7723821:Top,[(454,148)(461,148)])
}
Add(Math,7638766,497,182)
{
link(onResult,10317435:doOperation,[])
link(Op1,10377423:Left,[(503,149)(279,149)])
link(Op2,7723821:Left,[(510,148)(454,148)])
}
Add(Hub,4054098,707,301)
{
link(onEvent1,12403760:doCase,[])
link(onEvent2,12522858:In,[])
}
Add(Math,10317435,588,182)
{
link(onResult,12893594:doCheck,[(632,188)(632,247)(527,247)(527,314)])
link(Op1,7723821:Height,[(594,145)(475,145)])
link(Op2,2581835:Value,[])
}
Add(Memory,2581835,595,112)
{
Default=Integer(0)
}
Add(Case,12403760,798,301)
{
Value=Integer(1)
DataOnTrue=Integer(105)
link(onNextCase,2581835:doClear,[(835,307)(835,209)(576,209)(576,125)])
link(onTrue,2581835:doValue,[(835,314)(835,209)(576,209)(576,118)])
}
Add(LineBreak,8595785,315,252)
{
link(Out,13085338:doEvent1,[])
Primary=[12522858,427,56]
}
Add(GetDataEx,16069202,441,238)
{
link(Data,7723821:PHandle,[])
}
Add(Hub,13085338,392,252)
{
link(onEvent1,7723821:doSetFocus,[(416,258)(416,118)])
link(onEvent2,3059356:doShowDropDown,[])
}

карма: 1
        ]  
0
Разработчик
Ответов: 25395
Рейтинг: 2070
#35: 2016-07-30 17:33:29 ЛС | профиль | цитата
RAWY_EX писал(а):
ну я тут не при делах это все мусор nesco я давал пример без хлама
вот так у вас должно работать

Ты хоть понимаешь, что правишь?

procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);
var
sControl: PControl;
Info: TComboBoxInfo;
begin
sControl := PControl(ToIntegerEvent(PHandle));
//if not Assigned(sControl) then exit;
//ZeroMemory(@Info, SizeOf(Info));
//Info.cbSize := SizeOf(Info);
//GetComboBoxInfo(sControl.Handle, Info);
SendMessage(sControl.Handle, CB_SHOWDROPDOWN, ToInteger(_Data), 0);
ShowScrollBar(Info.hwndList, SB_VERT, false);
end;


Ну и нафиг тебе тогда последняя строка кода, если ты взял, да и отключил получение структуры, которая содержит дескриптор окна сабкласса, отключил бы и ее для полного счастья, и тогда вообще IC не нужен, и решается все обычным SendMessage, пример с ним уже есть в теме
------------ Дoбавленo в 17.33:
RAWY_EX писал(а):
я давал пример без хлама

А где это, интересно, твой пример без хлама, что-то в упор его не видно?
карма: 19

0
Ответов: 16435
Рейтинг: 1210
#36: 2016-07-30 18:15:14 ЛС | профиль | цитата
А если этих ComboBox-ов на форме штук 10 ?
Пока ведёшь мышку к нужному, все, попадающиеся по дороге, открывают рты.
Хоть спать не ложись.
Идиотизм ИМХО.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 501
Рейтинг: 18
#37: 2016-07-30 19:15:45 ЛС | профиль | цитата
nesco,
ой вот так хотел сразу. переборщил с Сtr + V
procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);
var
sControl: PControl;
Info: TComboBoxInfo;
begin
sControl := PControl(ToIntegerEvent(PHandle));
//if not Assigned(sControl) then exit;
//ZeroMemory(@Info, SizeOf(Info));
Info.cbSize := SizeOf(Info);
GetComboBoxInfo(sControl.Handle, Info);
SendMessage(sControl.Handle, CB_SHOWDROPDOWN, ToInteger(_Data), 0);
ShowScrollBar(Info.hwndList, SB_VERT, false);
end;

карма: 1
        ]  
0
Ответов: 16435
Рейтинг: 1210
#38: 2016-07-30 19:58:23 ЛС | профиль | цитата
code_37551.txt
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37551.txt [1.9KB] [144]
Ответов: 501
Рейтинг: 18
#39: 2016-07-30 20:30:57 ЛС | профиль | цитата
nesco,
nesco писал(а):
А где это, интересно, твой пример без хлама, что-то в упор его не видно?
видимо не в упор
вот прямо в компонент вынес без ваших IC даже бубен не брал и ноги не разминал
http://forum.hiasm.net/forum_serv.php?q=56&id=4393
учитесь делать все проще
------------ Дoбавленo в 20.30:
и теперь IC сократился на 6 строчек

Add(InlineCode,3059356,406,294)
{
WorkPoints=#14:doShowDropDown|
DataPoints=#7:PHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|3: |9: public|23: Handle: THI_Event;|59: procedure doShowDropDown(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|66:procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);|5:begin|76: SendMessage(ToIntegerEvent(Handle), CB_SHOWDROPDOWN, ToInteger(_Data), 0);|4:end;|4:end.|
}


карма: 1
        ]  
0
Разработчик
Ответов: 4668
Рейтинг: 420
#40: 2016-07-30 20:40:04 ЛС | профиль | цитата
RAWY_EX писал(а):
ой вот так хотел сразу. переборщил с Сtr + V

А теперь, уважаемый RAWY_EX, не подключайте к вашему IC к точке PHandle связи и попробуйте запустить проект.
карма: 10
0
Разработчик
Ответов: 25395
Рейтинг: 2070
#41: 2016-07-30 20:59:10 ЛС | профиль | цитата
RAWY_EX писал(а):
учитесь делать все проще

Ага, только компонент ты старый взял за основу.
RAWY_EX писал(а):
и теперь IC сократился на 6 строчек

Этот IC вообще нах никому не нужен, тк его роль спокойно выполнит штатный компонент SendMessage

А я объясню, почему я не использую дескриптор окна, а указатель на контрол. Потому, что иногда необходимо использовать свойства контрола или его обработчик, или приаттачить свой обработчик к уже готовому.
карма: 19

0
Ответов: 501
Рейтинг: 18
#42: 2016-07-30 21:32:29 ЛС | профиль | цитата
Assasin, ну и? у вас AV?

nesco,
nesco писал(а):
Ага, только компонент ты старый взял за основу.
ну чем богат кому надо присобачит
nesco писал(а):
Этот IC вообще нах никому не нужен, тк его роль спокойно выполнит штатный компонент SendMessage
а разве при использовании IC размер ехе не будет меньше чем с SendMessage пусть не намного но все же
nesco писал(а):
А я объясню, почему я не использую дескриптор окна, а указатель на контрол. Потому, что иногда необходимо использовать свойства контрола или его обработчик, или приаттачить свой обработчик к уже готовому.
буду знать и юзать но этот IC же не универсальный а для конкретной задачи
карма: 1
        ]  
0
Разработчик
Ответов: 25395
Рейтинг: 2070
#43: 2016-07-30 22:01:07 ЛС | профиль | цитата
RAWY_EX писал(а):
но этот IC же не универсальный а для конкретной задачи

Но я-то использовал его в универсальных целях, только потом удалил ненужное

RAWY_EX писал(а):
а разве при использовании IC размер ехе не будет меньше чем с SendMessage

Я тя умоляю, нашел на чем экономить.
карма: 19

0
Ответов: 251
Рейтинг: 6
#44: 2016-08-04 03:40:57 ЛС | профиль | цитата
Ребята подскажите пожалуйста как поместить поверх раскрывающегося listboxa от comboboxa другой scrollbar?
code_37568.txt

В данный момент если комбобокс скрыт сторонний скроллбар располагается поверх него, но только стоит раскрыть его как раскрывающийся листбокс все перекрывает.

------------ Дoбавленo в 03.04:
RAWY_EX, кстати спасибо за пример с радиокнопками. Благодаря примеру смог стилизовать внешний вид программы. Правда немного изменил код, но это лучше чем стандартный внешний вид. Повозиться пришлось с наличием более 2-х радиокнопок, но работает.
------------ Дoбавленo в 03.07:
В принципе стандартными средствами и photoshop можно стилизовать приложение, главное желание и терпение. Так что приношу извинения ребята за слова в начале этой темы. Единственный минус от этого метода - приложение получается потяжелее, но внешний вид требует жертв
------------ Дoбавленo в 03.40:
Чуть не забыл, а как можно часть программы вынести в отдельный модуль? Сделать подобие подключаемой библиотеки.
карма: 0

0
файлы: 1code_37568.txt [300B] [136]
Ответов: 501
Рейтинг: 18
#45: 2016-08-04 10:40:11 ЛС | профиль | цитата
Medvedoc,
Medvedoc писал(а):
как поместить поверх раскрывающегося listboxa от comboboxa другой scrollbar
по моему никак он же рисует поверх всего
Medvedoc писал(а):
приложение получается потяжелее
что картинки в 4K вставляешь??
Medvedoc писал(а):
Чуть не забыл, а как можно часть программы вынести в отдельный модуль? Сделать подобие подключаемой библиотеки.
в примерах есть
Господа форумчане, подскажите формулу размера ползунка скролбокса. сижу в формулах по уши а котелок не может собраться в кучу и видать формулу
карма: 1
        ]  
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)