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

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


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

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

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

Выпуск № 363
от 23.01.2006, 02:00

Администратор:Калашников О.А.
В рассылке:Подписчиков: 242, Экспертов: 63
В номере:Вопросов: 6, Ответов: 10


Вопрос № 33417: Здравствуйте, уважаемые друзья :-) У меня появился интересный вопрос для меня. Смысл вот в чем: Я произвожу сканирование папки до 3 уровня сканирования, т.е. Папка1\\Папка2\\Папка3\\Папка4.... Так вот... мне надо получить масс...
Вопрос № 33435: УВ. Эксперты! У меня к Вам вопрос как можно отправить файл размером около 200кбайт по средством TSocket. отправка простого тескта без проблем вот файлы отправляются только несколько байтов. может вышлите примерчик. Заранее благодарен С/У Ера ...
Вопрос № 33450: Здравствуйте,уважаемые эксперты. Как можно показыавать процесс загрузки(открытия) страницы в TWebBrowser с помощю ProgressBar?...
Вопрос № 33456: Здравствуйте, у меня 2 ма-а-аленькие проблемки: 1. Как мне засунуть в dll картинку (любого формата), допустим *.bmp, а потом из своего приложения загрузить эту *.bmp ну допустим в Image1. 2. Что такое ресурс, как его создать, как им пользов...
Вопрос № 33459: Здравствуйте, уважаемые эксперты. Нужно из содержимого бинарного файла сделать строку (string). Есть предложения? Приму любые ответы. (куда я денусь :))...
Вопрос № 33463: Кто подскажет, где взять библиотеку для работы с TIFF-файлами, написанную исключительно на языке Delphi и которую можно было бы скомпилировать в среде Lazarus, чтобы была (хотя бы какая-то) возможность написать приложение с её испольованием для Linux...

Вопрос № 33.417
Здравствуйте, уважаемые друзья :-)

У меня появился интересный вопрос для меня. Смысл вот в чем:

Я произвожу сканирование папки до 3 уровня сканирования, т.е. Папка1\\Папка2\\Папка3\\Папка4.... Так вот... мне надо получить массив названий этих папок, так, чтобы я мог определить точное положение, допутим папки Папка4, а именно Папка1, папка2 и папка3.......

Я решил использовать структуру:

Type Dirs = Record
Uroven:byte; // 1-первый 2-второй и т.д.
Ur1:string; //
Ur2:string; // Названия папок
Ur3:string; //
Ur4:string; //
end;

Затем создаю массив типов Dirs и имею полный отчет.....

Целесообразно ли это? Есть ли более простой(быстрый) (кушающий меньше памяти)способ?
Отправлен: 17.01.2006, 07:17
Вопрос задал: D.M. (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Vbhjndjhtw
Здравствуйте, D.M.!
Для экономии памяти используй DLL.
P.S.Вообще исходник бы неплохо.
Ответ отправил: Vbhjndjhtw (статус: 8-ой класс)
Отправлен: 17.01.2006, 07:48
Оценка за ответ: 2
Комментарий оценки:
Не думаю, что dll экономит память ;-)
И как-то не горю желанием делать dll ради одной единственной функции... Тем более вызов функции из dll тоже кушает время.... :-p

А исходник дан уже в вопросе.... и вопрос конкретный.... ну если не понятен был вопрос, то извеняй :-)

Отвечает: Boriss
Здравствуйте, D.M.!
Конечно, это не есть хороший путь, поскольку будут папки 1-го уровня и т.д., а ВЫ создали место для остальных. По-моему, лучше использовать TStrings для хранения полных путей - это динамическая структура, а выделять уровни для данной папки лучше тоже программно, а не хранить ее.
Это обычная дилемма: скорость или память
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 17.01.2006, 08:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо.... :-) Вроде как понял:

Type Dirs = Record
Uroven:byte; // 1-первый 2-второй и т.д.
DirZ:TStrings;
end;

А потом обычными методами работать... :-)
Хотя, если ur1..4 не заполнены, т.е. = 0 байт, то и занимают они вроде тоже не много места..... :-)

Отвечает: Меркулов Алексей
Здравствуйте, D.M.! Меньше памяти - создайте StringGrid где-нибудь, Visible:=False; и все
Ответ отправил: Меркулов Алексей (статус: 2-ой класс)
Отправлен: 17.01.2006, 22:10


Вопрос № 33.435
УВ. Эксперты! У меня к Вам вопрос как можно отправить файл размером около 200кбайт по средством TSocket. отправка простого тескта без проблем вот файлы отправляются только несколько байтов. может вышлите примерчик. Заранее благодарен
С/У Ера
Отправлен: 17.01.2006, 13:22
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: akaDemik
Здравствуйте, ERA!
Можно открыть файл как поток (Stream) и отправить его. Учтите что после отправки поток будет освобожден (Free). Т.е. если в примере перед end-ом дописать f.free, получите ошибку доступа к памяти ;)

Приложение:

Ответ отправил: akaDemik (статус: 2-ой класс)
Отправлен: 18.01.2006, 09:41


Вопрос № 33.450
Здравствуйте,уважаемые эксперты.
Как можно показыавать процесс загрузки(открытия) страницы в TWebBrowser с помощю ProgressBar?
Отправлен: 17.01.2006, 16:13
Вопрос задал: Клёмин Сергей (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Rusland
Здравствуйте, Клёмин Сергей!
Например вот так:
procedure TForm1.WebBrowserProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
begin
ProgressBar.Max:=ProgressMax;
ProgressBar.Position:=Progress;
end;
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Специалист)
Отправлен: 17.01.2006, 16:17
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Клёмин Сергей!
У TwebBrowser есть событие OnProgressChange, которому передаются два параметра - Progress (текущая позиция прогресса загрузки) и ProgressMax (максимальное значение прогресса). Такие же свойства есть у TProgressBar - Max (максимальное значение) и Position (позиция). Мой коллега уже привёл действующий пример :)
---------
Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 17.01.2006, 17:04
Оценка за ответ: 5


Вопрос № 33.456
Здравствуйте, у меня 2 ма-а-аленькие проблемки:
1. Как мне засунуть в dll картинку (любого формата), допустим *.bmp, а потом из своего приложения загрузить эту *.bmp ну допустим в Image1.
2. Что такое ресурс, как его создать, как им пользоваться... вобщем из этих вопросов понятно, что я совершенно не имею представления, что это такое. Но тем неменее знаю, что это полезная штучка. Может быть статейки какие-нить, или примерчики с объяснениями!
Заранее ОГРОМНОЕ спасибо!
Отправлен: 17.01.2006, 17:11
Вопрос задал: Toxic~Fire (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Slava
Здравствуйте, Toxic~Fire!
Создаешь текстовый файл с расширением .RC и пишешь в нем<имя ресурса> <тип хранимого ресурса> <имя файла> например:

BackGround0 BITMAP "BackGround0.bmp"
BackGround1 BITMAP "BackGround1.bmp"
BackGround2 BITMAP "BackGround2.bmp"

Нужно, что бы все перечисленные в нем файлы и сам файл RC лежали в одной папке.
Далее, компилируешь его с помощью утилиты brcc32 в файл .RES -> "brcc32 myres.rc". Получаешь myres.res. Это и есть файл ресурсов. Потом присоединяешь в свой проект или в отдельный модуль с помощью директивы {$R myres.res}. После присоединения его к проекту надо проект перестроить (Build).

Загрузить картинку можно используя LoadFromResourceName.
Так же файл ресурсов можно создать с помощью ImageEditor, которая идет вместе с delphi.
Ответ отправил: Slava (статус: 7-ой класс)
Отправлен: 17.01.2006, 21:12

Отвечает: Diman_A
Здравствуйте, Toxic~Fire!
Про создание ресурсов Slava уже объяснил, я повторять не буду.
Как извчечь bitmap из dll:
создаешь пустую dll, директивой {$r myres.res} привязываешь файл myres.res к ней. Компилируешь dll, и оставляешь ее на время.
Создаешь новое приложение, кидаешь на форму image1 и button1. По событию onclick для кнопки пишешь такой код:
procedure TForm1.iButton1Click(Sender: TObject);
var
AModule: THandle;
begin
AModule := LoadLibrary('project2.dll'); //путь к dll, у меня она - в папке проекта
image1.Picture.BitMap.LoadFromResourceName(AModule, 'bmp');
FreeLibrary(AModule);
end;
Ответ отправил: Diman_A (статус: 3-ий класс)
Отправлен: 20.01.2006, 05:24


Вопрос № 33.459
Здравствуйте, уважаемые эксперты.
Нужно из содержимого бинарного файла сделать строку (string). Есть предложения? Приму любые ответы. (куда я денусь :))
Отправлен: 17.01.2006, 17:48
Вопрос задал: [Bruder] (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zubex
Здравствуйте, [Bruder]!
function File2Str(FileName:String):String;
var FS:TFileStream;
begin
Result:='';
FS:=TFileStream.Create(FileName,fmOpenRead);
try
SetLength(Result,FS.Size);
FS.Read(Result[1],FS.Size);
finally
FS.Free;
end;
end;

FileName - полное имя файла с путями.
Удачи
---------
Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 5-ый класс)
Отправлен: 17.01.2006, 17:59
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо, попробую...


Вопрос № 33.463
Кто подскажет, где взять библиотеку для работы с TIFF-файлами, написанную исключительно на языке Delphi и которую можно было бы скомпилировать в среде Lazarus, чтобы была (хотя бы какая-то) возможность написать приложение с её испольованием для Linux и MacOS. Вообще, у кого какие идеи по этому поводу?
Отправлен: 17.01.2006, 19:17
Вопрос задал: Валерий Кравцов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Меркулов Алексей
Здравствуйте, Валерий Кравцов! попробуйте установить RXLibrary, или зайдите на сайт Torry.net
Ответ отправил: Меркулов Алексей (статус: 2-ой класс)
Отправлен: 17.01.2006, 22:36
Оценка за ответ: 1
Комментарий оценки:
Я говорю о TIFF, а не о GIF


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

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

В избранное