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

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


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

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

Выпуск № 773
от 07.04.2007, 13:05

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


Вопрос № 80552: Добрых вам суток уважаемые эксперты, и с наступившим праздником. Есть такой вопрос. Допустим на рабочем столе открыта некая веб-страница. Необходимо сделать скачку всех находящихся на ней ссылок(без их открытия), к примеру на дискету. Как это сде...
Вопрос № 80553: Здраствуйте ув. Експерты Вопрос такой например есть переменная А в ходе выполнения программы ей присваивается значение Б . Как зделать так что бы после завершения программы в последующем ее запуске перемення А уже имела значение Б ? Тоес...
Вопрос № 80623: Здравствуйте, уважаемые эксперты! Можно ли каким-то образом или с помощью специальной программы запихнуть библиотеку dll в экзешник, который обращается к этой библиотеке?...
Вопрос № 80624: Доброго времени суток! В Pascal 7.0 при вызове справки по использо ванию какой либо процедуры (функции) всегда можно было вызвать пример использования этой процедуры.В стандартном Delphi help есть вроде все но нет этих примеров.Не подска...
Вопрос № 80637: Здраствуйте. У меня два вопроса. 1)Как изменять размери компонента Image в соответствии с разрешением загружаемой картинки. 2) Как узнать, что загружаемая картинка монохромная(черно-белая) или цветная. ..
Вопрос № 80640: Уважаемые эксперты! подскажите пожалуйста как реализовать такую штуковину: Эта процедура при нажатии на строчку в ListBox'е загружает исходный код HTML в Memo: procedure TForm3.ListBox1KeyPress(Sender: TObject; var Key: Char); begin ...
Вопрос № 80652: Здравствуйте! Уважаемые эксперты помогите с одной проблемой. Программа запрашивает информацию из двух баз через TQuery при запуске. При обращении к каждой базе запрашивает логин. Вопрос как отключить ручную авторизацию? В ко...

Вопрос № 80.552
Добрых вам суток уважаемые эксперты, и с наступившим праздником. Есть такой вопрос.
Допустим на рабочем столе открыта некая веб-страница. Необходимо сделать скачку всех находящихся на ней ссылок(без их открытия), к примеру на дискету. Как это сделать(если можно полностью исходник) ?
Отправлен: 01.04.2007, 14:45
Вопрос задал: Alessio (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Alessio!
Программа не очень тривиальная, точно такая же вряд ли уже есть у кого-дь, а писать за вас код никто не будет.
Для начала надо загрузить эту страницу в вашу программу.
Что значит "на рабочем столе открыта"? Если имеется ввиду, что эта страница сделана фоном (обоями) рабочего стола, то путь к файлу можно прочесть в реестре из строкового ключа:
HKCUSoftwareMicrosoftInternet ExplorerDesktopGeneralWallpaper
Если это просто файл на рабочем столе, то дайте пользователю выбрать его с помощью стандартного FileOpenDialog.
Далее для перебора всех ссылок воспользуйтесь, например, компонентом TWebBrowser (куда и загрузите нужный вам html-файл).
var
links: Variant;
MyLinks: TStringList; // вообще-то это долно быть глобальной переменной.
begin
links := Form1.WebBrowser1.OleObject.document.all.tags('a')
for i := 0 to links.length - 1 do
MyLinks.Add(links.href);
end;

Теперь все ссылки у вас хранятся в MyLinks.
Далее с помощью чего-дь (TEdit + ShellTreeView) предоставьте пользователю возможность выбрать, директорию, куда сохранять эти файлы.
Ну а потом скачивайте их с помощью каких-дь компонентов:
Посмотрите внизу этой страницы, там много примеров, как скачивать файл.
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 01.04.2007, 16:28


Вопрос № 80.553
Здраствуйте ув. Експерты
Вопрос такой например есть переменная А в ходе выполнения программы ей присваивается значение Б .
Как зделать так что бы после завершения программы в последующем ее запуске перемення А уже имела значение Б ?
Тоесть чтобы знач Б хранилось в переменной после перезапуска пргограммы !
Отправлен: 01.04.2007, 14:51
Вопрос задал: VaNuk (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: василий1
Здравствуйте, VaNuk!
как например сделать ini файл

Ниже показаны две функции, которые помещают и получают значение переменной (StringName) в ini-секции (IniSection) ini-файла (TheIniFile)}

function IniGetStringValue(
TheIniFile: string;
IniSection: string;
StringName: string;
DefaultString: string): string;
var
TheIni: TIniFile;
begin
TheIni := TIniFile.Create(Self);
try
Result :=
TheIni.ReadString(
IniSection,
StringName,
DefaultString);
if Result = '' then
Result := DefaultString;
finally
TheIni.Free;
end;
end;

function IniSetStringValue(
TheIniFile: string;
IniSection: string;
StringName: string;
StringValue: string): Boolean;
var
TheIni: TIniFile;
begin
TheIni := TIniFile.Create(Self);
try
try
TheIni.WriteString(
IniSection,
StringName,
StringValue);
Result := True;
except
Result := False;
end;
finally
TheIni.Free;
end;
end;



Ответ отправил: василий1 (статус: 2-ой класс)
Ответ отправлен: 01.04.2007, 15:44

Отвечает: W@NDeReR
Здравствуйте, VaNuk!
Можно воспользоваться Ini файлом например:

uses iniFiles;

procedure TForm1.FormDestroy(Sender: TObject);
var
F: TIniFile; //переменная типа TIniFile
begin
b:=StrToint(edit1.Text);
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'file.ini'); //создание файла file.ini
F.WriteInteger('par1', 'par2', B);//сохранение переменной B
f.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
F: TIniFile;
begin
F:=TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'file.ini');
b:=F.ReadInteger('par1', 'par2', 0); //загрузка переменной B, 0 это значение по умолчанию
f.Free;
edit1.Text:=IntTOstr(b);
end;

Я не знаю какой тип переменных у вас неодходимо загрузить поэтому показываю на Integer
Ответ отправил: W@NDeReR (статус: 2-ой класс)
Ответ отправлен: 01.04.2007, 15:48

Отвечает: PGM
Здравствуйте, VaNuk!

Вероятно, сохранить значение перед закрытием программы, где-то снаружи - в реестре или в файле, а потом считать его и присвоить переменной.
Ответ отправил: PGM (статус: 3-ий класс)
Ответ отправлен: 01.04.2007, 20:31


Вопрос № 80.623
Здравствуйте, уважаемые эксперты!
Можно ли каким-то образом или с помощью специальной программы запихнуть библиотеку dll в экзешник, который обращается к этой библиотеке?
Отправлен: 01.04.2007, 22:38
Вопрос задал: Win2k (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PGM
Здравствуйте, Win2k!

Знаю только такой способ запихнуть - поместить в ресурсы программы и при старте динамически извлекать (FindResource/LoadResource/LockResourse/Write to file/UnlockResource/FreeResource) куда-нибудь во временное место, далее как обычно при динамической загрузке (LoadLibrary/GetProcAddress), а при выходе из программы стирать.
Ответ отправил: PGM (статус: 3-ий класс)
Ответ отправлен: 03.04.2007, 10:23
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ. Но не могли бы очень подробно описать, как это делать, а то я с этим никогда не сталкивался (хорошо бы с примером)? Прошу в мини-форум.


Вопрос № 80.624
Доброго времени суток! В Pascal 7.0 при вызове справки по использо
ванию какой либо процедуры (функции) всегда можно было вызвать
пример использования этой процедуры.В стандартном Delphi help
есть вроде все но нет этих примеров.Не подскажете ли может
есть где help с примерами и желательно на русском.
У меня Delphi 5 .
Я видел русифицированную Delphi 6 но help там ..на английском.
Отправлен: 01.04.2007, 22:46
Вопрос задал: Байрашевский Тахир (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Gh0stik
Здравствуйте, Байрашевский Тахир!

Есть такой продукт как Система справок по Delphi и Turbo Delphi.

Система справок выпускается с ноября 2004 г. вместо распространявшейся ранее "Серии Русских Справок по Delphi". Все справки, входившие в прежнюю серию, перекомпонованы, отредактированы и дополнены новыми материалами. В частности, в них введены отсутствовавшие ранее разделы "Решение типовых задач", в которых подобраны способы программирования различных часто встречающихся задач. В версии 1.4 добавлена также новая "Справка по .NET в Delphi". Так что версия 1.4 является переходной на пути создания новой стстемы справок, полноценно отображающей как разработку традиционных приложений Win32, так и разработку приложений для .NET. http://lab18.ipu.rssi.ru/help2/

Более детально Вы можете прочитать о этом по ссылке, а также сможете скачать урезанную версию.

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 02.04.2007, 12:10


Вопрос № 80.637
Здраствуйте. У меня два вопроса. 1)Как изменять размери компонента Image в соответствии с разрешением загружаемой картинки. 2) Как узнать, что загружаемая картинка монохромная(черно-белая) или цветная.
Отправлен: 02.04.2007, 02:50
Вопрос задал: Костенко Игорь Викторович (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Костенко Игорь Викторович!
1) Image1.AutoSize := True;
2) Image1.Picture.Bitmap.PixelFormat = pf1bit
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 02.04.2007, 04:13
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо. Я и не думал, чт это так просто.

Отвечает: W@NDeReR
Здравствуйте, Костенко Игорь Викторович!
насчет первого у Image есть свойство AutoSize установите в True
начсет второго не знаю
Ответ отправил: W@NDeReR (статус: 2-ой класс)
Ответ отправлен: 02.04.2007, 10:58
Оценка за ответ: 4
Комментарий оценки:
Спасибо и за это.

Отвечает: василий1
Здравствуйте, Костенко Игорь Викторович!

Как изменять размери компонента Image в соответствии с разрешением загружаемой картинки

Image1.AutoSize:=true;
Ответ отправил: василий1 (статус: 2-ой класс)
Ответ отправлен: 02.04.2007, 13:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Вы мне очень помогли


Вопрос № 80.640
Уважаемые эксперты! подскажите пожалуйста как реализовать такую штуковину:
Эта процедура при нажатии на строчку в ListBox'е загружает исходный код HTML в Memo:
procedure TForm3.ListBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
case Listbox1.ItemIndex of
0: memo1.lines.LoadFromFile('inf/1.html');
1: memo1.lines.LoadFromFile ('inf/22.html')
end;
А мне нужно, чтобы при нажатии загружался не сам код, а уже откомпилированный html, или как подобным образом загружать файл в WebBrowser?
Отправлен: 02.04.2007, 04:43
Вопрос задал: Artem (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Уваров Андрей Александрович
Здравствуйте, Artem!
WebBrowser сам парсирует код и рисует картинки. Вообще это лишь компонент дающий возможность обращаться к ядру IE.
В MEMO можно отображать только текст. Что и делает ваша программа. Писать свой браузер очень сложно.
Попробуй пользоваться TWebBrowser. Если не устраивает ты можеш попробовать движки Firefox, Netscape. За подробностями обратись на ихнее сайты.
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Уваров Андрей Александрович (статус: Студент)
Ответ отправлен: 02.04.2007, 13:36

Отвечает: PGM
Здравствуйте, Artem!

WebBrowser.Navigate('index.html') - загружает указанную в параметре страницу
Ответ отправил: PGM (статус: 3-ий класс)
Ответ отправлен: 03.04.2007, 10:26


Вопрос № 80.652
Здравствуйте!

Уважаемые эксперты помогите с одной проблемой.

Программа запрашивает информацию из двух баз через TQuery при запуске. При обращении к каждой базе запрашивает логин.
Вопрос как отключить ручную авторизацию?
В компонентах TDataBase база назначаются динамически.
(
LoginPromt=False;
Params = 'USER NAME=SYSDBA'#13#10'+
'PASSWORD=masterkey';
)

Заранее спасибо!
Отправлен: 02.04.2007, 09:23
Вопрос задал: _porodox_ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sosedov
Здравствуйте, _porodox_!

Существует специальный компонент TIDDatabase для работы с InterBase+FireBird (у меня Delphi 7), в свойствах которого прописываются имя пользователя и пароль. На вскидку - у Вас 2 ошибки:
1. вместо "USER NAME" должно быть "USER_NAME";
2. Params - это объект класса TStrings (для TDataBase и для TIDDataBase) и USER_NAME, PASSWORD хранятся в разных Strings. Как Вы смогли присвоить объекту TStrings строку без ругани компилятора?

Удачи!
Ответ отправил: Sosedov (статус: 1-ый класс)
Ответ отправлен: 02.04.2007, 09:50
Оценка за ответ: 4
Комментарий оценки:
1.user_name - это естественно.
2.Я присваиваю Params.text


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное