Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#31: 2007-05-21 20:41:50 правка | ЛС | профиль | цитата


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

0
Ответов: 902
Рейтинг: 27
#32: 2007-05-21 23:16:17 ЛС | профиль | цитата
Galkov,
За свои слова отвечать следует даже чайникам


За базар отвечаю:
Тест 1
code_1443.txt

Тест 2
Add(MainForm,12770907,202,224)
{
Left=20
Top=105
Width=1039
Height=481
}
Add(GetData,13399831,577,259)
{
link(Data,5842029:Count,[(583,254)(471,254)])
}
Add(Hub,13238067,654,322)
{
link(onEvent1,812551:doEvent1,[(696,328)(696,275)(644,275)(644,202)])
link(onEvent2,8351039:doAdd,[(696,335)(696,375)(458,375)(458,402)])
}
Add(Button,4448388,279,266)
{
Left=130
Top=385
Caption="Пуск"
link(onClick,8990706:doEvent1,[(356,272)(356,279)])
}
Add(StringTable,8351039,468,396)
{
Left=10
Top=15
Width=500
Height=325
Font=[MS Sans Serif,8,1,0,1]
ParentFont=0
TextBkColor=-16777197
BkColor=-16777197
StaticColumn=0
TableWBreak=0
MultiSelect=0
Grid=0
Grid3D=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Columns=#5:1=375|5:2=375|
StrDelimiter=" "
Redaction=0
ColumnClick=1
Flat=1
ColorSp=255
Point(doSelect)
Point(Matrix)
Point(doInsert)
Point(doAddColumn)
Point(doSort)
Point(doSendToBack)
Point(doBringToFront)
Point(Strings)
Point(StringTable)
Point(Index)
Point(onDblClick)
Point(onBeforeLineChange)
Point(onLineChange)
Point(FileName)
Point(doEnsureVisible)
Point(onColumnClick)
Point(onMouseDown)
Point(onMouseMove)
Point(onMouseUp)
Point(doInitTxtTab)
link(onClick,12981050:doWork3,[(616,402)(616,217)])
}
Add(Memo,5842029,458,203)
{
Left=515
Top=15
Width=500
Height=325
Point(onSetFocus)
Point(onKillFocus)
link(onChange,12981050:doWork1,[(604,209)(604,203)])
}
Add(ChildPanel,12981050,719,197)
{
link(Data1,13399831:Data2,[(725,187)(664,187)(664,294)(590,294)])
}
BEGIN_SDK
Add(EditMulti,14958345,3,3)
{
WorkCount=3
DataCount=1
VarCount=1
Width=255
Height=204
link(doWork1,14549902:doData,[(26,9)(26,20)])
link(doWork2,15376893:doPosition,[(26,16)(26,83)])
link(doWork3,12744651:doOperation,[(19,23)(19,125)])
link(Var1,15376893:Position,[(9,158)(55,158)])
}
Add(Panel,8247567,203,161)
{
Left=260
Top=380
Width=744
Height=31
Color=16711680
Point(doColor)
}
Add(StrCat,8701364,147,14)
{
Str2=" стр."
link(onStrCat,10754188:doText,[])
}
Add(StrCat,7324952,98,14)
{
Str1=" Всего "
link(onStrCat,8701364:doStrCat,[])
}
Add(DoData,14549902,49,14)
{
link(onEventData,7324952:doStrCat,[])
link(Data,14958345:Data1,[(55,9)(9,9)])
}
Add(Label,10754188,196,14)
{
Left=5
Top=5
Width=147
Height=18
Color=16711680
Font=[MS Sans Serif,8,1,16776960,1]
Caption=" Всего 0 стр."
AutoSize=1
ColorHover=255
}
Add(Math,12744651,35,119)
{
Op1=1
link(onResult,2194867:doText,[])
}
Add(Label,2194867,91,119)
{
Left=685
Top=5
Width=45
Height=17
Color=16711680
Font=[MS Sans Serif,8,1,16776960,1]
Caption="0"
ColorHover=255
}
Add(Label,8514892,133,119)
{
Left=615
Top=5
Width=62
Height=17
Color=16711680
Font=[MS Sans Serif,8,1,16776960,1]
Caption="Строка №"
ColorHover=255
}
Add(ProgressBar,15376893,49,77)
{
Left=165
Top=5
Width=435
Color=16711680
ProgressColor=255
Point(doBringToFront)
Point(doSendToBack)
}
END_SDK
Add(StatusBar,8960529,813,264)
{
SizeGrip=1
Panels=#28:Жуков В.А-juk.88@mail.ru=600|
Point(doWidth)
}
Add(MultiElement,11386204,722,264)
{
link(onEvent1,8960529:doText,[])
link(Data1,12981050:Var1,[(728,247)(725,247)])
}
BEGIN_SDK
Add(EditMulti,11007417,3,3)
{
EventCount=1
WorkCount=1
DataCount=1
Width=360
Height=218
link(doWork1,6018708:doEvent1,[(50,9)(50,62)])
}
Add(FormatStr,14140430,189,168)
{
DataCount=1
Mask=" Время выполнения: %1"
link(onFString,6387136:doEvent1,[(258,174)(258,66)])
}
Add(Time,8222519,42,21)
{
Time_Date=1
Format="D.M.Y h:m:s"
}
Add(GetData,12814309,42,70)
{
link(Data,8222519:FormatTime,[])
}
Add(Convertor,11666190,49,119)
{
Mode=14
link(onResult,13386159:doValue,[])
link(Data,12814309:Data2,[])
}
Add(Memory,13386159,98,119)
{
}
Add(Convertor,15596794,42,168)
{
Mode=14
link(onResult,14214530:doOperation,[])
link(Data,12814309:Data1,[])
}
Add(Math,14214530,91,168)
{
OpType=1
link(onResult,13529190:doConvert,[])
link(Op2,13386159:Value,[])
}
Add(Convertor,13529190,140,168)
{
Mode=13
link(onResult,14140430:doString,[])
}
Add(StrCat,6121416,246,60)
{
Str2=" %"
link(onStrCat,6387136:doEvent2,[(286,66)(286,73)])
}
Add(DoData,13504102,148,60)
{
link(onEventData,10215808:doStrCat,[])
link(Data,6070663:Data1,[(154,53)(125,53)])
}
Add(Hub,6387136,295,60)
{
InCount=2
OutCount=1
link(onEvent1,11007417:onEvent1,[(345,66)(345,9)])
}
Add(StrCat,10215808,197,60)
{
Str1=" Выполненно на: "
link(onStrCat,6121416:doStrCat,[(237,66)(237,66)])
}
Add(Switch,8361261,248,170)
{
Default=0
Point(onOn)
Point(onOff)
link(onOff,11666190:doConvert,[(290,190)(290,161)(39,161)(39,125)])
}
Add(GetData,6070663,119,14)
{
link(Data,11007417:Data1,[(125,9)(9,9)])
}
Add(Hub,14969551,304,170)
{
link(onEvent1,15596794:doConvert,[(346,176)(346,158)(32,158)(32,174)])
link(onEvent2,8361261:doSwitch,[(346,183)(346,160)(238,160)(238,176)])
}
Add(Hub,6018708,98,56)
{
OutCount=3
link(onEvent1,13504102:doData,[(139,62)(139,66)])
link(onEvent2,8361261:doReset,[(189,69)(189,183)])
link(onEvent3,887370:doCompare,[(233,76)(233,125)])
}
Add(If_else,887370,245,119)
{
Op2=Real(0)
link(onTrue,14969551:doEvent1,[(290,125)(290,176)])
link(Op1,6070663:Data2,[(251,83)(132,83)])
}
END_SDK
Add(ODialog,2297790,360,203)
{
link(onExecute,5842029:doLoad,[(425,209)(425,237)])
}
Add(Button,6207305,276,203)
{
Left=35
Top=385
Caption="Открыть"
link(onClick,2297790:doExecute,[])
}
Add(DoData,1263620,472,287)
{
link(onEventData,8351039:doInitTxtTab,[(514,293)(514,357)(458,357)(458,486)])
link(Data,5842029:Text,[(478,268)(464,268)])
}
Add(Hub,8990706,402,273)
{
OutCount=3
link(onEvent1,13238067:doEvent1,[(544,279)(544,328)])
link(onEvent2,8351039:doClear,[(451,286)(451,409)])
link(onEvent3,1263620:doData,[])
}
Add(Hub,812551,654,196)
{
link(onEvent1,12981050:doWork2,[(702,202)(702,210)])
link(onEvent2,11386204:doWork1,[(704,209)(704,270)])
}
Add(InfoTip,8009998,703,238)
{
Info=#34:Счётчик времени и % в статус баре.|
Font=[MS Sans Serif,8,1,8388608,1]
Width=106
Height=102
}
Add(InfoTip,1711760,-18,301)
{
Info=#28:При загрузке 423036 строк,|46:Время передачи в таблицу: 1 минута 51 секунда.|0:|126:Галков, при таком количестве строк разница в 40 сек. конечно не существенна,но я так и не понял чем первая схема лутше второй?|0:|57:Единственно я не пойму куды здесь счётчик времени совать?|61:Если начало отсчёта на кнопку пуск,то как узнать об окончании|14:инициализации?|
Font=[MS Sans Serif,8,1,8388608,1]
Width=267
Height=207
}

В два три раза, это я конечно грубанул,извините.
Но ведь разница в 40 сек. есть
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_1443.txt [7.4KB] [318]
Разработчик
Ответов: 26109
Рейтинг: 2124
#33: 2007-05-22 02:58:34 ЛС | профиль | цитата
juk, глюченную схему давай с RichEditor'ом
карма: 22

0
Ответов: 902
Рейтинг: 27
#34: 2007-05-22 03:47:55 ЛС | профиль | цитата
nesco, Схема таже:
code_1445.txt

Может я просто чего не так настроил? У меня при передаче строк в таблицу выводятся цифры.
И ещё если просто загрузить в таблицу несколько строк,а потом прокручивать текст туда-сюда ползунком,то таблица открывается на весь экран и даже после закрытия программы какоето время ещё висит,постепенно убираясь там,где водиш мышкой.
Это пока единственный глюк что я заметил.Если не считать выше изложенный.

[size=-2]------ Добавлено в 03:47
И с рабочим столом творится что-то ужасное!
Но я очень посторался ,быстро туда-сюда листал текст.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_1445.txt [7.5KB] [338]
Ответов: 9906
Рейтинг: 351
#35: 2007-05-22 07:23:23 ЛС | профиль | цитата
juk писал(а):
Единственно я не пойму куды здесь счётчик времени совать?
Если начало отсчёта на кнопку пуск,то как узнать об окончании
инициализации?

Это не "единственно" - это ГЛАВНОЕ.
Ровно в тот момент, когда найдешь "куды совать", так у тебя и время работы станет даже больше

И белые люди проводят сравнение - в РАВНЫХ условиях
Перед тем как делать вывод о причинах.

Если не нашел "куды совать" во втором примере - отключи "сование" в первом, и после этого сравнивай.
Или для примера отключи в первом StringTable.doAdd - узнаешь чего стоит ТОЛЬКО твое "сование"

Наверняка оно (сование) на 40 секунд и потянет.
Экспериментаторы, блин
Ну давай, продолжай отвечать за слова

[size=-2]------ Добавлено в 07:15
juk, вот тебе, на всякий случай, для осознания цены "сования", и цены внешнего Enum (который nesco съэкономил знаменитым методом) - тестовый пример:
code_1446.txt

карма: 9

0
файлы: 1code_1446.txt [1.9KB] [398]
Гость
Ответов: 17029
Рейтинг: 0
#36: 2007-05-22 08:32:41 правка | ЛС | профиль | цитата


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

0
Ответов: 9906
Рейтинг: 351
#37: 2007-05-22 09:30:26 ЛС | профиль | цитата
juk писал(а):
Просто на нижнюю точку хаба, после начала инициализации,правда ещё точность не проверял.

Да ну...

Логика топика очень простая:
1) Вопрос: как можно быстрее перегнать все строки из StrList в Memo, чем через Enum
2) Ответ: передать текст целиком
3) Вопрос: а как если не в Memo, а в StringTable
4) Ответ: никак

Так вот, я за свои слова отвечаю: НИКАК, оно и есть НИКАК.
Простите, но остальные методы для "быстрее" из этого топика - вранье

[size=-2]------ Добавлено в 09:30
И не капризничайте больной: доктор сказал в морг, значит - в морг
карма: 9

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#38: 2007-05-22 10:25:31 ЛС | профиль | цитата
Galkov, да -- напрямую никак, всеравно Add с построчным вводом надо делать, но улушать и оптимизировать ради десятка секунд и экономии компонентов никто не запрещал.


[size=-2]------ Добавлено в 10:25
juk, где ты Convertor нашел, что у него методы появились _work_doConvert13 и _work_doConvert14, и что это за режими конвертации ты применял?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#39: 2007-05-22 10:48:48 ЛС | профиль | цитата
nesco писал(а):
всеравно Add с построчным вводом надо делать, но улушать и оптимизировать ради десятка секунд и экономии компонентов никто не запрещал

Умный работает один раз, дурак - десять.
Расшифровываю:
а) можно запихивать куски схемы в элементы, и писать на них на всех (те самые "10 раз") хэлп на 3 страницы - на каждый .
б) можно работать над тем, чтобы HiAsm делал коды НЕ ХУЖЕ тех, что ты запихивашь в элемент методом "мультипроцессности"


Это TDateTime
Real - грубо говоря

[size=-2]------ Добавлено в 10:48
nesco писал(а):
ради десятка секунд

Не увидел десятка секунд.
Пример выше - Enum на миллион. Там нет десятка секунд.
Точнее экспериментировать надо.
карма: 9

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#40: 2007-05-22 11:50:37 ЛС | профиль | цитата
Galkov писал(а):
HiAsm делал коды НЕ ХУЖЕ

Я с этим полностью согласен. Меня, в этом случае, сдерживает только одно -- увеличение внешних компонентов. Включить одну точку в компоненте проще, чем иметь лишний компонент на схеме. Даже имея много разрывов, сносок, описаний, красивую разводку -- все это гораздо сложнее, чем просто иметь один линк. Это напрямую связано с упрощением восприятия схемы. Но это мое ИМХО, и никак, пока, я от него отойти не могу.
Galkov писал(а):
Это TDateTime

У меня компонент Converter с SVN (последний релиз 335). Не было там такого. Может уже 336 вышел, но у меня доступ к SVN только дома.
Galkov писал(а):
Не увидел десятка секунд

Сегодня я их тоже не увидел. Выборок надо было больше делать и усреднять, а я это упустил. Преимущества особого -- нет.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#41: 2007-05-22 12:34:17 ЛС | профиль | цитата
nesco писал(а):
Меня, в этом случае, сдерживает только одно -- увеличение внешних компонентов. Включить одну точку в компоненте проще, чем иметь лишний компонент на схеме

Можно вообще не иметь ни одного компонента в схеме - попросить кого-то написать программу.

Аж ничем не отличается от происходящего с тобой сегодня: кому-то, предположим, не хочется иметь элемент в схеме и он попросил тебя сделать некий программный код ВМЕСТО него.

Это от того что ты понимаешь, что программирование есть самостоятельная работа, а кто-то считает что программирование - это найти кого попросить, чтобы он это сделал за тебя.
Программирование на HiAsm - это установка элемента(ов), с необходимыми подключениями. Типа как ваяние скульптуры: берешь каменюку, и отсекаешь все лишнее.

Запомнил определение ???
А теперь представь себе абстрактный элемент, в котором 1000 св-в, и по 400 точек с каждой стороны.
Делать может - да почти все.
И программирование будет заключаться в чтении толстого букваря на него для нужного выбора комбинации св-в, чтобы делал то чего хочется.

Вспомни определение программирования на HiAsm, и ответь: это было программирование на HiAsm


nesco писал(а):
У меня компонент Converter с SVN (последний релиз 335). Не было там такого

И нету. Это ему Леонид подсунул, скорее всего.
Помнишь топик, про времена
Надо взять и СДЕЛАТЬ дополнительный конвертор для DateTime.
Три типа: Real - в сутках, Integer - в секундах, String - в соответствии со строкой формата (в KOL-овском стандарте), св-ва этого элемента.
Способы преобразования очень просты: любого в любой.
И во ВСЕХ наших элементах возвращать дату и время в одном только формате. Кому нужен текст, к примеру - вот тебе конвертор.
Под KOL, конечно, удобнее делать этот общий тип для элементов - TDateTime.

Вот задача, значительно более разумная, чем встраивание этого конвертора (в соответствии с идеологией "мультипроцессности") в каждый такой элемент.
Даже противоположная "мультипроцессности"

Берешься
На следующий день на SVN положу
Даже если ночь спать не придется
карма: 9

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#42: 2007-05-22 12:54:56 ЛС | профиль | цитата
Galkov писал(а):
Берешься

Попробую. Почему бы и нет?
Вот это только непонятно
Galkov писал(а):
любого в любой

Где взять список этих форматов?

И вот, что я хотел еще спросить.
Galkov писал(а):
в соответствии с идеологией "мультипроцессности"
считается ли графическое расширение "мультипроцессорностью" (как в ListBox и ComboBox)?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#43: 2007-05-22 13:38:34 ЛС | профиль | цитата
"Графическое" и "Мультипроцессность" - это разные вещи
Могут быть вместе, могут - по отдельности.
Это как красный и прямоугольный...

Наверное надо Dilma сказать, чтобы он делил интерфейсные элементы на две вкладки именно по такому признаку - "виндячие", и "красивые" - OwnDrawn по научному.
И возможны две философии пользователя: а) пусть рисует все винда, она для того и делалась, буду я на эту ерунду еще коды тратить б) ай хочу сам нарисовать, еще красивше - будет экстра супер круто.

ОБЕ имеют право на жизнь.
Даже несмотря на то, что лично я считаю, что в "красивости" нуждается тот программист, которому в своей программе и предъявить особо больше нечего.
Пример: в среде HiAsm виндячее меню, а не OwnDrawn. Не вижу в этом ничего плохого. Как и то, что сделать более "красивое" меню - не есть для среды жизненно необходимая вещь.
Потому что не в красивости окошек смысл и сила HiAsm
Есть чего предъявить и без этого

НО - не намерен никому свое мнение навязывать, пусть остальные считают, как хотят.
Кроме того клинического случая, когда считают, что кроме "красивости" ничего в элементной базе HiAsm больше не надо (было такое, между прочим).


[size=-2]------ Добавлено в 13:38
nesco писал(а):
Где взять список этих форматов?

Про TDateTime - все в KOL, как и про синаксис его форматной строки
Integer - фиг его знает.
В смысле, Dilma-то точно знает - говорил, что во всех базах данных именно этот тип и используется.
Может народ подскажет, с какого момента начинают енти секунды отсчитываться...

А может еще проще: наверняка в KOL есть преобразование в этот формат, раз он общеупотребим и всем известен
карма: 9

0
Ответов: 8908
Рейтинг: 823
#44: 2007-05-22 14:12:39 ЛС | профиль | цитата
nesco, если будете делать элемент для обработки даты и времени, не забудьте про разные разделители и порядок даты-времени в строковом представлении: 22/06/07 12:05:05, или 22.06.2007-12:05:05, или 06/31/07 и т. д.

code_1448.txt
карма: 19

0
файлы: 1code_1448.txt [2.3KB] [485]
Разработчик
Ответов: 26109
Рейтинг: 2124
#45: 2007-05-22 14:53:52 ЛС | профиль | цитата
Леонид, ну это маску будем делать. Обязательно
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)