Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#16: 2010-04-26 22:46:39 ЛС | профиль | цитата
Limon писал(а):
Мне хотелось бы увидеть те функции в компоненте

Вот посмотри на эти (твои) функции в IC
code_17980.txt
Вывод по одному символу.
Думаю сформировать выходную строку и сам сможешь.
Отрабатываешь в IC, а потом переносишь в шкуру компонента (обыкновенными CopyPaste)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_17980.txt [1.1KB] [149]
Гость
Ответов: 17029
Рейтинг: 0
#17: 2010-04-26 22:54:43 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-02-25 16:29:33
карма: 0

0
Ответов: 5446
Рейтинг: 323
#18: 2010-04-26 23:07:40 ЛС | профиль | цитата
не-не-не, не так всё. В модуле debug (файл debug.pas) объявлен класс - TDebug, содержащий в себе много чего. TDebug - это такое же имя типа, как int, string и т.п.
------------ Дoбавленo в 23.07:
А коли с синтаксисом путаешься - тем паче прочти тему, на короую я дал ссылку.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#19: 2010-04-26 23:10:14 ЛС | профиль | цитата
Короче, Tad привел тебе IC, на тебе еще и от меня, полностью твои функции с выводом результата.

code_17981.txt

ppp95-165-62-58.pppoe.spd писал(а):
класс TDebug вот что это я конечно понимаю он подключает модуль Debug

Не совсем правильно понимаешь -- это создание нашего класса, как наследника класса TDebug
------------ Дoбавленo в 23.10:
Limon, слабо, очень слабо, плохо работаешь с домашним заданием, садись -- два
карма: 22

0
файлы: 1code_17981.txt [2.6KB] [161]
Ответов: 16884
Рейтинг: 1239
#20: 2010-04-26 23:30:43 ЛС | профиль | цитата
nesco, я только "на кусочки порезал", а ты совсем разжевал.

Решил дожевать и получился компонент

Если и после этого скажет, что непонятно
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1swap.rar [1KB] [115]
Ответов: 15
Рейтинг: 0
#21: 2010-04-27 16:02:31 ЛС | профиль | цитата
Спасибо Tad и nesco за примеры. Но не стоило это нравоучений и "посылания за книги". Я и сам понимаю что без дополнительных хелпов и книг не обойтись. А с объектным программированием конечно еще буду разбираться, хочется это освоить.
По примерам есть несколько вопросов. Почему всё таки в редакторе элемента в Property все *points имеют тип
StrList а не String???
Далее если мне нужно чтобы мой компонент имел возможность обрабатывать не только строчку но и байт, чтобы заходил один байт допустим я добавлю соответственно новую процедуру которая меняет байт
и выпускает байт.
Добавлю Метод:
doSwapCharByte;

Добавлю результатирующую переменную:
SwapCharByte

procedure THiAsmClass.doSwapCharByte;
begin
SwapCharByte := SwapByte(*???);
_hi_onEvent(onResult, SwapCharByte);
end;

* Я так и не совсем просек точку входа... " _Data " ???

Процедуру также объявлю в методах... В редакторе свойств это нужно добавить в Methods? Вот теперь когда у нас несколько методов
то есть можно обработать строчку можно обработать байт теперь оба метода нужно добавить?


iarspider писал(а):
А коли с синтаксисом путаешься - тем паче прочти тему, на короую я дал ссылку.

Спасибо за ссылку еще раз. Жаль что нет возможности сделать закладку на ту тему. Это особенность форума.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#22: 2010-04-27 16:56:05 ЛС | профиль | цитата
Limon писал(а):
то есть можно обработать строчку можно обработать байт теперь оба метода нужно добавить?

Если разные имена методов и нужны разные имена точек, то -- да. Можно сделать одно имя точки, к примеру -- doSwap и кучу разных методов внутри (юзай компонент Convertor)
Limon писал(а):
Жаль что нет возможности сделать закладку на ту тему

Используй "Избранное"
------------ Дoбавленo в 16.56:
Limon писал(а):
Я так и не совсем просек точку входа... " _Data " ???

_Data используется при чтении данных из потока, это -- указатель на структуру TData. Чтение из потока будет применяться тогда, и только тогда, когда отсутствуют данные читаемого свойства (для Integer и Real -- 0, для String -- ', для указателей -- nil), и отсутствует поле данных (не подсоединена верхняя точка). К примеру -- i := ReadInteger(_Data, _data_Index, _prop_Index), данные из потока (_Data) возьмуться тогда, когда _prop_Index = 0, и будет не присоединена точка _data_Index. Если нужно читать только поток, то надо применять прямые методы чтения (неприменимый для структур MT, тк указатель остается на месте и не перемещается на следующий элемент потока) -- ToXXXX, к примеру i := ToInteger(_Data), если нужно читать только верхнюю точку то применяется следующие методы -- ToXXXXEvent, к примеру -- i := ToIntegerEvent(_data_Index). Если же нет верхних точек, но надо выбирать между свойством и потоком, то можно использовать следующую запись, к примеру -- i := ReadInteger(_Data, Null, _prop_Index), если же не нужно свойство, то можно записать укороченную запись, к примеру -- i := ReadInteger(_Data, _data_Index), в данном случае, вместо свойства будет подставляться значение по-умолчанию, объявленное в данном методе ReadInteger (те -- 0)
карма: 22

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