Вверх ↑
Ответов: 952
Рейтинг: 4
#1: 2011-11-16 22:22:58 ЛС | профиль | цитата
В таком решении тоже есть НО. Если выставил дату, и тут тебе неожиданно пришла месага в аську и ты полез её смотреть, когда вернешься в окошко формы - выбранная дата будет закрыта красным.
Поэтому на деактивацию вешать не пойдет. В принципе это можно решить повесив это на кнопки Ок и Отмена которые присутствуют на форме моей реальной проги, но тут тоже момент, если юзер выберет дату а потом передумает и закроет окошко крестиком, то при следующем открытии фоормы дата не будет замазана красным.
------------ Дoбавленo в 22.22:
Позволил себе несколько изменить твой вариант "кубика" совместил всё воедино.

Add(ChildPanelEx,9299349,259,35)
{
@Hint=#6:Tad_IC|
@Color=65535
AddHint(-43,49,50,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,10511601,21,14)
{
WorkCount=#31:doText2=Установить текст в поле|
EventCount=#14:onEvent2=Выбор|
VarCount=#26:Text=Текущее значение даты|
Width=307
Height=116
HOffset=119
link(doText2,224463:doData,[(31,20)(31,27)])
link(Text,12065899:ResRD,[(146,113)(223,113)])
}
Add(DatePicker,12659837,98,35)
{
Top=-1
Width=79
Height=21
Ctl3D=0
AlignPicker=1
SetDateOnChange=1
Point(DateTime)
link(onChange,2822672:doEvent1,[])
}
Add(Panel,13306313,280,70)
{
Left=214
Top=72
Width=100
Height=20
}
Add(Button,9700205,98,70)
{
Left=79
Top=-1
Width=20
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Ctl3D=0
Caption="X"
Data=Integer(0)
link(onClick,3289766:doWork3,[(189,76)])
}
Add(HubEx,3289766,185,35)
{
link(onEvent,12065899:doWork,[])
}
Add(InlineCode,12065899,217,35)
{
WorkPoints=#6:doWork|
EventPoints=#4:Init|6:toBack|7:toFront|0:|
VarPoints=#5:ResRD|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|14: Rd:integer;|3: |9: public|36: init, toBack, toFront: THI_Event;|45: procedure ResRd(var dt:TData; Index:Word);|49: procedure doWork(var _Data:TData; Index:Word);|3: |5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.doWork;|5:BEGIN|29: Rd := Trunc(toReal(_Data));|16: If Rd<>0 then |8: begin|44: _hi_onEvent(init,Rd); // установить дату|36: _hi_onEvent(toBack); // открыть|6: end|40: else _hi_onEvent(toFront); // скрыть|4:END;|0:|28:procedure THiAsmClass.ResRd;|5:BEGIN|19: dtInteger(dt,Rd);|5:END; |4:end.|
link(Init,12659837:doSetDate,[(289,41)(289,29)(86,29)(86,41)])
link(toBack,4720141:doSendToBack,[])
link(toFront,4720141:doBringToFront,[])
}
Add(Edit,4720141,280,28)
{
Left=3
Top=2
Width=55
Height=15
Color=255
Text=""
ReadOnly=0
Point(doSendToBack)
Point(doBringToFront)
}
Add(DoData,224463,42,21)
{
Data=Integer(0)
link(onEventData,3289766:doWork1,[(189,27)])
}
Add(Hub,2822672,154,35)
{
link(onEvent1,3289766:doWork2,[])
link(onEvent2,10511601:onEvent2,[(198,48)(198,20)])
}
END_SDK


Однако вопрос с закрыванием формы крестиком по прежнему остался.
карма: 0

0