Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
5 / 4 / 0
Регистрация: 08.06.2012
Сообщений: 111

Builder (Maker), Генератор программ

07.08.2012, 21:29. Показов 2084. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как создать Генератор или Builder ( Maker ) для создания программы по шаблону ?

Пример... в программе ставим какието определённые значения для Ресурса, например Edit... и создается отдельная программа.exe с этим Edit ???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2012, 21:29
Ответы с готовыми решениями:

Генератор паролей C++ Builder
Здравствуйте. Очень удивился, когда не нашел ни одного исходника генератора паролей на C++ Builder. Наверняка же многие делали хорошие...

Создать генератор слов в C++ Builder 5
Всем привет!Я хочу создать генератор слов в C++ Builder 5 киньте исходник.Заранее спасибо.

С++ Builder 6. Генератор ключей для программы.
Здравствуйте. Меня интересует вопрос о том, как внутри своей программы создать генератор ключей, который сможет создать много ключей, в...

21
0 / 0 / 0
Регистрация: 06.08.2012
Сообщений: 17
07.08.2012, 21:43
Программы пишутся (программируются), а создаются по шаблону. Наймите программиста.
0
5 / 4 / 0
Регистрация: 08.06.2012
Сообщений: 111
07.08.2012, 23:46  [ТС]
Ну ... а так никак ? Не знаю никого и денег нет.. только 30 руб
Плиз какой может быть способ ?
Или исходник ...
0
 Аватар для БогДелфей
474 / 337 / 36
Регистрация: 31.05.2011
Сообщений: 1,164
08.08.2012, 00:01
Dev C++ на Делфи, в интернетах исходники
0
 Аватар для Ales'hon'ne
159 / 152 / 50
Регистрация: 03.08.2011
Сообщений: 299
Записей в блоге: 14
08.08.2012, 00:13
В зависимости от сложности: если на форме будет не очень много компонентов, то можно написать генератор кода, этот код потом отправлять в dcc.exe на компиляцию. Если не требуется экзешник, то можно генерировать код VBScript или HTA. Но написание такого генератора - сложная и долгая работа.
Простейший пример для HTA (только поле ввода или кнопка, действий никаких не совершает):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type
  TTypeControl=(tcEdit,tcButton);
 
const
  htad='<html><head><title>HTA Test</title><HTA:APPLICATION APPLICATIONNAME="HTA Test" SCROLL="yes" SINGLEINSTANCE="yes" WINDOWSTATE="maximize">'+
  '</head><body><input type="%s" value="%s"></body></html>';
  btd='button';
  edd='text';
 
procedure CreateHTA(t:TTypeControl;name:string);
var
  tmp:string;
begin
  case t of
    tcEdit:tmp:=edd;
    tcButton:tmp:=btd;
  end;
  with (TStringList.Create as TStrings) do
    begin
      Text:=Format(htad,[tmp,name]);
      SaveToFile('result.hta');
      Free;
    end;
end;
1
5 / 4 / 0
Регистрация: 08.06.2012
Сообщений: 111
08.08.2012, 02:11  [ТС]
А можно типа ...

Delphi
1
2
3
4
5
button1.click 
begin
form2.creat(button1);
form2.creat(edit1)
savetofile(Result.exe)
Но это без функций ... а у меня целых 10 функций ....
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
08.08.2012, 02:22
Пиши мне на почту, обсудим.
 Комментарий модератора 
Либо обсуждаем на форуме, либо идем лесом...
1
4192 / 1839 / 222
Регистрация: 06.10.2010
Сообщений: 4,125
08.08.2012, 08:07
Можно создать exe, с диалоговым ресурсом и изменять этот диалог через UpdateResource.
1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
08.08.2012, 11:06
"А чо ваще надо-то?" (с) Масяня.

Попробуйте интерпретатор какой-нибудь.
1
 Аватар для dogvill
13 / 13 / 3
Регистрация: 30.01.2012
Сообщений: 40
Записей в блоге: 3
09.08.2012, 00:42
Меня тоже этот вопрос интересует можно поподробней про интерпретатор
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
09.08.2012, 07:21
Цитата Сообщение от dogvill Посмотреть сообщение
можно поподробней про интерпретатор
Интерпретатор - если не строго, своими словами - движок, который хавает код программы и выполняет его (сам код, как таковой).
В отличие от компилятора в машинный код, который компилирует в машинный код (ага), а его хавает и выполняет уже процессор.
Языки для интерпретаторов называются интерпретируемыми (в отличие от компилируемых).
Характерная черта интерпретируемых языков - там, как правило, есть функция eval или аналог, которая принимает текст кода чтобы выполнить.
JavaScript
1
eval("какой-то код");
2
5 / 4 / 0
Регистрация: 08.06.2012
Сообщений: 111
11.08.2012, 09:50  [ТС]
ОКЕЙ!

А можно как-то иметь форму ! Form2 и её компилировать программно в готовое приложение ?

Добавлено через 19 секунд
в .exe
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
11.08.2012, 12:19
Цитата Сообщение от vladislav147 Посмотреть сообщение
как-то иметь
только если без извращений.

компилировать можно, но лучше вам посмотреть в сторону интерпретаторов или C#, они лучше для этого делаприспособлены.
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.08.2012, 01:04
Если посмотреть на шестнадцатиричный код исполняемого файла, компилированного Delphi, то можно найти данные на форму и компоненты. Эти данные можно менять или к примеру добавлять или удалять какие-то компоненты, так же присваивать обработчики событий.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
0005DAE0: 31 00 00 00 54 50 46 30|06 54 46 6F 72 6D 31 05 | 1TPF0TForm1
0005DAF0: 46 6F 72 6D 31 04 4C 65|66 74 03 20 01 03 54 6F | Form1Left To
0005DB00: 70 03 BE 00 05 57 69 64|74 68 03 44 02 06 48 65 | p¾WidthDHe
0005DB10: 69 67 68 74 03 64 01 07|43 61 70 74 69 6F 6E 06 | ightdCaption
0005DB20: 05 46 6F 72 6D 31 05 43|6F 6C 6F 72 07 09 63 6C | Form1Colorcl
0005DB30: 42 74 6E 46 61 63 65 0C|46 6F 6E 74 2E 43 68 61 | BtnFaceFont.Cha
0005DB40: 72 73 65 74 07 0F 44 45|46 41 55 4C 54 5F 43 48 | rsetDEFAULT_CH
0005DB50: 41 52 53 45 54 0A 46 6F|6E 74 2E 43 6F 6C 6F 72 | ARSET
Font.Color
0005DB60: 07 0C 63 6C 57 69 6E 64|6F 77 54 65 78 74 0B 46 | clWindowTextF
0005DB70: 6F 6E 74 2E 48 65 69 67|68 74 02 F5 09 46 6F 6E | ont.HeightõFon
0005DB80: 74 2E 4E 61 6D 65 06 0D|4D 53 20 53 61 6E 73 20 | t.NameMS Sans 
0005DB90: 53 65 72 69 66 0A 46 6F|6E 74 2E 53 74 79 6C 65 | Serif
Font.Style
0005DBA0: 0B 00 0E 4F 6C 64 43 72|65 61 74 65 4F 72 64 65 | OldCreateOrde
0005DBB0: 72 08 0D 50 69 78 65 6C|73 50 65 72 49 6E 63 68 | rPixelsPerInch
0005DBC0: 02 60 0A 54 65 78 74 48|65 69 67 68 74 02 0D 00 | `
TextHeight
0005DBD0: 06 54 4C 61 62 65 6C 06|4C 61 62 65 6C 31 04 4C | TLabelLabel1L
0005DBE0: 65 66 74 02 50 03 54 6F|70 02 2D 05 57 69 64 74 | eftPTop-Widt
0005DBF0: 68 02 20 06 48 65 69 67|68 74 02 0D 07 43 61 70 | h HeightCap
0005DC00: 74 69 6F 6E 06 06 4C 61|62 65 6C 31 00 00 06 54 | tionLabel1T
0005DC10: 4C 61 62 65 6C 06 4C 61|62 65 6C 32 04 4C 65 66 | LabelLabel2Lef
0005DC20: 74 02 50 03 54 6F 70 02|4B 05 57 69 64 74 68 02 | tPTopKWidth
0005DC30: 20 06 48 65 69 67 68 74|02 0D 07 43 61 70 74 69 |  HeightCapti
0005DC40: 6F 6E 06 06 4C 61 62 65|6C 32 00 00 05 54 45 64 | onLabel2TEd
0005DC50: 69 74 05 45 64 69 74 31|04 4C 65 66 74 02 78 03 | itEdit1Leftx
0005DC60: 54 6F 70 02 28 05 57 69|64 74 68 02 79 06 48 65 | Top(WidthyHe
0005DC70: 69 67 68 74 02 15 08 54|61 62 4F 72 64 65 72 02 | ightTabOrder
0005DC80: 00 04 54 65 78 74 06 05|45 64 69 74 31 00 00 05 | TextEdit1
0005DC90: 54 45 64 69 74 05 45 64|69 74 32 04 4C 65 66 74 | TEditEdit2Left
0005DCA0: 02 78 03 54 6F 70 02 46|05 57 69 64 74 68 02 79 | xTopFWidthy
0005DCB0: 06 48 65 69 67 68 74 02|15 08 54 61 62 4F 72 64 | HeightTabOrd
0005DCC0: 65 72 02 01 04 54 65 78|74 06 05 45 64 69 74 32 | erTextEdit2
0005DCD0: 00 00 07 54 42 75 74 74|6F 6E 07 42 75 74 74 6F | TButtonButto
0005DCE0: 6E 31 04 4C 65 66 74 03|FA 00 03 54 6F 70 03 96 | n1LeftúTop–
0005DCF0: 00 05 57 69 64 74 68 02|4B 06 48 65 69 67 68 74 | WidthKHeight
0005DD00: 02 19 07 43 61 70 74 69|6F 6E 12 05 00 00 00 12 | Caption
0005DD10: 04 4B 04 45 04 3E 04 34|04 08 54 61 62 4F 72 64 | KE>4TabOrd
0005DD20: 65 72 02 02 07 4F 6E 43|6C 69 63 6B 07 0C 42 75 | erOnClickBu
0005DD30: 74 74 6F 6E 31 43 6C 69|63 6B 00 00 00 00 00 00 | tton1Click
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
12.08.2012, 09:20
Цитата Сообщение от Игорь[Igor
;3349614]Эти данные можно менять
Теоретически. На практике это нереально.
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.08.2012, 09:25
Я пробовал менять, это реально и работает.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
12.08.2012, 09:28
Цитата Сообщение от Игорь[Igor
;3350004]Я пробовал менять, это реально и работает.
Максимум, что вы измените - это Caption у формы или что-то подобное.
Вы ограничены тем, что не можете вставлять и удалять символы, иначе все адреса и смещения после измененного участка поплывут.
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.08.2012, 10:02
Так и надо смещать весь код если он больше того что изменили, можно менять надписи, добавлять некоторые компоненты и присваивать им некоторые обработчики, так же находящиеся в программе.
Например если есть кнопка и у нее есть обработчик ButtonClick, его можно присвоить другой кнопке или другому компоненту могущему обрабатывать это событие
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
12.08.2012, 10:14
Цитата Сообщение от Игорь[Igor
;3350061]Так и надо смещать весь код если он больше того что изменили, можно менять надписи, добавлять некоторые компоненты и присваивать им некоторые обработчики, так же находящиеся в программе.
Мсье знает толк в извращениях.
А ссылки вы тоже править будете на это смещение?
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.08.2012, 12:07
Разумеется, можете, зделать какой нибудь примерчик, добавите в него обработчик, я добавлю компонент и присвою ему этот обработчик, если я это зделаю то вы со мной согласитесь что это работает. Я пробовал у меня работало.

Добавлено через 27 минут
И еще нужно добавить какой нибудь компонент который будет создан уже на форме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2012, 12:07
Помогаю со студенческими работами здесь

Продажа программ на C++ Builder 6
Здравствуйте! Скажите пожалуйста, можно ли продавать программы написанные на C++ Builder 6, который активировал кейгеном? Уважаемый...

Открытие программ из с++ builder
Здравствуйте, Вообщем, мне нужно из моей программы написанной на с++ builder открыть стороннюю программу и в этой программе как то...

C++ Builder предназначен для создание графических программ
Вот хотел спросить а C++ Builder предназначен только для создание графических программ. и сильно он отличается от обычного С++

Проблема с запуском программ созданных на Borland C++ Builder
Люди помогите кто чем может. У меня такая проблема: я создаю программу на Borland C++ Builder 6.0, когда запускаю её на другом компе, где...

Лучший инсталлятор для программ на Borland C++ Builder 6.
Какой инсталятор лучше всего использовать для программ написанных на Borland C++ Builder 6. Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru