так называемая "компонентная версия" хиасма
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
|
|||
как же мы тебе запоможаем, если у тебя
|
|||
карма: 9 |
|
Ответов: 3514
Рейтинг: 184
|
|||
на b162 чистой рисовался
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
нет тебе веры
![]() |
|||
карма: 9 |
|
Ответов: 3514
Рейтинг: 184
|
|||
![]() |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
вот видишь - еще разговор не начат, а уже соврал
![]() |
|||
карма: 9 |
|
Ответов: 3514
Рейтинг: 184
|
|||
Охх)).. в b161 у мне все компоненты стандартные, даже для SVN отдельная b161
Компонентная версия у меня для b160.. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А где взял SVN для 161 ?
Galkov писал(а): вот видишь - еще разговор не начат, а уже соврал |
|||
карма: 25 |
|
Ответов: 3514
Рейтинг: 184
|
|||
Странный вопрос, не находишь? Когда небыло 162, SVN был для 161..
|
|||
карма: 0 |
|
Ответов: 3514
Рейтинг: 184
|
|||
Всё оказалось, как всегда проще простого... http://www.hiasm.com/xf/topic.php?t=7791
|
|||
карма: 0 |
|
Ответов: 3514
Рейтинг: 184
|
|||
1. Как описать вкладку "Контролы"
2. Кто опишет компонент "Таблица строк"? 3. Как работать с "Картинка - данные"? желательно пример. 4. MT потоки - всё и вся - лес, густой и непроходимый в ближайшем будующем. 5. Как описать вкладку ActionSkin? |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Астрамак, если кратко:
1. Контролы есть невизуальные (т.е., не появляющиеся на форме) компоненты, реализующие полезные функции для приложения, как-то: * Вызов схемы (фрагмента схемы) через заданные интервалы времени - Timer * Оповещение пользователя о событиях в программе (не только об ошибках), простейшее взаимодействие с пользователем (Файл изменился - сохранить?) - Message * Приём файлов, "брошенных" на окно программы (вообще-то, не только на окно ;) ) - DropFile * Отслеживание буфера обмена (как в "качалках" ) - ClipboardHook * Организация контекстного меню * Получение параметров коммандной строки - Application * Корректная работа программы даже во время долгих процессов (например, оперативное обновление ProgressBar-а во время форматирования НЖМД ![]() * Добавление и работа со значком программы в системном трее (рядом с часами) - TrayIcon * "Наведение красоты" (поддержка стилей WindowsXP) - StyleXP * Красивая "всплывающая надпись" - BaloonToolTips * Работа с принтером - Print Часть из этих компонентов (Timer, DropFile, ClipboardHook, косвенно Application, TrayIcon) есть работа с очередью сообщений. За исключением StyleXP все остальные есть вызов полезных, хоть и малоизвестных, ф-ций WinAPI. StyleXP просто пристёгивает "правильный" файл к ресурсам. 2. Классический? Классический: элемент "Таблица строк" предназначен для вывода текстовой информации в виде таблиц (этакий ListBox со столбцами). 3. Картинка-Данные (корректнее её называть Картника-Поток) служит для представления изображения в виде потока числовых данных для, например, передачи её другому приложению. Следует понимать, что тип данных bitmap не предназначен для передачи между процессами. Пример в комплекте, зовётся SendPicture.sha 4. MT-потоки (если воспользоваться аналогиями из моего урока) есть возможность пристегнуть к паровозу сразу несколько вагонов, но только тут паровоз почему-то сзади --- после последнего вагона ;) (для Галкова: см. примечание 1). По сути, MT-технология позволяет сократить число связей на схеме за счёт "упаковки" нескольких объектов данных в один MT-поток. "Обычный" поток есть частный случай MT-потока, состоящего из одного элемента (или даже нуля в случае dtNull, но не уверен). Надо помнить, что не все компоненты на данный момент корректно работают с MT-потоками! * MT_Add - "пристёгивает" ещё один вагон к имеющемуся составу. В зависимости от значения св-ва InputMT пристегнёт данные сразу за "паровозом" (Head), в хвост состава (Tail), ничего не будет пристёгивать (Null) ![]() ![]() * MT_Get - "отцепляет" первый вагон от поезда и отправляет его по ветке onGet, остальной состав уходит по ветке onData * MT_Memory - аналог Memory, но "дружащий" с MT * MT_Array - позволяет работать с MT-потоком как с массивом (обращаться к вагончику по его порядковому номеру) * MT_Enum - последовательно выдаёт в поток по одному вагончику из пришедшего состава * MT_MultiMem - очень полезный элемент, этакий параллельный разгрузчик (т.е. разгрузка состава идёт не повагонно, а "скопом"). Число разгружаемых вагонов (и порядковый номер первого) задаются в св-вах элемента * MT_String - это два-в-одном ** Во-первых, это способ "склеить" содержимое всех вагончиков в одну строку, разделяя содержимое разных вагончиков символом из св-ва Delimiter и форматируя каждый "груз" так, как написано в св-ве Mask (см. FormatStr) ** Во-вторых, можно производить обратный процесс. * MT_ChanelToIndex - это аналог обычного ChanelToIndex, только на выход выдаёт не номер канала, а МТ-поток, состоящий из номера канала (в первом вагоне) и данных, поступивших на вход (во втором и последующих вагонах) * MT_IndexToChanel - берёт номер канала из 1 вагона и отправляет туда "укороченный" состав (без первого вагона) 5. Про ActionSkin надо искать в архивах, вроде Dilma когда-то где-то что-то про это рассказывал... Вроде это для создания красивых саморисованных окон и элементов управления... Примечание 1. "Странные они, эти MT-элементы" - скажет далёкий от "текстового" программирования человек, и будет совершенно прав. Вот пример:
Что ожидает увидеть такой человек в окне MessageBox-а? Его рассуждения: * От кнопки пришлёл пустой состав "{паровоз}", в голову лепим X, на выходе - "{паровоз}-[Х]". Замечу, что по житейской логике тут "голова" и "хвост" совпадают - это место сразу за паровозом. * К хвосту (т.е. после X) прилепим Y, на выходе "{паровоз}-[Х]-[Y]" * MT_String по очереди, начиная с головы, будет брать вагоны и сливатьих в один, вставляя разделитель где надо. На выходе "{паровоз}-[X;Y]" А что он видит? "Y;X"! И начхать-то ему, что MT-поток строится по принципу LIFO (stack), он-то (по картинкам) ожидает FIFO! |
|||
карма: 1 |
|
Ответов: 3514
Рейтинг: 184
|
|||
iarspider, заранее спасибо большое, сейчас бум читать и вникать.
Краткость - сестра таланта ![]() |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Астрамак, всегда пожалуйста.
Только просьба: сделай в теме !SVN-HiHelp! пометку, что текст основан на теме !SVN! by iarspider |
|||
карма: 1 |
|
Ответов: 3514
Рейтинг: 184
|
|||
iarspider, прости ) Готово.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
iarspider, мне кажется, что с примером ты немного не прав. Если рассмотреть внимательнее, то во втором элементе MT_Add у тебя стоит входной поток -- в хвост. И правильно тогда получаем -- Y;X (входной поток-то -- Х). Что написано в описании
Использование данных из потока: Head - в голову потока, Tail - в хвост потока Если поставить во втором MT_Add входной поток -- в голову, то все встанет на свои места, и на выходе будет -- X;Y. |
|||
карма: 22 |
|