Вверх ↑
Этот топик читают: Гость
Ответов: 203
Рейтинг: 2
#1: 2016-04-30 18:30:33 ЛС | профиль | цитата
Почему то не конвертирует

code_37245.txt
карма: 0

0
файлы: 1code_37245.txt [1.8KB] [459]
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2016-04-30 20:08:15 ЛС | профиль | цитата

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#3: 2016-04-30 20:56:05 ЛС | профиль | цитата
Обнови Kol-ы, и будет тебе счастье
(у меня - уже счастье)

Отсюда: kols_last.rar
карма: 9

0
Ответов: 203
Рейтинг: 2
#4: 2016-04-30 21:51:28 ЛС | профиль | цитата
Galkov, а проблем не добавит ? У меня _AltBuild стоит... Там вроде предупреждение было о совместимости. Может сделать 2 папки с Hiasm со старым KOL и новым ?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#5: 2016-04-30 23:31:55 ЛС | профиль | цитата
kaban4ik писал(а):
У меня _AltBuild стоит...
Мне неведомо, откуда CriDos брал версии Kol, и почему он не брал последние.
Последний фикс - сегодняшний (в DateTime2SystemTime добавил одну строку).
Попытки связатьcя с CriDos в личке - не увенчались успехом.
Если есть какие-то проблемы, то взрослые люди говорят об этом в лицо. А не отмалчиваются. Мне так кажется.

kaban4ik писал(а):
предупреждение было о совместимости
Любой фикс - это несовместимость.
Если логика твоей программы построена на том, что 2x2=5, и эту ошибку вдруг исправили -- будет несовместимость.

kaban4ik писал(а):
а проблем не добавит ?
Наблюдение: за последний десяток лет они не добавлялись.
А пропадали. Например, у тебя была проблема, а теперь ее нет.

kaban4ik писал(а):
Может сделать 2 папки с Hiasm со старым KOL и новым ?
Угу.
А лучше три. Или четыре - с фиксами разных годов.
Или пару десятков: с разными версиями кодов элементов.
Не, ну действительно: а вдруг, кто-то, делая фикс в кодах элемента, внес новую ошибку.

Это называется шизофрения. И многолетние наблюдения за происходящим - это только подтверждают.

------------ Дoбавленo в 23.31:
Вот, увидел, что в _AltBuild есть папка SmartTracer. А в ней мой lnk_trace.dll
Это и есть шизофрения.
Сравнивать между собой можно работающие варианты.
Например, кто-то работает лучше здесь, а кто-то там... Есть, как минимум, предмет для обсуждения
А сравнивать работающий (мой) и не работающий (из оригинала) -- полный бред.

Такой же, как и "про две папки"
карма: 9

0
Ответов: 203
Рейтинг: 2
#6: 2016-04-30 23:57:56 ЛС | профиль | цитата
Galkov, спасибо за помощь и развернутый ответ.
карма: 0

0
Ответов: 203
Рейтинг: 2
#7: 2016-05-02 16:06:56 ЛС | профиль | цитата
Galkov, что бы не плодить темы напишу сюда.
В delphi в DateUtils unit есть функция IncMonth,IncDay .

Функция IncMonth возвращает значение TDateTime, которое на NumberOfMonths больше, чем переданное значение StartDate.
Элемент времени значения StartDate передаётся неизменным в результат. Значение года увеличивается соответственно.
Значение приращения является произвольным (по умолчанию 1). После приращения месяца, если значение дня слишком велико для полученного месяца/года, то оно уменьшается до самого высокого значения полученного месяца/года.

Я так понимаю у Нас (в Hiasm) KOL и вызывать эту функцию я не могу через IC. Посмотрел аналога в KOL вроде не нашел. Поиск по форуму (вдруг кто делал такой компонент) решения не дал. Подскажите в какую сторону лучше искать решение ,


карма: 0

0
Ответов: 9906
Рейтинг: 351
#8: 2016-05-02 16:27:36 ЛС | профиль | цитата
kaban4ik писал(а):
Посмотрел, аналога в KOL вроде не нашел

А это (из Kol.pas) разве не оно
#pas
procedure IncMonths( var SystemTime : TSystemTime; MonthsNum : Integer );
{* Increases/decreases month number in TSystemTime record onto given
months count (can be negative). Correct result is not garantee if
day number is incorrect for newly obtained month. }
.............
//[procedure IncMonths]
procedure IncMonths( var SystemTime : TSystemTime; MonthsNum : Integer );
var M : Integer;
DateTime : TDateTime;
begin
M := SystemTime.wMonth + MonthsNum - 1;
Inc( SystemTime.wYear, M div 12 );
SystemTime.wMonth := M mod 12 + 1;

// Normalize wDayOfWeek field:
SystemTime2DateTime( SystemTime, DateTime );
DateTime2SystemTime( DateTime, SystemTime );
end;
карма: 9

0
Ответов: 9906
Рейтинг: 351
#9: 2016-05-03 17:07:17 ЛС | профиль | цитата
В общем-то, ДА ..... Кривоватая процедурка.

Может так лучше будет:
Add(MainForm,14990556,280,196)
{
Width=358
Height=195
Position=1
link(onCreate,13915102:doWork3,[(340,216)])
}
Add(Edit,2078963,589,98)
{
Left=22
Top=82
Width=297
}
Add(Button,5253343,280,98)
{
Left=265
Top=20
Height=48
Caption="INC\r\nDEC"
link(onClick,13915102:doWork2,[])
}
Add(Edit,6103169,589,196)
{
Left=22
Top=119
Width=297
}
Add(DateConvertor,2648846,364,98)
{
Mode=8
Format="dd.MM.yyyy -- HH:mm"
Point(Data)
link(onResult,7371580:doEvent1,[])
link(Data,15007419:Text,[])
}
Add(DateConvertor,16753391,532,98)
{
Mode=9
Format="Время - dd.MM.yyyy -- HH:mm"
link(onResult,2078963:doText,[])
}
Add(Hub,7371580,420,98)
{
link(onEvent1,16409841:doIncMonth,[])
link(onEvent2,6702480:doIncYear,[(452,111)(452,209)])
}
Add(DateConvertor,4292288,532,196)
{
Mode=9
Format="Время - dd.MM.yyyy -- HH:mm"
link(onResult,6103169:doText,[])
}
Add(InlineCode,16409841,469,98)
{
WorkPoints=#10:doIncMonth|9:doIncYear|
EventPoints=#8:onResult|
DataPoints=#8:DataTime|6:incNum|
Code=#15:unit HiAsmUnit;|0:|9:interface|29:uses windows,kol,Share,Debug;|0:|4:type|29: THiAsmClass = class(TDebug)|10: public|41: onResult,DataTime,incNum:THI_Event;|51: procedure doIncMonth(var dt:TData; idx:word);|50: procedure doIncYear(var dt:TData; idx:word);|6: end;|0:|14:implementation|0:|33:procedure THiAsmClass.doIncMonth;|65:var DD:TDateTime; ST:TSystemTime; DayTable:PDayTable; M:integer;|5:begin|31: DD := ReadReal(dt, DataTime);|30: DateTime2SystemTime(DD, ST);|61: M := ST.wYear*12 + ST.wMonth + ReadInteger(dt, incNum) - 1;|24: ST.wYear := M div 12;|28: ST.wMonth := M mod 12 + 1;|47: DayTable := @MonthDays[IsLeapYear(ST.wYear)];|71: if ST.wDay > DayTable[ST.wMonth] then ST.wDay := DayTable[ST.wMonth];|30: SystemTime2DateTime(ST, DD);|37: _hi_CreateEvent(dt, @onResult, DD);|4:end;|0:|32:procedure THiAsmClass.doIncYear;|54:var DD:TDateTime; ST:TSystemTime; DayTable:PDayTable;|5:begin|31: DD := ReadReal(dt, DataTime);|30: DateTime2SystemTime(DD, ST);|41: Inc(ST.wYear, ReadInteger(dt, incNum));|47: DayTable := @MonthDays[IsLeapYear(ST.wYear)];|71: if ST.wDay > DayTable[ST.wMonth] then ST.wDay := DayTable[ST.wMonth];|30: SystemTime2DateTime(ST, DD);|37: _hi_CreateEvent(dt, @onResult, DD);|4:end;|0:|4:end.|
@IsLib=True
link(onResult,16753391:doConvert,[])
link(incNum,12743994:Text,[])
}
Add(Edit,15007419,364,49)
{
Left=22
Top=19
Width=223
Text="29.02.2016 -- 2:00"
}
Add(Edit,12743994,476,49)
{
Left=21
Top=49
Width=105
Hint="increment MONTH"
Text="-12"
Alignment=1
DataType=2
}
Add(InlineCode,6702480,469,196)
{
elink(16409841)
link(onResult,4292288:doConvert,[])
link(incNum,1903986:Text,[])
}
Add(Edit,1903986,476,147)
{
Left=147
Top=49
Width=98
Hint="increment YEAR"
Text="-2"
Alignment=1
DataType=2
}
Add(HubEx,13915102,336,98)
{
link(onEvent,2648846:doConvert,[])
}
Add(StyleXP,4300558,280,147)
{
}
карма: 9

1
Голосовали:kaban4ik
Ответов: 203
Рейтинг: 2
#10: 2016-05-03 17:27:07 ЛС | профиль | цитата
Galkov, спасибо огромное. Сам пытался, но у Вас получилось намного лучше.
карма: 0

0
Ответов: 233
Рейтинг: 12
#11: 2016-06-16 03:30:50 ЛС | профиль | цитата
Не подскажите пожалуйста почему в DateConvertor при DateRealToStrFmt нельзя вывести миллисекунды? Вроде в интернете пишут что в Delphi можно вот так - hh:mm:ss.zzz
карма: 2

0
Ответов: 9906
Рейтинг: 351
#12: 2016-06-16 09:40:00 ЛС | профиль | цитата
Подскажем.
Потому-что этим выводом занимается винда (через GetTimeFormat), которая ничего не знает про "zzz"
И даже прямо пишут, что:   The function does not include milliseconds as part of the formatted time string

https://msdn.microsoft.com/en-us/library/windows/desktop/dd318131.aspx

карма: 9

0
Ответов: 8888
Рейтинг: 823
#13: 2016-06-16 10:18:46 ЛС | профиль | цитата
Iliya, а зачем они нужны эти милли-, микросекунды code_37345.txt
карма: 19

0
файлы: 1code_37345.txt [799B] [542]
Ответов: 16884
Рейтинг: 1239
#14: 2016-06-17 17:04:31 ЛС | профиль | цитата
Galkov писал(а):
Может так лучше будет:

incdec.png
Кстати - FormatStr лишние. Слово "Время - " можно задать в маске DateConvertor.
Время - dd.MM.yyyy -- HH:mm

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1incdec.png [35.3KB] [652]
Голосовали:Galkov
Ответов: 9906
Рейтинг: 351
#15: 2016-06-17 18:07:40 ЛС | профиль | цитата
Согласен
Исправил
карма: 9

1
Голосовали:Tad
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)