Вопрос № 24513: Привет всем!
Вопрос серьёзный, прошу хороший подход. Требуется создать утилиту, назначением которой будет создание exe-файлов (автозапусков для CD/DVD-дисков). Как сделать так, чтобы можно было создать exe-файл? Не тащить же за собой исходный код...Вопрос № 24521: Добрый день, задача вроде не сложная, но встретились неожиданные испытания. И так надо отправить почтовое сообщение с приложением, через установленного у пользователя почтового клиента (не важно какого). Простой и дешёвый
способ mailto не хочет добав...Вопрос № 24529: Здравствуйте, уважаемые эксперты!
Не подскажет ли кто местечко в сети, где можно взять книжицу или толковый туториал по Delphi 5?
Чтобы с нуля всё объясеялось: синтаксис, IDE и т.д. Хоть отъявленным чайником себя не назову, но всё же...
И...Вопрос № 24530: Мельница - Ночная кобыла 1091 mp3
Алиса - Изгой 687 mp3
ДДТ - Пропавший без вести 487 mp3...Вопрос № 24535: Здравствуйте уважаемые эксперты!!!
Как сделать поиск в ListView по какому-нибудь столбцу? Допустим у меня два столбика: Номер и Наименование. Заранее спасибо....
Вопрос № 24.513
Привет всем!
Вопрос серьёзный, прошу хороший подход. Требуется создать утилиту, назначением которой будет создание exe-файлов (автозапусков для CD/DVD-дисков). Как сделать так, чтобы можно было создать exe-файл? Не тащить же за собой исходный код программы, все модули, которые она использует и ещё компилятор впридачу? Программа-шаблон может делать всё согласно данным, записанным в ini-файле, однако тащить за собой этот ini-файл не хочется. Хочется его как-нибудь "впаять" в сам exe-шник, будто это - отдельная программа.Подобные
утилиты на свете существуют, например: CD Menu Creator, MakeCDROM, Traction CD Menu
Creator и др. Надеюсь, вопрос понятен. Благодарю за внимание!
P.S. Подобный вопрос задавался не так давно в рассылке по VB, но там ни одного разумного ответа не дали.
Отправлен: 03.08.2005, 19:04
Вопрос задал: Ерёмин Андрей (статус: Студент)
Всего ответов отправлено: 2
Отвечает: Denisss
Здравствуйте, Ерёмин Андрей!
Чтобы не тащить за собой INI файл, его можно:
а) дописать в конец EXE файла, а после записать размер в байтах этого INI файла (Можете воспользоваться модулем acRW - http://alex-co.com.ru/delphi/modules/acRW.rar [1.6K]).
б) можно записать в ресурсы программы. (Для осуществления записи в ресурсы программы, могу порекомендовать модуль madRes из набора madCollection - http://madshi.bei.t-online.de/madCollection.exe [~6M]).
Ответ отправил: Denisss (статус: Студент)
Отправлен: 03.08.2005, 19:35 Оценка за ответ: 5 Комментарий оценки: 5+! Большое спасибо. Модуль acRW очень помог! Проблема решена!
Отвечает: sir henry
Здравствуйте, Ерёмин Андрей!
Может быть я не совсем правильно понял Ваш вопрос, но решить можно так.
Создать соответствующую структуру, типа запись и заполнять ее поля нужными Вам данными, на основе которого и будет потом создан экзешник. Т.е. это вариант хранения данных не в ini-файле, а внутри самой программы.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 03.08.2005, 20:50 Оценка за ответ: 4 Комментарий оценки: Вы действительно не поняли вопроса. Таким образом можно создавать приложения, но каждое придётся компилировать отдельно. Смысл в другом: есть приложение, передав которому некоторые параметры, создаётся дисковое меню. Если хранить данные в ini, то можно легко их изменить и, соответственно, изменится меню. Задача в том, чтобы избавиться от ini, т.е. прицеплять данные
к exe-файлу, но не во время разработки программы, а когда это требуется. Делать эту "прицепку" будет другая утилита.
Вопрос № 24.521
Добрый день, задача вроде не сложная, но встретились неожиданные испытания. И так надо отправить почтовое сообщение с приложением, через установленного у пользователя почтового клиента (не важно какого). Простой и дешёвый способ mailto не хочет добавлять приложенный файл. Через MapiSendDocuments, всё добавляет, но не задаёт адрес получателя, тему, текст сообщения, не удобно, MapiSendMail всё делает, но не добавляет файл.
TMapiMessage и TMapiRecipDesc в XP почему-то ведут себя крайне странно, хотя в 98 проблем не было, что ещё поковырять просто не знаю, был бы очень признателен, за любой намёк. Заранее спасибо.
Отправлен: 03.08.2005, 23:43
Вопрос задал: SuperMaxx (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Маренич Владимир
Здравствуйте, SuperMaxx!
Для этих целей я использовал компоненты Indy - получилось супер :)
Думаю из этого примера все понятно. Удачи.
Приложение:
Ответ отправил: Маренич Владимир (статус: 1-ый класс)
Отправлен: 04.08.2005, 00:22 Оценка за ответ: 4 Комментарий оценки: Не совсем то, отправка нужна через почтового клиента пользователя, а не на прямую. Так слишком много заморочек для пользователя, начиная от ввода данных и заканчивая фаерволом или брандмауром.
Отвечает: Rusland
Здравствуйте, SuperMaxx!
Есть компонент MapiControl, который занимается отправкой почты как раз через почтовые программы Outlook Express, The bat. Файл занимает всего 9 Кб. Ссылка на компонент: http://source.atlant.ru/delphi_download/sendmail.zip Удачи.
--------- Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: 9-ый класс)
Отправлен: 04.08.2005, 13:10
Вопрос № 24.529
Здравствуйте, уважаемые эксперты!
Не подскажет ли кто местечко в сети, где можно взять книжицу или толковый туториал по Delphi 5?
Чтобы с нуля всё объясеялось: синтаксис, IDE и т.д. Хоть отъявленным чайником себя не назову, но всё же...
Или если не ссылку, то какого лучше автора смотреть/искать?
Заранее громадное спасибо!
Отправлен: 04.08.2005, 08:05
Вопрос задал: Strori (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Denisss
Здравствуйте, Strori!
Вот тут есть много по Delphi:
http://alex-co.com.ru/delphi/Documents/Papers.php
http://edu.krasu.ru/DATA/docs/delphi/ (здесь есть оч. хорошая книга - d5_dev_guide1.zip [4,7M], d5_dev_guide2.zip [5,6M])
Ответ отправил: Denisss (статус: Студент)
Отправлен: 04.08.2005, 09:39
Отвечает: Ballon
Здравствуйте, Strori!
Попробуй поискать книгу Архангельского "Программирование в Delphi 5"
Ответ отправил: Ballon (статус: 3-ий класс)
Отправлен: 04.08.2005, 12:52
Отвечает: Rusland
Здравствуйте, Strori!
Насчет 5-ой версии не могу сказать, а по 6-ой много книг на ситфоруме http://www.citforum.ru/programming/delphi.shtml Удачи.
--------- Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: 9-ый класс)
Отправлен: 04.08.2005, 13:25
Вопрос № 24.530
Мельница - Ночная кобыла 1091 mp3
Алиса - Изгой 687 mp3
ДДТ - Пропавший без вести 487 mp3
Отправлен: 04.08.2005, 08:08
Вопрос задал: Strori (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Rusland
Здравствуйте, Strori!
Полностью с вами согласен :-D
--------- Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: 9-ый класс)
Отправлен: 04.08.2005, 13:27
Отвечает: Ерёмин Андрей
Здравствуйте, Strori!
А в чём, собственно, суть вопроса?
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 09.08.2005, 06:57
Вопрос № 24.535
Здравствуйте уважаемые эксперты!!!
Как сделать поиск в ListView по какому-нибудь столбцу? Допустим у меня два столбика: Номер и Наименование. Заранее спасибо.
Отправлен: 04.08.2005, 09:27
Вопрос задал: xXx (статус: 3-ий класс)
Всего ответов отправлено: 3
Отвечает: Kazakh
Здравствуйте, xXx!
Примерно так
with listView1 do
for i:=0 to count-1 do
if items[i].caption='10' then Showmessage('строка #10 найдена')
// поиск по 1 столбцу.
или
with listView1 do
for i:=0 to count-1 do
if items[i].subitems[0]='Спички' then Showmessage('строка #10 найдена')
//поиск по 2 столбцу, третий столбец будет соответственно items[i].subitems[1]
Ответ отправил: Kazakh (статус: 1-ый класс)
Отправлен: 04.08.2005, 09:44
Отвечает: Ерёмин Андрей
Здравствуйте, xXx!
Писал я одну такую программку... Был TListView (большооой такой). Что я делал: просто пробегал с помощью цикла все его строки и делал сравнение. Если требуется точное сравнение, то сравниваем со значением ячейки: For i:=0 To ListView.Items.Count-1 Do
if search_str = ListView.Items[i].SubItems[1] Then ShowMessage('Найдено!');
Ну а если требуется совпадение с любой частью поля - использовать Pos() и, если возвратит значение, большее 0 (нуля), значит найдено. Чтобы сделать поиск без регистра, нужно строку, которую ищем и текст ячейки, в которой ищем, приводить к верхнему или нижнему регистру. Вот такова общая схема поиска. В целом, реализация достаточно проста. Удачи!
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 04.08.2005, 09:58
Отвечает: Маренич Владимир
Здравствуйте, xXx!
Перебираем все итемы и сравниваем их позицию с нужной. Если совпадает, тогда сравниваем текст, если совпадает, то нашли, если нет - ищем дальше. Может этот пример тебе поможет.
Приложение:
Ответ отправил: Маренич Владимир (статус: 1-ый класс)
Отправлен: 04.08.2005, 10:24