Вопрос № 31772: Как проверять правильность загрузки файла?
Нужно проверить файл правильно загрузился или нет, и если нет - то потребовать новый путь для него. (если можно с исходником - я пока плохо ориентируюсь в компонентах).
есть:
begin
path...Вопрос № 31773: Вопрос недавно задал:
Как в консольном приложении использовать NMSMTP и NMPOP3?
И получил такой ответ:
Отвечает: sir henry (>>)
Здравствуйте, 34076!
Точно так-же как и в неконсольном: в строке Uses прописать соотв...Вопрос № 31785: Вопрос такой: в Windows во многих местах встречаются "бегущие" прогресс-индикаторы. Стандартными средствами в Delphi сделать подобное нельзя. В частности, TProgressBar отображает уровень от 0 и до нужной позиции, а отображать уровень от одн...Вопрос № 31786: Уважаемые эксперты!
Не подскажите как сделать выделение парных скобок, типа ( ) и { }. Чтоб когда я подвожу курсор к ( соответвующая ей скобка ) выделялась.
P.S.Компонент synedit не предлагать....Вопрос № 31788: Доброго времени суток господа Эксперты!!!
У меня к вам вопрос:
Можно ли из экзешника извлечь его код. Т.е. есть *.exe файл который мне надо переделать, возможно ли средствами Delphi открыть данный *.exe файл и отредактировать его ко...Вопрос № 31790: Здравствуйте!
Как правильно преобразовать такую строку:
=?windows-1251?Q?=45x=43ode.ru=20-=20?=
=?windows-1251?Q?=EF=F0=EE=E3=F0=E0=EC=EC=E8=F0=EE=E2=E0=ED=E8=E5=20?=
=?windows-1251?Q?=ED=E0=20=E2=FB=F1=EE=EA=EE=EC=20=F3=F...Вопрос № 31794: Уважаемые эксперты подскажите пожалуста как с помощь делфи работать с офисом(есть база данных в аксесе из нее нужно готовить различные с правки в ворд, ехсел и очень хотелось бы в визио диограмки что б рисовались) любая помощь будет принята с огромно...Вопрос № 31824: Здравствуйте,уважаемые эксперты.Подскажите,пожалуйста,как в DBLookupComboBox установить
по умолчанию первое или любое из значений из списка при OnFormShow?
Спасибо....
Вопрос № 31.772
Как проверять правильность загрузки файла?
Нужно проверить файл правильно загрузился или нет, и если нет - то потребовать новый путь для него. (если можно с исходником - я пока плохо ориентируюсь в компонентах).
есть:
begin
path:=edit1.text;
Label2.Caption:=path;
AssignFile (shab, path);
Reset (shab);
while not EOF (shab) do
begin
readln (shab,buf);
Memo1.Lines.Add(buf);
end;
CloseFile(shab);
end;
Отправлен: 18.12.2005, 20:49
Вопрос задал: Andrew (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Golden Spider
Здравствуйте, Andrew!
Я думаю, проблем во время загрузки быть не должно, а вот если файла просто нет то это другое дело.
Перед тением файла проверьте его существование:
if fileexists(path) then
begin
{Читаем}
assignfile...
end
else...
--------- Семь раз проверь, один раз откомпилируй!
Ответ отправил: Golden Spider (статус: 4-ый класс)
Отправлен: 18.12.2005, 21:49
Отвечает: Slava
Здравствуйте, Andrew!
Если файл есть то он должен загрузится.
Если файл отсутствует то можно при попытке загрузки выдать об этом сообщение.
begin
try
path:= Edit1.Text;
Label2.Caption:= path;
Memo1.Lines.LoadFromFile(path);
except on EFOpenError do ShowMessage('Нет файла, укажите другой путь'); End;
end;
Ответ отправил: Slava (статус: 2-ой класс)
Отправлен: 18.12.2005, 22:14
Отвечает: sir henry
Здравствуйте, Andrew!
Нужен критерий правильности загрузки. Какой он у Вас?
Единственный общедоступный способ проверки:
- Проверить, находится ли файл по указанному пути (функция FileExists())
- Попытка открытия файла в обрамлении Try .. Except
Любые другие критерии Вы должны сформулировать сами, иначе невозможно Вам ничего подстказать.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 19.12.2005, 08:08
Отвечает: Schmak
Здравствуйте, Andrew!
Если файл существует и никакая другая программа с ним ничего не делает, то файл точно загрузится. С другой стороны если файл не существует, то это можно проверить при помощи функции FileExists(filename:string):boolean.
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 19.12.2005, 13:47
Вопрос № 31.773
Вопрос недавно задал:
Как в консольном приложении использовать NMSMTP и NMPOP3?
И получил такой ответ:
Отвечает: sir henry (>>)
Здравствуйте, 34076!
Точно так-же как и в неконсольном: в строке Uses прописать соответствующий модуль, объявить переменные нужных типов, заполнить правильно их свойства и вперед. :)
В uses добавил nmsmtp в общем сделал так:
Понимаю, что неправильно (не работает).
Я очень непрофессионал, поэтому поподробнее бы.
Отправлен: 18.12.2005, 21:02
Вопрос задал: 34076 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Tsechoev Bagaudin
Здравствуйте, 34076!
NMSMTP и NMPOP3 являются объектами, значит у них должен быть конструктор (не помешает почитать об ООП). В делфи стандартно конструктором является метод Create. Теперь исправляем ошибки.
uses
nmpop3, nmsmtp;
var
pop: tnmpop3;
smtp: tsmtp;
begin
// создаем объекты
smtp:= smtp.create(); // я незнаю что это за библиотека и потому незнаю как там определены конструкторы, но все примерно так
pop:= tnmpop3.create();
// здесь твой код
...
// теперь уничтожаем объекты, дабы высвободить память
smtp.destroy;
pop.destroy;
end;
удачи!
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 18.12.2005, 23:42
Отвечает: sir henry
Здравствуйте, 34076!
У меня установлена Дельфи 7, а компонента NMSMTP в ней нет, поэтому проверить его работу не могу. Однако сразу же бросается в глаза из Вашего листинга, что переменную SMTP Вы объявить почему-то забыли. Вопрос: как программа может работать с необъявленой переменной?
Ответ отправил: sir henry (статус: Академик)
Отправлен: 19.12.2005, 08:24
Вопрос № 31.785
Вопрос такой: в Windows во многих местах встречаются "бегущие" прогресс-индикаторы. Стандартными средствами в Delphi сделать подобное нельзя. В частности, TProgressBar отображает уровень от 0 и до нужной позиции, а отображать уровень от одной позиции до другой он не умеет. Бегущая полоса именно так и построена - синхронно увеличиваются начальная позиция и конечная, а затем переходит на начало. Вопрос: как такое реализовать в своих программах? Поддержка стилей Windows XP обязательна.
Заранее благодарю за ответы.
Отвечает: Vitava
Здравствуйте, Ерёмин Андрей!
Я думаю, что надо писать свой компонент или искать уже написанный.
Удачи Вам.
Ответ отправил: Vitava (статус: 5-ый класс)
Отправлен: 20.12.2005, 22:53 Оценка за ответ: 2 Комментарий оценки: Очень информативный ответ...
Вопрос № 31.786
Уважаемые эксперты!
Не подскажите как сделать выделение парных скобок, типа ( ) и { }. Чтоб когда я подвожу курсор к ( соответвующая ей скобка ) выделялась.
P.S.Компонент synedit не предлагать.
Отправлен: 18.12.2005, 23:30
Вопрос задал: Yxo (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: nimoid
Здравствуйте, Yxo!
Подскажем...
>P.S.Компонент synedit не предлагать.
А какой предлагать? Млин... мыслечитатели все в отпуске.... )
Можно использовать например RichEdit - там легко реализовать изменение цвета определенного текста. Алгоритм подскажу, а уж код сам пиши, что не выйдет - можешь опять сюда. Все банально и просто...
Ловишь событие при переходе курсора, проверяешь, стоит ли скобка за курсором, если да, то проверяешь, есть ли предыдущая (парная) скобка, если да, то выделяешь ее нужным цветом и вычисляешь предыдущую (парную) скобку и выделяешь ее тем же цветом.
p.s. Поиск текста, определение позиции курсора (каретки), выделение цветом и т.п. легко реализовать.
--------- Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и вперед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 19.12.2005, 02:38 Оценка за ответ: 4 Комментарий оценки: Спасибо конешно, ответ правильный, собственно я так и хочу сделать. Только вопрос, а что если этих скобок не одна, т.е. внутри этих скобок есть еще несколько и допустим одни из них забыли закрыть или наоборот лишнюю поставили. На пример copy(edit1.text,pos('h',edit1.text),lenght(text)-1))
Вопрос № 31.788
Доброго времени суток господа Эксперты!!!
У меня к вам вопрос:
Можно ли из экзешника извлечь его код. Т.е. есть *.exe файл который мне надо переделать, возможно ли средствами Delphi открыть данный *.exe файл и отредактировать его код.
Если это невозможно тогда как можно средствами Delphi добавить в этот файл какую-то кнопку или изменить его Caption у формы или у другого объекта или сделать более глобальное изменение. Если возможно то вместе с примерами.
Видете ли, ув. Ujin Antikvar, извлечь код из скомпилированного файла НЕВОЗМОЖНО. Возможно извлечь только ресурсы или дизассемблировать файл.
Добавить кнопку, или какой-либо контрол или изменить их аттрибуты/значения возможно. И то, сначала надо убедиться, что файл не упакован каким-нить upx-ом и т.п..
Что для этого нужно:
Выдрал (и адаптировал :-) из хелпа ResHacker-а:
1. Смотри Borland Delphi’s demo - Resource Explorer.
2. Borland’s command line utility TDump.exe (идет вместе с Delphi & Cbuilder++).
3. MSDN - http://msdn.microsoft.com/default.asp
4. Хороший Hex редактор.
5. Форматы exe, dll, ocx, cpl и т.д. имеют специфический формат. Смотри на http://www.wotsit.org (замечательный ресурс по форматам файлов).
От себя добавлю: ищи статьи, документацию по данной тематике или проси исходники у авторов таких прог как Restorator, ResHacker и т.п. )).
--------- Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и вперед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 19.12.2005, 02:54 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Boriss
Здравствуйте, Ujin Antikvar!
Есть еще специализированная программа DeDe для восстановления кода (но надеяться на чудо не надо - он может только то, что может)
http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/DeDe.shtml
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 19.12.2005, 12:53 Оценка за ответ: 5
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Данилевич Игорь Владимирович!
Если вы об URL-кодировании, то вы можете воспользоваться компонентой NMURL на странице FastNet
Ответ отправил: Лучников Юрий Владимирович (статус: 6-ой класс)
Отправлен: 19.12.2005, 00:34 Оценка за ответ: 4 Комментарий оценки: Это не совсем URL-кодирование, потому NMURL не помогает. Так кодируется заголовок Subject в письмах электронной почты.
Отвечает: nimoid
Здравствуйте, Данилевич Игорь Владимирович!
По п. 1: берешь строку, и заменяешь соответствующие значения на "нормальные" символы в цикле или еще как-нить...
По п. 2: не знаю, поищи в сети.
--------- Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и вперед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 19.12.2005, 03:00
Вопрос № 31.794
Уважаемые эксперты подскажите пожалуста как с помощь делфи работать с офисом(есть база данных в аксесе из нее нужно готовить различные с правки в ворд, ехсел и очень хотелось бы в визио диограмки что б рисовались) любая помощь будет принята с огромной блогодарностью=)
Отправлен: 19.12.2005, 01:25
Вопрос задал: Asani (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, Asani!
Это можно делать с помощью OLE. Правда работает медленно, зато в инете есть куча описаний.
Это можно делать с помощью DDE. Быстро работает, но описания почти ноль.
Цикл статей посвященных OLE есть на www.delphikingdom.com.
Коннектится и получать данные из БД Access можно традиционным для Дельфи способом - через BDE или через ADO.
Мое личное мнение. Наиболее быстрым делом, не требующим никаких допоплнительных компонентов, будет готовить эти справки в формате HTML. Ведь HTML - это чисто текстовый файл и сварганить его дело одной секунды на любых объемах БД.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 19.12.2005, 08:33
Отвечает: Golden Spider
Здравствуйте, Asani!
Мне известно два наиболее удобных способа:
1. Через OLEс Exel, в Delphi есть такая вкладка servers там всё есть, способ простой и описаний по его использованию в интернете масса. (Мне он более нравится, хотя иногда подтормаживает).
2. С Бд через ADO очень резвый способ, но довольно сложный. Описания в интернете есть.
Также есть специализированные компоненты, но их надо качать :).
--------- Семь раз проверь, один раз откомпилируй!
Ответ отправил: Golden Spider (статус: 4-ый класс)
Отправлен: 19.12.2005, 14:24
Вопрос № 31.824
Здравствуйте,уважаемые эксперты.Подскажите,пожалуйста,как в DBLookupComboBox установить по умолчанию первое или любое из значений из списка при OnFormShow?
Спасибо.