Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 231
от 07.09.2005, 20:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 51
В номере:Вопросов: 7, Ответов: 34


Вопрос № 25676: Кто может порекомендовать компонент (желательно бесплатный, простой) для создания просмотра галереи изображений (например, из одной папки). Спасибо...
Вопрос № 25677: Доброго времени суток. Есть небольшая загвоздка в написании одной програмки-плагина(Dll). А пытаюсь я создать для одного приложения плагин для вывода информации о проигрываемой в винампе песне вместе с тегами. Знаю как брать теги из МП3 файла, без ни...
Вопрос № 25685: Не так давно я задавал вопрос по поводу подсчёта трафика в винде, благадарен за оказанную помощь, прога написана но встала другая проблема, всем известное соединение GPRS учитиывается виндой как то по другому и все примеры связанные с расчётом трафа ...
Вопрос № 25695: Здравствуйте уважаемые ИКСперты, вопрос далеко не в тему, но наболевший. Что вы используете для написания Hel p'ов и Man'ов к своим программам? В простом случае вопрос ясен, можно обойтись html-редактором и htmlToChm'ом. А если нужно написать...
Вопрос № 25704: Можно ли сохранить переменную String в файл? s.SaveToFile(SaveDialog.FileName+'.rtf') - не работает :( Приходится сначала сбрасывать ее в RichEdit, а потом уже сохранять RichEdit1.Lines.SaveToFile(SaveDialog.FileName+'.rtf')....
Вопрос № 25707: Как получить путь к папке программы? (не к файлу, а только к папке) ...
Вопрос № 25717: Привет эксперты! Как связаться с посетителем форума и послать ему письмо на мыло? Не могу связаться с Dadaev Zaur (ID=5454), который вопрос задавал №25098: я хочу сделать обучающую программку радиотехнического характера - это должно<b...

Вопрос № 25.676
Кто может порекомендовать компонент (желательно бесплатный, простой) для создания просмотра галереи изображений (например, из одной папки). Спасибо
Отправлен: 01.09.2005, 20:30
Вопрос задал: Валерий Кравцов (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Romodos
Здравствуйте, Валерий Кравцов!
Я посоветую вам зайти на http://www.torry.net или http://programmistsheaven.com
Там МОРЕ компонентов, в том числе и бесплатных. Обязательно найдёте что-нибудь полезное
---------
FAQ me off!
Ответ отправил: Romodos (статус: 4-ый класс)
Отправлен: 02.09.2005, 13:03

Отвечает: sir henry
Здравствуйте, Валерий Кравцов!
TDrawGrid - таблица изображений, стандартный компонент Дельфи. :)
Посмотрите так-же вот этот компонент:
http://www.torry.net/vcl/grids/drawgrids/datadrawgrid.zip
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 02.09.2005, 20:26

Отвечает: Anefedov
Здравствуйте, Валерий Кравцов!
Компоненту, к сожалению, не знаю. Может для шаблона подойдет ImagView из демонстрашек?

зы
Если не помог, не страшно. Лучшее впереди :-)
Ответ отправил: Anefedov (статус: 3-ий класс)
Отправлен: 02.09.2005, 21:10


Вопрос № 25.677
Доброго времени суток. Есть небольшая загвоздка в написании одной програмки-плагина(Dll). А пытаюсь я создать для одного приложения плагин для вывода информации о проигрываемой в винампе песне вместе с тегами. Знаю как брать теги из МП3 файла, без них инфу выводил простым GetWindowText, но вот соеденить всё воедино не получается. Каким образом можно заставить ВинАмп дать путь проигрываемого файла, или есть какие-то другие варианты решения?
Отправлен: 01.09.2005, 20:34
Вопрос задал: Infidel (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Romodos
Здравствуйте, Infidel!
Просто узнать класс и имя компонента, где Winamp хранит имя мп3 файла (ну Edit или ListBox, я не знаю) с помощью Microsoft Spy++ или WinInspector (http://www.gipsysoft.com/winspector/) и
Findwindow найти это окно, а потом
GetWindowText'ом мп3 оттуда достать
---------
FAQ me off!
Ответ отправил: Romodos (статус: 4-ый класс)
Отправлен: 02.09.2005, 13:13
Оценка за ответ: 4

Отвечает: Delphin
Здравствуйте, Infidel!
Зайди на сайт Nullsoft и посмотри "WinAmp SDK".
Получение всего что угодно делает через отправку сообщений а не простомоу GetWindowText.

---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 9-ый класс)
Отправлен: 03.09.2005, 21:02


Вопрос № 25.685
Не так давно я задавал вопрос по поводу подсчёта трафика в винде, благадарен за оказанную помощь, прога написана но встала другая проблема, всем известное соединение GPRS учитиывается виндой как то по другому и все примеры связанные с расчётом трафа не преднозначены для GPRS, под Dial-up я сделал всё работает отлично, но вот под GPRS лажает не по детски, цыфры астранамические, кто может помочь с решением данной проблемы, ещё не откажусь от описания что же всё таки подсчитывает винда можно на уровне протоколов.
Заранее благодарю
Отправлен: 01.09.2005, 22:31
Вопрос задал: Scay (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delphin
Здравствуйте, Scay!
Очень интересно. И что она делает подругому?
Соеденение через GPRS идет так-же как и по Dial-UP ( Для системы ) только через драйвер который ты не трогаеш и так.
Смотри ошибки в своем коде. И неплохо было-бы взглянуть на сам код.
---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 9-ый класс)
Отправлен: 03.09.2005, 21:01


Вопрос № 25.695
Здравствуйте уважаемые ИКСперты, вопрос далеко не в тему, но наболевший. Что вы используете для написания Help'ов и Man'ов к своим программам?

В простом случае вопрос ясен, можно обойтись html-редактором и htmlToChm'ом. А если нужно написать солидный хелп (ключевые слова там, контекстный поиск и т.д.) то более-менее удобоваримых программ я не обнаружил.

P.S. В данный момент пользуюсь Help & Manual 3,5. Но очень уж он "топорно" выполнен.
Спасибо за внимание.
Отправлен: 02.09.2005, 10:08
Вопрос задал: akaDemik (статус: 1-ый класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zubex
Здравствуйте, AkaDemik!

Существует такая программа RoboHELP...
Позволяет и в формате WinHelp и Chm писать, со всеми возможностями...
Интерфейс Word-овский - легко редактировать.

Весит примерно 70 Mb
Ответ отправил: Zubex (статус: 2-ой класс)
Отправлен: 02.09.2005, 10:46
Оценка за ответ: 5
Комментарий оценки:
Спасибо.

Отвечает: sir henry
Здравствуйте, AkaDemik!
Ответ мой будет не совсем по стандартному хелпу, но то что использую я, более просто в моем понимании, чем стандартный поход. :)
Вкратце о сути. Я использую обычную таблицу базы данных (например формата DBF) и все топики и их названия завожу туда. Названия топиков идут в двух вариантах:
- Русское название. Ну понятно зачем, чтобы вывести список топиков и по нему выбирать топик. :)
- Англицкое название. А вот здесь и кроется фишка. Англицкие названия идут с тем же именем, что и окна в программе. Таким образом, находясь в каком-то окне и нажав F1, я посылаю команду поиска в таблице с названием окна. Поиск останавливается на этой строчке и открывается окно с топиком.
Чтобы не городить огород с BDE (которое в стандарте используется для работы с БД в Дельфи), я, для доступа к таблице БД использую ADO. ADO устанавливается в каждой винде, вместе с офисом и поддерживает по умолчанию формат таблиц ACCESS, поэтому проще всего в ACCESS'e создать базу с топиками хелпа и потом ее использовать.
А вообще, для создания стандартного хелпа с ключевыми словами, все как у взрослых, в составе Дельфи идет утилита HCW.EXE. Если ее запустить, то там в меню Help есть пункт "Training cards", который проведет Вас, по шагам, по всем пунктам создания хелпа.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 02.09.2005, 11:58
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Очень оригинальное решение с БД =) Приму на вооружение. Но все же хотелось бы удобную софтину со стилями форматирования макросами и тд :)

Отвечает: John Freeman
Здравствуйте, AkaDemik!
Не понял вопроса, возьми MSDN, Help к Borland, остальное посмотри
Это и есть HTML->CHM + скрипты js для поиска!!!
---------
Ik bin ulien spiegel!
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 02.09.2005, 12:11

Отвечает: xXx
Здравствуйте, AkaDemik!
Я использую Microsoft HTML workshop, а HTML-страницы пишу в HTML-редакторе и подключаю их туда. Получается очень даже красивые справки со скриптами и т.д. Удачи.
Ответ отправил: xXx (статус: 5-ый класс)
Отправлен: 02.09.2005, 14:10

Отвечает: Силантьев Евгений Александрович
Здравствуйте, AkaDemik!
Первое что приходит на ум это Microsoft HTML Workshop. По-моему достаточно удобный и не сложный!
---------
The world is mine! :)
Ответ отправил: Силантьев Евгений Александрович (статус: 5-ый класс)
Отправлен: 02.09.2005, 17:35

Отвечает: Denisss
Здравствуйте, akaDemik!
Пользуюсь DreamWeaver (редактор HTML) + HTML Help Workshop (компилятор CHM файлов).
Ответ отправил: Denisss (статус: Студент)
Отправлен: 02.09.2005, 23:50


Вопрос № 25.704
Можно ли сохранить переменную String в файл?

s.SaveToFile(SaveDialog.FileName+'.rtf') - не работает :( Приходится сначала сбрасывать ее в RichEdit, а потом уже сохранять RichEdit1.Lines.SaveToFile(SaveDialog.FileName+'.rtf').
Отправлен: 02.09.2005, 14:17
Вопрос задал: source (статус: Посетитель)
Всего ответов: 9
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Romodos
Здравствуйте, source!
Советую сделать так
var f:text;
begin
assignfile(f,'name.txt');
rewrite(f);
write(s);
closefile(f);
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: 4-ый класс)
Отправлен: 02.09.2005, 14:24

Отвечает: akaDemik
Здравствуйте, source!
Что бы сохранить в формате rtf видимо только через RichEdit. Если же нужно сохранить просто текст, то можно так:

{Сохранение в файл просто тектста строки}
procedure Trace(const s : String);
var
F : TFileStream;
FName : String;
begin
FName := ExtractFilePath(Application.ExeName)+ 'MyFile.txt';
F := nil;
try
F:=TFileStream.Create(FName, fmCreate or fmShareDenyWrite);
F.Write(s[1], Length(rS));
finally
if Assigned(F) then
F.Free;
end;
end;
Ответ отправил: akaDemik (статус: 1-ый класс)
Отправлен: 02.09.2005, 14:30

Отвечает: Jadd
Здравствуйте, source!
Естессно работать не будет. Вернее будет, но не будет сохранять, ведь SaveToFile - метод класса TRichEdit. А если в нем нету вашей строки, то как SaveToFile будет ее сохранять? Есть стандартные функции для записи в файл WriteFile (WinAPI) такие же функции есть и в дельфях. Другой способ - держать буфер типа TStringList и строки из RichEdit хранить там, добавить свою строку и сохранить в файл, но это - голимый метод. Проще первый вариант.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 02.09.2005, 14:51

Отвечает: newinfo2005
Здравствуйте, source!
Можно сделать так:
var
f:textfile;
assignfile(f,savedialog1.filename);
rewrite(f)
writeln(f,s);
closefile(f);
end;
---------
Хочу стать умным и...много денег и халявного инета.
Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 02.09.2005, 15:31

Отвечает: svsrus
Здравствуйте, source!

var F:filie of String;
S:string;

begin
S:='Здравсвуй школа!'
AssignFile(F,'test.dat');
Rewrite(F);
Write(Ln)(F,S);
CloseFile(F);
end;

Аналогично происходит и чтение из файла. Вемсто Rewrite используешь Reset, вместо Write(Ln) - Read(Ln). Учи паскаль:)
Ответ отправил: svsrus (статус: 1-ый класс)
Отправлен: 02.09.2005, 17:18

Отвечает: sir henry
Здравствуйте, source!
1. Если сохранить в текстовый файл, то нет ничего проще:
var
s: string;
f: TextFile;
Begin
AssignFile(f, SaveDialog.FileName);
Rewrite(f);
WriteLn(f, s);
CloseFile(f);
End;
2. Если же Вы имеете в виду файл како-го либо специального формата (к которым относится и файлы типа RTF), то естественно, необходимо применять специальные компоненты.
Кстати, почему именно в формате RTF? Куда удобнее, универсальнее и, надо заметить, компактнее будет сохранить строковую переменную именно в текстовом файле. Но раз уж Вам пришла в голову такая фантазия, то, как говорится, хозяин - барин. :)
Если Вы возмете вместо формата RTF Word'овский формат DOC, то можно будет обойтись и без RichEdit'а, с помощью OLE automation.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 02.09.2005, 19:33
Оценка за ответ: 5

Отвечает: Силантьев Евгений Александрович
Здравствуйте, source!
Самый простой и надежный способ (см. приложение)

Приложение:

---------
The world is mine! :)

Ответ отправил: Силантьев Евгений Александрович (статус: 5-ый класс)
Отправлен: 03.09.2005, 00:50
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, source!
Для этой цели не нужно использовать TStringList. Всё гораздо проще:

var F: TextFile;
begin
S:='This is a text for writing to file.';
AssignFile(F,'C: est.txt');
ReWrite(F);
Write(F,Str);
CloseFile(F);
end;

---------
Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 03.09.2005, 12:31

Отвечает: Delphin
Здравствуйте, source!
Переменную в файл?????? Откдуа SaveToFile(SaveDialog.FileName+'.rtf') ?
Смотри пр.

Приложение:

---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com

Ответ отправил: Delphin (статус: 9-ый класс)
Отправлен: 03.09.2005, 20:59
Оценка за ответ: 5


Вопрос № 25.707
Как получить путь к папке программы? (не к файлу, а только к папке)
Отправлен: 02.09.2005, 15:01
Вопрос задал: source (статус: Посетитель)
Всего ответов: 12
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, source!
Если мне не изменяет память, то ExtractFilePath(Application.ExeName);
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 02.09.2005, 15:07

Отвечает: Вiктор
Здравствуйте, source!
можете ещё попробовать так, через WINAPI:
GetModuleFileName
а потом как-нибудь обрезать имя файла и получить папку.
(а если вам надо текущая директория, которая по умолчанию та, откуда программу запустили, то смотрите GetCurrentDirectory )
---------
BUGи ловить, ловить и ловить. А потом дописать код - и всё с начала...
Ответ отправил: Вiктор (статус: 5-ый класс)
Отправлен: 02.09.2005, 15:23

Отвечает: Zubex
Здравствуйте, source!

ExtractFileDir(Application.ExeName)

или

ExtractFileDir(ParamStr(0));

Ответ отправил: Zubex (статус: 2-ой класс)
Отправлен: 02.09.2005, 15:43
Оценка за ответ: 5

Отвечает: Romodos
Здравствуйте, source!
1)Если вы юзаете VCl
s:=extractfilepath(application.exename);

2)Если вы юзаете WinApi смотрите приложение(взяты из библиотеки KOL)
Работает стопудово (лучше использовать второй метод, если критична скорость, а первый, если вам лень и вы пользуетесь стандартной дельфой

Приложение:

---------
FAQ me off!

Ответ отправил: Romodos (статус: 4-ый класс)
Отправлен: 02.09.2005, 15:47

Отвечает: akaDemik
Здравствуйте, source!
Примерно так:

var
pPath : String;
begin
// путь можно извлечь так
pPath := ExtractFilePath(Application.ExeName);
// или так
pPath := ExtractFilePath(ParamStr(0));
// И добавить заврешающий "" к полученному пути
// на всяк случай.
pPath := IncludeTrailingPathDelimiter(pPath);
end;
Ответ отправил: akaDemik (статус: 1-ый класс)
Отправлен: 02.09.2005, 16:52
Оценка за ответ: 5

Отвечает: svsrus
Здравствуйте, source!

Используй Application.GetNamePath;
Ответ отправил: svsrus (статус: 1-ый класс)
Отправлен: 02.09.2005, 17:13

Отвечает: Силантьев Евгений Александрович
Здравствуйте, source!
Ну, например, так:
ExtractFilePath(Application.ExeName);
// Возвращает C:Program FilesBorlandDelphi7Projects

или так:
ExtractFileDir(Application.ExeName);
// Возвращает C:Program FilesBorlandDelphi7Projects

---------
The world is mine! :)
Ответ отправил: Силантьев Евгений Александрович (статус: 5-ый класс)
Отправлен: 02.09.2005, 17:44
Оценка за ответ: 5

Отвечает: Malish
Здравствуйте, source!
Начнем с того, как можно узнать полное имя вашей программы. Здесь есть два решения.
Первое решение: воспользоваться таким объявлением Application.ExeName:string;
Второе решение: я чаще им пользуюсь paramstr(0); так же возвратит полный путь к вашей программе. Ну а чтобы узнать директорию вашей программы воспользуемся функцией ExtractFilePath(filename:string):string;
То есть узнать директорию можно так: ExtractFilePath(paramstr(0));
Ответ отправил: Malish (статус: Студент)
Отправлен: 02.09.2005, 19:39
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, source!
Примерно так:
FolderOfMyProg:=GetCurrentDir;
В большинстве случаев, когда программа работает только в том каталоге, где она запускается, этого вполне хватает. Если же программа осуществляет во время своей работы переход по каталогам, более надежен такой способ:
FolderOfMyProg:=ExtractFileDir(ParamStr(0)); {Возвращает каталог вместе с буквой диска}
либо
FolderOfMyProg:=ExtractFileDir(Application.ExeName);
Первый пример подойдет, если у Вас консольное приложение, в котором отсутствет VCL и, таким образом, не образуется глобальная переменная типа TApplication.
Второй пример подойдет для приложения с VCL.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 02.09.2005, 19:54
Оценка за ответ: 5

Отвечает: Козлов Николай Николаевич
Здравствуйте, source!
extractfilepath(application.exename);
Ответ отправил: Козлов Николай Николаевич (статус: 1-ый класс)
Отправлен: 02.09.2005, 23:20
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, source!
Самый простой способ:

Path:=ExtractFilePath(Application.ExeName);
---------
Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 03.09.2005, 12:31
Оценка за ответ: 5

Отвечает: Delphin
Здравствуйте, source!
1. Если подключен модуль Forms. ExtractFilePath( Application.ExeName );
2. Если не подключен ExtractFilePath( ParamStr( 0 ) );
---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 9-ый класс)
Отправлен: 03.09.2005, 20:55
Оценка за ответ: 5


Вопрос № 25.717
Привет эксперты!
Как связаться с посетителем форума и послать ему письмо на мыло?
Не могу связаться с Dadaev Zaur (ID=5454), который вопрос задавал №25098:
я хочу сделать обучающую
программку радиотехнического характера - это должно
быть многооконное приложение, в политре инструментов
должны быть: батарейка, лампочка, сопротивление и программа
должна уметь расчитать ток, напряжение и тому подобное. Вопрос в том как мне сделать эти компоненты (если можно
небольшой кусок кода) как организовать их соединение, например
как в Electrinics Worckbench.

Я бы ему исходники программы работающей послал.
URL: www.berezuev.hotbox.ru
Программа SCAD - Symbolic Circuits Analysis and Diagnosis.
Мое мыло berezuev@ukr.net

Приложение:

Отправлен: 02.09.2005, 18:49
Вопрос задал: Березуев Роман Иванович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Березуев Роман Иванович!
Единственное, что Вы можете сделать, это зайти на RusFAQ, отыскать в участниках того, кто Вам нужен и послать ему письмо по внутренней почте RusFAQ. После этого Вашему абоненту будет послано уведомление на его реальный почтовый адрес.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 02.09.2005, 20:00
Оценка за ответ: 5
Комментарий оценки:
Протормозил я, да спасибо. Именно так и надо связываться.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться
Вспомнить пароль

В избранное