Вверх ↑
Этот топик читают: Гость
Ответов: 15
Рейтинг: 0
#1: 2010-04-23 21:25:53 ЛС | профиль | цитата
Можно ли как то добавить процедуру или функцию на языке паскаль и сделать например из нее компонент?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2010-04-23 21:26:56 ЛС | профиль | цитата
lnLineCode
карма: 27
0
Ответов: 15
Рейтинг: 0
#3: 2010-04-23 21:40:18 ЛС | профиль | цитата
Dilma, спасибо за быстрый ответ. Только я не вижу где именно в HiAsm писать процедуру и как её в компонент превратить?
Либо это надо делать отдельно в текстовом редакторе и куда-то в какую папку добавить? Можно получить более подробную информацию?
Я хочу добавить свою процедуру.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-04-23 22:00:30 ЛС | профиль | цитата
двойной клик на данном элементе открывает редактор кода, в котором пишется процедура.

[imgl]http://hiasm.com/xf/attach/wiki/hiasm_menu_10.png[/img] для создания элемента используется команда Меню->Сервис->Редактор элемента. После заполнения полей и добавления в пакет выполнение команды Исходник компонента откроет редактор кода, куда так же можно вставлять процедуры.

Этапы разработки
Конфигурация элемента
карма: 27
0
Ответов: 15
Рейтинг: 0
#5: 2010-04-23 23:34:32 ЛС | профиль | цитата
Спасибо большое, будем осваивать
карма: 1

0
Ответов: 215
Рейтинг: 45
#6: 2010-04-25 04:58:34 ЛС | профиль | цитата
[flood]Давно не обновлял у себя hiasm.db. Там опять стало "компАнента"?[/flood]
карма: 0

0
Ответов: 15
Рейтинг: 0
#7: 2010-04-26 19:04:40 ЛС | профиль | цитата
lev писал(а):
Там опять стало "компАнента"?

Нет у меня нормально показывает. По моему последняя версия. Скрин видимо старый.

Что-то у меня выходит бред какой то с созданием своего компонента.

1. Нельзя присвоить значение тип Byte переменной. Почему то в выборе типа есть интегер ну или реал.
2. Не, ну написать функцию на паскале это одно, но насчет объектного программирования мы не договаривались!
Я немного путаюсь в объектах, в присваиваниях и последовательностях, проспал на уроке основы объектного программирования.
Хотя паскаль это мой конек.
Помогите с наглядным примером создание компонента из процедуры. Вообще не плохо бы видео сделать.

Итак на входе строка мы с ней делаем некоторые движения переворачиваем
символы с учетом что любой символ в пределах байта. И выпускаем строку на выход.
Допустим это уложиться в пределах двух функций:

code_17957.txt

1. Как правильно прописать исходник с учетом объектов?
2. Как правильно заполнить в редакторе элемента форму ECreator?
Если можно про Type, Property и Methods подробнее...
Где мы назначаем вход и выход?

Еще очень важный вопрос... будет позже.
карма: 1

0
файлы: 1code_17957.txt [386B] [114]
Разработчик
Ответов: 26305
Рейтинг: 2146
#8: 2010-04-26 20:11:04 ЛС | профиль | цитата
Limon писал(а):
Помогите с наглядным примером создание компонента из процедуры

Все примеры -- сам пакет, бери и учись. Что, слабо, а вот мне было не слабо, я на них учился и никто мне это не объяснял. А то, как что-то трудно, то сразу лапки кверху -- ПАМАГИТЕ, НЕ ПОЛУЧАТСЯ

Тебе Dilma дал наметки, где чего брать, вот бери и учись. Захочешь, получится
------------ Дoбавленo в 20.06:
А по теме

1. В IC он уже создан -- THiAsmClass называется. Открой любой компонент и посмотри, как создается класс.

Напимер: есть компонент hiBuBu, тогда класс создаешь следующим образом


unit hiBuBu;

interface

uses Kol,Share,Debug;

type
THIBuBu = class(TDebug)
private
// тут переменные и методы класса, доступные только классу
public
// Свойства компонента
_prop_A:string;
_prop_B:integer;

// Данные компонента
_data_Data:THI_Event;

// События компонента
_event_onResult:THI_Event;

// Методы компонента
procedure _work_doAAA(var _Data:TData; Index:word);
procedure _work_doBBB(var _Data:TData; Index:word);

// Переменные компонента
procedure _var_Result(var _Data:TData; Index:word);
end;

implementation

procedure THIBuBu._work_doAAA;
begin
end;

procedure THIBuBu._work_doBBB;
begin
end;

procedure THIBuBu._var_Result;
begin
end;

end.
------------ Дoбавленo в 20.11:
Примечание: InlineCode имеет все то же самое, кроме свойств компонента и внутри него нельзя ставить префиксы _data_, _work_, _event_, _var
карма: 22

0
Ответов: 8961
Рейтинг: 824
#9: 2010-04-26 20:35:01 ЛС | профиль | цитата
Limon, если копонент не будет востребован коллегами, лучше оставить (и выложить) Ваши наработки в виде InlineCode, а уж если все запросят "Даёшь компонент!" - можно и перевести
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#10: 2010-04-26 21:25:06 ЛС | профиль | цитата
lev писал(а):
Давно не обновлял у себя hiasm.db. Там опять стало "компАнента"?
нет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 15
Рейтинг: 0
#11: 2010-04-26 21:40:39 ЛС | профиль | цитата
nesco писал(а):
Все примеры -- сам пакет, бери и учись. Что, слабо, а вот мне было не слабо, я на них учился и никто мне это не объяснял. А то, как что-то трудно, то сразу лапки кверху -- ПАМАГИТЕ, НЕ ПОЛУЧАТСЯ

Не, ты не верно думаешь. Я сказал же я не понимаю. "не понимаю" и "не получается" - разные вещи.
Вот ты меня не понимаешь, а ведь у тебя почти получилось, но увы. Тебе еще немного надо разобраться о чем я говорил.

nesco писал(а):
Тебе Dilma дал наметки, где чего брать, вот бери и учись. Захочешь, получится

Есть загвоздка в терминах чем больше читаю тем больше путаюсь.
Пример который там приводиться я не понимаю его назначение.

nesco писал(а):
В IC он уже создан -- THiAsmClass называется.

Ну вот ты тоже загадками говоришь чего за класс создан уже? Это ты про что именно? Я же говорил я в этих объектах плохо разбираюсь.
Что мы будем называть IC?

nesco писал(а):
Открой любой компонент и посмотри, как создается класс.

Типа смотрю в книгу и вижу фигу. Ну я вижу паскалевские процедуры, функции отдельные части понимаю но не понимаю как это в целом состоянии работает. Слишком много наворочено методы, данные, события... Где там вход где выход.
Я ведь просил из этих двух функций сделать компонент чтобы я мог разобраться, ибо я их понимаю.
Следующим этапом я бы сделал более сложный компонент.

nesco писал(а):

Напимер: есть компонент hiBuBu, тогда класс создаешь следующим образом

По моему речь шла создать компонент из готовых функций... значит нужно новый класс создавать?
А в Type потом тоже нужно прописывать этот класс?
Спасибо за пример в котором описано что есть что. Но к сожалению я не понимаю назначение компонента hiBuBu.
И получается это не помогло особо. У меня одна функция со вспомогательной, как мне сделать чтобы строка шла на выход?

Мне хотелось бы увидеть те функции в компоненте - которые я понимаю что бы разобраться.
Там входит строка, строка выходит... как их прописать там, не знаю в классе без класса пофиг. Главное наглядно увидеть.
Но если тебе сложно, не заморачивайся попробую попросить кого-нибудь.

to All: кому не сложно сделать полностью рабочий компонент из двух функций причем работает одна строчка входит строку возвращает:

code_17978.txt

Чисто для наглядного примера.

Леонид писал(а):
Limon, если копонент не будет востребован коллегами, лучше оставить (и выложить) Ваши наработки в виде InlineCode, а уж если все запросят "Даёшь компонент!" - можно и перевести


Спасибо буду иметь в виду.
карма: 1

0
файлы: 1code_17978.txt [381B] [100]
Ответов: 5446
Рейтинг: 323
#12: 2010-04-26 22:03:04 ЛС | профиль | цитата
Limon, ты вот эту тему читал? А вообще - найди книжку по паскалю, где про основы ООП расказывается, и прочитай.
карма: 1

0
Ответов: 15
Рейтинг: 0
#13: 2010-04-26 22:14:25 ЛС | профиль | цитата
iarspider писал(а):
Limon, ты вот эту тему читал?

Ух, почитаю конечно спасибо за ссылку.
iarspider писал(а):
А вообще - найди книжку по паскалю, где про основы ООП расказывается, и прочитай.

Да вот в том то и дело прикинь, ФАРОНОВ Основы турбо паскаля... Вот все идеально офигительно там расписано всё понимаю.
Я её перечитывал несколько раз и когда учился и после и по книге делал всё.
А где доходит до объектов тупить начинаю. Ты думаешь я не читал да сто раз читал. Не только Фаронова, я много литературы по объектам пытался воспринять ну не как. Как начинают терминами гнать - теряюсь. Не, у Фаронова лучше всего описано было.
Ну делаю как там сказано, по аналогу делаю - а чего нить другое ну не врубаюсь.
чего то мне не хватает чтобы врубиться в эти объекты. Вот попросил специально пример сделать который понимаю, может это шанс врубиться в объекты. Всё близко да около, мне бы суть ухватить.
Я не знаю кто-то сглазил меня что ли все завидовали как я паскаль рубил а как до объектов дошло вот всё... пипец.
карма: 1

0
Ответов: 5446
Рейтинг: 323
#14: 2010-04-26 22:35:16 ЛС | профиль | цитата
Ты Record понял? Так класс - это тот же Record, только:
  • Можно добавлять функции
  • Можно "спрятать" переменные и функции от "внешнего" мира
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#15: 2010-04-26 22:38:04 ЛС | профиль | цитата
Limon, все, что ты говоришь, есть отговорки, не имеющие к познанию никакого отношения. Когда я пришел в проект, то знал только обычный (не Турбо) Паскаль, и то работал на нем, лет двадцать, назад. Для меня, так же, был темный лес ООП, но усилями и желанием я понял, что это такое.
Если ты не можешь понять, что такое ООП, а без него ты никуда, то рано еще браться за компоненты, а учить, учить, и еще раз, учить теорию
------------ Дoбавленo в 22.38:
iarspider писал(а):
Так класс - это тот же Record, только:

И еще забыл добавить -- Можно создать наследников этого класса, которые будут иметь все общие функции родителя, и свои, в придачу
карма: 22

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