Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#31: 2011-11-04 20:43:42 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 08:00:02
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#32: 2011-11-04 20:54:32 ЛС | профиль | цитата
Tad писал(а):
Я делал кубик лично для user_asm-а, для его конкретной программы

Но для обучения народа основам HiAsm-a и алгоритмостроения надо бы на элементах делать, у нас же графическая среда, пусть и не шибко эффективная, а не классическая.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#33: 2011-11-04 21:09:49 ЛС | профиль | цитата
nesco, на кубик для народа
Add(MainForm,10238893,35,77)
{
Width=156
Height=136
Ctl3D=0
WinStyle=2
BorderStyle=3
Position=1
}
Add(Button,2956194,77,77)
{
Left=10
Top=35
Caption="Data"
Data=Real(639814)
link(onClick,3505315:doWork1,[(130,83)])
}
Add(Button,9197338,77,112)
{
Left=10
Top=65
Caption="Х"
Data=Real(0)
link(onClick,3505315:doWork3,[(130,118)])
}
Add(HubEx,3505315,126,91)
{
link(onEvent,15931035:doWork1,[])
}
Add(Label,11243236,210,91)
{
Left=80
Top=55
}
Add(ChildPanel,15931035,154,91)
{
@Color=9342719
link(onEvent1,11243236:doText,[])
}
BEGIN_SDK
Add(EditMulti,16142350,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=1
Width=272
Height=102
HOffset=175
link(doWork1,15755212:doWork1,[(81,27)])
link(Var1,1145074:Value,[])
}
Add(Panel,16114879,245,42)
{
Left=5
Top=5
Width=126
Height=21
WinStyle=3
}
Add(DatePicker,6099928,35,42)
{
Height=21
Font=[MS Sans Serif,8,1,0,1]
Ctl3D=0
WinStyle=3
link(onChange,15755212:doWork2,[])
}
Add(Button,7399884,35,77)
{
Left=105
Width=20
Font=[Arial,9,1,0,204]
TabOrder=-1
Ctl3D=0
WinStyle=3
Caption="x"
link(onClick,15755212:doWork3,[(81,83)])
}
Add(Label,7248484,196,42)
{
Left=3
Top=3
Width=76
Height=14
Color=255
Caption=""
AutoSize=1
Point(doSendToBack)
Point(doBringToFront)
}
Add(If_else,8186754,98,42)
{
Type=5
Op2=Integer(0)
link(onTrue,5430019:doEvent1,[])
link(onFalse,16578302:doEvent1,[(142,55)(142,83)])
link(Op1,16142350:Data1,[(104,32)(202,32)])
}
Add(HubEx,15755212,77,42)
{
link(onEvent,8186754:doCompare,[])
}
Add(Memory,1145074,196,77)
{
Default=Integer(0)
link(onData,16142350:onEvent1,[(286,83)(286,27)])
}
Add(Hub,5430019,154,42)
{
OutCount=3
link(onEvent1,6099928:doSetDate,[(180,48)(180,36)(23,36)(23,48)])
link(onEvent2,7248484:doSendToBack,[])
link(onEvent3,1145074:doValue,[(182,62)(182,83)])
}
Add(Hub,16578302,154,77)
{
link(onEvent1,7248484:doBringToFront,[(182,83)(182,62)])
link(onEvent2,1145074:doClear,[])
}
END_SDK


user_asm_dogovor.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1user_asm_dogovor.rar [3.8KB] [199]
Ответов: 952
Рейтинг: 4
#34: 2011-11-15 22:39:20 ЛС | профиль | цитата
Вернусь к этой теме.
Tad
Ваш "кубик" просто отличный но есть одно НО, на дочерней форме он выглядит как обычный компонент календаря, закрывающего красного цвета нет.
Может мне что то надо выставить в свойствах?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#35: 2011-11-15 23:24:20 ЛС | профиль | цитата
А Label конечно с прозрачностью ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#36: 2011-11-16 00:49:54 ЛС | профиль | цитата
Ага, снова забыл об этом. На форме есть лейблы с прозрачностью.
------------ Дoбавленo в 00.49:
Второй момент. Повторное открытие дочерней формы и "кубик" снова выглядит как обычный календарь. Наверное надо повесить деактивацию дочерней формы на кнопку Х .... хотя и тут момент вылезет потом ... ладно, пока подумаю...
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#37: 2011-11-16 01:16:56 ЛС | профиль | цитата
user_asm, а так ?
code_25807.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_25807.txt [2KB] [157]
Ответов: 952
Рейтинг: 4
#38: 2011-11-16 21:29:47 ЛС | профиль | цитата
Извини а что в последнем изменилось?
------------ Дoбавленo в 21.29:
Вот что я имею ввиду. Открой форму и выбери дату. Закрой форму. Снова открой.

Add(MainForm,2953706,77,182)
{
Position=1
}
Add(ChildForm,10521188,196,189)
{
}
BEGIN_SDK
Add(EditMulti,14877275,21,21)
{
WorkCount=1
link(doWork1,9676308:doVisible,[(28,27)(28,139)])
}
Add(MainForm,9676308,35,105)
{
Left=35
Top=105
Visible=1
Position=1
Point(doVisible)
}
Add(ChildPanelEx,9299349,140,147)
{
@Hint=#6:Tad_IC|
@Color=65535
AddHint(8,-27,50,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,10511601,21,14)
{
WorkCount=#31:doText2=Установить текст в поле|
VarCount=#26:Text=Текущее значение даты|
Width=230
Height=95
HOffset=119
link(doText2,3289766:doWork1,[(116,20)])
link(Text,12065899:ResRD,[])
}
Add(DatePicker,12659837,49,35)
{
Top=-1
Width=79
Height=21
Ctl3D=0
AlignPicker=1
SetDateOnChange=1
Point(DateTime)
link(onChange,3289766:doWork2,[])
}
Add(Panel,13306313,203,70)
{
Left=214
Top=72
Width=100
Height=20
}
Add(Button,9700205,49,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,[(116,76)])
}
Add(HubEx,3289766,112,35)
{
link(onEvent,12065899:doWork,[])
}
Add(InlineCode,12065899,140,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,[(188,41)(188,29)(37,29)(37,41)])
link(toBack,4720141:doSendToBack,[])
link(toFront,4720141:doBringToFront,[])
}
Add(Edit,4720141,203,28)
{
Left=3
Top=2
Width=55
Height=15
Color=255
Text=""
ReadOnly=0
Point(doSendToBack)
Point(doBringToFront)
}
END_SDK
END_SDK
Add(Button,2246776,147,189)
{
Left=140
Top=85
Width=100
Caption="Открыть форму"
link(onClick,10521188:doWork1,[])
}
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#39: 2011-11-16 22:07:51 ЛС | профиль | цитата
user_asm писал(а):
Извини а что в последнем изменилось?
Label заменена на Edit (борьба с твоей любимой прозрачностью)
А показывать или не показывать выбранную тобой дату - дело чисто твоё.
code_25814.txt
------------ Дoбавленo в 21.59:
подашь 0 не покажет (clear). Новый бланк
подашь дату покажет твою дату. Редактируем предыдущий.


------------ Дoбавленo в 22.07:
Вернее так
Add(ChildForm,10521188,259,91)
{
}
BEGIN_SDK
Add(EditMulti,14877275,21,21)
{
WorkCount=1
Width=216
Height=116
link(doWork1,15140487:doEvent1,[(31,27)(31,41)])
}
Add(MainForm,9676308,91,77)
{
Left=35
Top=105
Visible=1
Position=1
Point(doVisible)
}
Add(ChildPanelEx,9299349,182,35)
{
@Hint=#6:Tad_IC|
@Color=65535
AddHint(-43,49,50,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,10511601,21,14)
{
WorkCount=#31:doText2=Установить текст в поле|
VarCount=#26:Text=Текущее значение даты|
Width=230
Height=95
HOffset=119
link(doText2,3289766:doWork1,[(116,20)])
link(Text,12065899:ResRD,[])
}
Add(DatePicker,12659837,49,35)
{
Top=-1
Width=79
Height=21
Ctl3D=0
AlignPicker=1
SetDateOnChange=1
Point(DateTime)
link(onChange,3289766:doWork2,[])
}
Add(Panel,13306313,203,70)
{
Left=214
Top=72
Width=100
Height=20
}
Add(Button,9700205,49,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,[(116,76)])
}
Add(HubEx,3289766,112,35)
{
link(onEvent,12065899:doWork,[])
}
Add(InlineCode,12065899,140,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,[(188,41)(188,29)(37,29)(37,41)])
link(toBack,4720141:doSendToBack,[])
link(toFront,4720141:doBringToFront,[])
}
Add(Edit,4720141,203,28)
{
Left=3
Top=2
Width=55
Height=15
Color=255
Text=""
ReadOnly=0
Point(doSendToBack)
Point(doBringToFront)
}
END_SDK
Add(Hub,15140487,42,35)
{
link(onEvent1,16133971:doData,[])
link(onEvent2,9676308:doVisible,[(70,48)(70,111)])
}
Add(DoData,16133971,91,35)
{
Data=Integer(0)
link(onEventData,9299349:doText2,[])
}
END_SDK
Add(Button,2246776,196,91)
{
Left=140
Top=85
Width=100
Caption="Открыть форму"
link(onClick,10521188:doWork1,[])
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_25814.txt [2.6KB] [166]
Ответов: 952
Рейтинг: 4
#40: 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
Ответов: 8926
Рейтинг: 823
#41: 2011-11-16 22:48:14 ЛС | профиль | цитата
user_asm писал(а):
вопрос с закрыванием формы крестиком по прежнему остался
Запретить и не пущать (верхняя точка Close)
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#42: 2011-11-17 00:08:47 ЛС | профиль | цитата
user_asm, ты это смотрел http://forum.d2h.ru//getfile/25684
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#43: 2011-11-27 00:38:44 ЛС | профиль | цитата
Пожалуй снова вернусь к этому хитрому компоненту и отличному мультику собранного Tad.
При нажатии на кнопку Редактировать из БД выбирается запись, данные разбиваются и выкидываются в различные компоненты. В основном в Эдиты но есть и кучка Календарей.
Так как некоторые даты могли быть пустыми при первоначальном внесении записи то после вывода значения ячейки ставлю компонент Кейс, ну что бы если пусто то подаем 0 на мультик - получаем красное поле. А если не ноль то на календаре видим дату которая была внесена ранее. Вот тут и вопрос - у меня почему-то не выводится в календарь эта дата. Даже без Кейса. В Календаре я вижу сегодняшнюю дату, хотя из MT_MultiData строка выходит в нужном формате 2011-11-26
Что я делаю не так? Возможно я подаю не на ту точку?

code_25976.txt
карма: 0

0
файлы: 1code_25976.txt [2.4KB] [171]
Ответов: 16884
Рейтинг: 1239
#44: 2011-11-27 10:20:10 ЛС | профиль | цитата
user_asm писал(а):
хотя из MT_MultiData строка выходит в нужном формате 2011-11-26
Tad писал(а):
user_asm, ты это смотрел [url]http://forum.d2h.ru//getfile/25684 [/url]
не смотрел. Весьма прискорбно.
описание для точки календаря писал(а):
doSetDate=Устанавливает дату по значению даты-времени типа Real из потока ARG(Date)|1|
а 2011-11-26 это совсем не Real.
------------ Дoбавленo в 10.20:
Если у тебя в базе дата хранится в формате 2011-11-26 , то вместо Case нужно ставить
Add(DateConvertor,13504192,182,168)
{
Mode=8
Format="yyyy-MM-dd"
}
а на выходе мультика
Add(DateConvertor,7725428,182,224)
{
Mode=9
Format="yyyy-MM-dd"
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:user_asm
Ответов: 952
Рейтинг: 4
#45: 2011-11-27 10:47:16 ЛС | профиль | цитата
Спасибо, разобрался.
Сделал вот так:
code_25979.txt
карма: 0

0
файлы: 1code_25979.txt [2.6KB] [184]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)