Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#61: 2007-04-09 19:03:59 ЛС | профиль | цитата
как же мы тебе запоможаем, если у тебя
так называемая "компонентная версия" хиасма

карма: 9

0
Ответов: 3514
Рейтинг: 184
#62: 2007-04-09 19:07:28 ЛС | профиль | цитата
на b162 чистой рисовался
карма: 0
0
Ответов: 9906
Рейтинг: 351
#63: 2007-04-09 19:08:19 ЛС | профиль | цитата
нет тебе веры
карма: 9

0
Ответов: 3514
Рейтинг: 184
#64: 2007-04-09 19:11:46 ЛС | профиль | цитата
Сначала рисовался на b161, затем переполз на b162..
карма: 0
0
Ответов: 9906
Рейтинг: 351
#65: 2007-04-09 19:36:29 ЛС | профиль | цитата
вот видишь - еще разговор не начат, а уже соврал
карма: 9

0
Ответов: 3514
Рейтинг: 184
#66: 2007-04-09 20:40:03 ЛС | профиль | цитата
Охх)).. в b161 у мне все компоненты стандартные, даже для SVN отдельная b161
Компонентная версия у меня для b160..
карма: 0
0
Ответов: 16884
Рейтинг: 1239
#67: 2007-04-10 00:39:05 ЛС | профиль | цитата
А где взял SVN для 161 ?
Galkov писал(а):
вот видишь - еще разговор не начат, а уже соврал

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3514
Рейтинг: 184
#68: 2007-04-10 14:27:08 ЛС | профиль | цитата
Странный вопрос, не находишь? Когда небыло 162, SVN был для 161..
карма: 0
0
Ответов: 3514
Рейтинг: 184
#69: 2007-04-14 21:16:51 ЛС | профиль | цитата
Всё оказалось, как всегда проще простого... http://www.hiasm.com/xf/topic.php?t=7791
карма: 0
0
Ответов: 3514
Рейтинг: 184
#70: 2007-04-19 15:43:28 ЛС | профиль | цитата
1. Как описать вкладку "Контролы"
2. Кто опишет компонент "Таблица строк"?
3. Как работать с "Картинка - данные"? желательно пример.
4. MT потоки - всё и вся - лес, густой и непроходимый в ближайшем будующем.
5. Как описать вкладку ActionSkin?
карма: 0
0
Ответов: 5446
Рейтинг: 323
#71: 2007-04-19 19:00:50 ЛС | профиль | цитата
Астрамак, если кратко:

1. Контролы есть невизуальные (т.е., не появляющиеся на форме) компоненты, реализующие
полезные функции для приложения, как-то:
* Вызов схемы (фрагмента схемы) через заданные интервалы времени - Timer
* Оповещение пользователя о событиях в программе (не только об ошибках), простейшее взаимодействие с пользователем (Файл изменился - сохранить?) - Message
* Приём файлов, "брошенных" на окно программы (вообще-то, не только на окно ;) ) - DropFile
* Отслеживание буфера обмена (как в "качалках" ) - ClipboardHook
* Организация контекстного меню
* Получение параметров коммандной строки - Application
* Корректная работа программы даже во время долгих процессов (например, оперативное обновление ProgressBar-а во время форматирования НЖМД ) - Application
* Добавление и работа со значком программы в системном трее (рядом с часами) - 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) , а что такое SendUp я не понял.

* 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-элементы" - скажет далёкий от "текстового" программирования человек, и будет совершенно прав. Вот пример:

Add(MT_Add,2787159,119,315)
{
Data=String(X)
link(onAdd,15726914:doAdd,[])
}
Add(MT_Add,15726914,168,315)
{
Data=String(Y)
InputMT=1
link(onAdd,11145590:doStr,[])
}
Add(Button,3861259,70,315)
{
Left=40
Top=40
link(onClick,2787159:doAdd,[])
}
Add(MT_String,11145590,217,315)
{
link(onResult,14861056:doMessage,[])
}
Add(Message,14861056,266,315)
{
}

Что ожидает увидеть такой человек в окне MessageBox-а? Его рассуждения:

* От кнопки пришлёл пустой состав "{паровоз}", в голову лепим X, на выходе - "{паровоз}-[Х]". Замечу, что по житейской логике тут "голова" и "хвост" совпадают - это место сразу за паровозом.
* К хвосту (т.е. после X) прилепим Y, на выходе "{паровоз}-[Х]-[Y]"
* MT_String по очереди, начиная с головы, будет брать вагоны и сливатьих в один, вставляя
разделитель где надо. На выходе "{паровоз}-[X;Y]"

А что он видит? "Y;X"!

И начхать-то ему, что MT-поток строится по принципу LIFO (stack), он-то (по картинкам) ожидает FIFO!
карма: 1

0
Ответов: 3514
Рейтинг: 184
#72: 2007-04-20 15:10:33 ЛС | профиль | цитата
iarspider, заранее спасибо большое, сейчас бум читать и вникать.
Краткость - сестра таланта
карма: 0
0
Ответов: 5446
Рейтинг: 323
#73: 2007-04-20 15:55:34 ЛС | профиль | цитата
Астрамак, всегда пожалуйста.

Только просьба: сделай в теме !SVN-HiHelp! пометку, что текст основан на теме !SVN! by iarspider
карма: 1

0
Ответов: 3514
Рейтинг: 184
#74: 2007-04-20 16:06:50 ЛС | профиль | цитата
iarspider, прости ) Готово.
карма: 0
0
Разработчик
Ответов: 26304
Рейтинг: 2146
#75: 2007-04-20 16:27:10 ЛС | профиль | цитата
iarspider, мне кажется, что с примером ты немного не прав. Если рассмотреть внимательнее, то во втором элементе MT_Add у тебя стоит входной поток -- в хвост. И правильно тогда получаем -- Y;X (входной поток-то -- Х). Что написано в описании
Использование данных из потока: Head - в голову потока, Tail - в хвост потока
Если поставить во втором MT_Add входной поток -- в голову, то все встанет на свои места, и на выходе будет -- X;Y.
карма: 22

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