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

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


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

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

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

Выпуск № 232
от 08.09.2005, 20:48

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


Вопрос № 25723: Здравствуйте, великие Гуру от программирования! В чём ошибка? не показывает разницу. Прога нужна именно в том виде, как есть, т.к. введённые данные будут использоваться в других подпрограммах. Спасибо....
Вопрос № 25726: Как принять файл используя INDY компонент IdTCPClient ? var ip:string;// Адрес сервера port:string;// Порт сервера fileName:String;//Имя передаваемого файла filesize:integer;// Размер передаваемого файла При подключе...
Вопрос № 25747: Здрасти Как можно узнать скорость подключения интернета? Заранье благодарю...
Вопрос № 25764: Здраствуйте, я пытаюсь написать медиаплеер, но у меня ничего неполучается, когда нажимаю run пишет "Exception EMCIDeviceerror in module Project1.exe at 000720F0 Cannot determine device type from the given filename extension" я пытаюсь проиг...
Вопрос № 25765: Помогите, пожалуйста! Если кто-нибудь работал с компонентом WebBrowser1 или аналогичным ему, то как можно сохранить просватриваему странчку в виде HTML айла на диске?...
Вопрос № 25772: Здраствуйте ув.эксперты. У меня очень маленький вопрос. Где найти примеры для книги Михаила Краснова ОпенГЛ. А то я не нашел их там где скачал книгу. Спасибо....

Вопрос № 25.723
Здравствуйте, великие Гуру от программирования!

В чём ошибка?
не показывает разницу.
Прога нужна именно в том виде, как есть, т.к. введённые данные будут использоваться в других подпрограммах.
Спасибо.

Приложение:

Отправлен: 02.09.2005, 23:27
Вопрос задал: Щербаков Сергей Николаевич (статус: 1-ый класс)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Tsechoev Bagaudin
Здравствуйте, Щербаков Сергей Николаевич!
А где сами секунды?
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 10-ый класс)
Отправлен: 02.09.2005, 23:37

Отвечает: Denisss
Здравствуйте, Щербаков Сергей Николаевич!
Дело в том, что функция SecondsBetween возвращает количество секунд, а не TTime, потому правильно следует делать так:
Label4.Caption:= IntToStr(SecondsBetween(StrToTime(beg),StrToTime(en)));
Ответ отправил: Denisss (статус: Студент)
Отправлен: 03.09.2005, 00:13

Отвечает: Силантьев Евгений Александрович
Здравствуйте, Щербаков Сергей Николаевич!
Ошибка в том, что функция SecondsBetween возвращает значение типа Integer (точнее Int64), а не TDateTime - поэтому следует писать не TimeToStr, а IntToStr.
Если процедура опять не будет работать, советую просто набрать её еще раз. Ваша у меня действительно не сработала, но потом я набрал тот же текст, и она заработала - МИСТИКА :))
Успехов!!!

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

Отвечает: Zubex
Здравствуйте, Щербаков Сергей Николаевич!

Внимательно читайте хелп - там написано:

function SecondsBetween(const ANow, AThen: TDateTime): Int64;

Т.е. функция возвращает целое число, а Вы преобразовываете TimeToStr, а дата и время имеет тип Double...

Напишите:

Label4.Caption:=IntToStr(SecondsBetween(StrToTime(beg),StrToTime(en)));

Удачи!
Ответ отправил: Zubex (статус: 2-ой класс)
Отправлен: 03.09.2005, 00:36

Отвечает: sir henry
Здравствуйте, Щербаков Сергей Николаевич!
Ваша ошибка в том, что Вы не читаете хелп, который прилагается к Дельфи.
Функция SecondsBetween() имеет на выходе тип Int64, а не TDateTime, следовательно, обратное преобразование должно иметь такой вид:
Label4.Caption:=IntToStr(SecondsBetween(StrToTime(beg),StrToTime(en)));
Пожалуйста, будте внимательны. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 03.09.2005, 08:15

Отвечает: Romodos
Здравствуйте, Щербаков Сергей Николаевич!
ваша ошибка в том, что SecondsBetween возвращает значение int64 (кол-во секунд между указанными временами), так что правильно так

Label4.Caption:=IntToStr(SecondsBetween(StrToTime(beg),StrToTime(en)));
//Вместо TimeToStr используем
А потом уже секунды переводить в минуты и часы!!!
---------
FAQ me off!
Ответ отправил: Romodos (статус: 5-ый класс)
Отправлен: 03.09.2005, 10:06

Отвечает: newinfo2005
Здравствуйте, Щербаков Сергей Николаевич!
если я вас правильно не понял,тотак

Приложение:

---------
Хочу стать умным и...много денег и халявного инета.

Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 03.09.2005, 10:49

Отвечает: Anefedov
Здравствуйте, Щербаков Сергей Николаевич!
SecondsBetween возвращает int64 а не time
Вот так сработает
Label4.Caption:=IntToStr(SecondsBetween(StrToTime(beg),StrToTime(en)));
Ответ отправил: Anefedov (статус: 3-ий класс)
Отправлен: 03.09.2005, 17:14


Вопрос № 25.726
Как принять файл используя INDY компонент IdTCPClient ?

var
ip:string;// Адрес сервера
port:string;// Порт сервера
fileName:String;//Имя передаваемого файла
filesize:integer;// Размер передаваемого файла

При подключении к серверу сразу начинается передача файла.
procedure TDCCSendForm.IdTCPClientConnected(Sender: TObject);
begin
DCCSend_IdTCPClient.WriteLn('');
FileExists(DCCSend_Save_FlatEdit.Text);
????????????????????????????????????
end;
Отправлен: 03.09.2005, 00:34
Вопрос задал: source (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Samum
Здравствуйте, source!
Нужно работать с потоками данных (TStream и его наследники).
В частности, для получения файла можно использовать TFileStream.

procedure TDCCSendForm.IdTCPClientConnected(Sender: TObject);
begin
DCCSend_IdTCPClient.WriteLn('');
FileExists(DCCSend_Save_FlatEdit.Text);
FileStream := TFileStream.Create(DCCSend_Save_FlatEdit.Text, fmCreate);
while IdTCPClient.connected do
IdTCPClient.ReadStream(FileStream, -1, true);
...
end;

В этом примере сигналом об окончании приема файла является отключение компонента от сервера. Подробнее можно узнать в справке по методу IdTCPClient.ReadStream
---------
Если бы программистам за их ошибки отрывали части тела, то в конце концов им пришлось бы использовать голову!
Ответ отправил: Samum (статус: Специалист)
Отправлен: 03.09.2005, 11:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое.
А как в этом примере получить размер уже закачанный? просто хочу еще сделать индикацию закгузки.

Отвечает: Werewolf
Здравствуйте, source!
Прогресс можно получить используя обработчик события
IdTCPClient.OnWork
Ответ отправил: Werewolf (статус: 7-ой класс)
Отправлен: 04.09.2005, 02:53


Вопрос № 25.747
Здрасти
Как можно узнать скорость подключения интернета?
Заранье благодарю
Отправлен: 03.09.2005, 11:55
Вопрос задал: Орхан Гасымов Аяз (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Силантьев Евгений Александрович
Здравствуйте, Орхан Гасымов Аяз!
Недавно задовался такой же вопрос! Номер вороса 25433!
http://rusfaq.ru/?Step=info&Action=Question&ID=25433

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


Вопрос № 25.764
Здраствуйте, я пытаюсь написать медиаплеер, но у меня ничего неполучается, когда нажимаю run пишет "Exception EMCIDeviceerror in module Project1.exe at 000720F0 Cannot determine device type from the given filename extension" я пытаюсь проиграть .mp3 фаил. помогите пожалуйста и если не трудно вышлите мне на мыло код работающего плеера.
Заранее спасибо.
Отправлен: 03.09.2005, 16:57
Вопрос задал: A.K. (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, A.K.!
Я пытаюсь написать программу-телевизор, но она у меня не работает, что мне делать? :)
На такие вопросы нельзя толком ответить. С помощью чего Вы пишете свой медиаплеер? Какие компоненты применяете?
Из сообщения об ошибке ясно, что система не может определить, с помощью какого устройства можно проиграть Ваш файл. Задайте это устройство вручную. А как это сделать (тем более привести код) - фиг его знает, т.к. Вы не затруднили себя написать, с помощью чего Вы пишете свой медиаплеер.
Попробуйте поставить кодек для мр3 и воспроизвести файл с помощью функции PlaySound().
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 03.09.2005, 17:21

Отвечает: newinfo2005
Здравствуйте, A.K.!
И что ты хочешь узнать?
Тебе уже отвечали и тебе толком не ответили.
Естесно тебе сказли что нужно определить с помощью кого устройства ты хочешь проигрывать.
Посмотри как работает компонент медиаплейр.
Удерживая Ctrl в секции uses щелкни по MPlayer и увидишь как это делает медиаплейр!!!
---------
Хочу стать умным и...много денег и халявного инета.
Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 03.09.2005, 18:03

Отвечает: mvp
Здравствуйте, A.K.!
//--------
mediaplayer1.devicetype := dtAutoSelect;
mediaplayer1.filename := 'test.mp3'; //полный путь
mediaplayer1.play;
//---------------------------------------------------------
Можно ещё autoopen поставить true, если компонент создаётся во время выполнения.
Лично я бросил компонент на форму, выставил свойства devicetype, filename и avtoopent = true. Запустил и всё заиграло :)
---------
Моя совесть чиста - не бывшая в употреблении
Ответ отправил: mvp (статус: 4-ый класс)
Отправлен: 03.09.2005, 18:57
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, A.K.!
Данное сообщение об ошибке означает одно из двух: либо у Вас в системе проблемы со звуковыми устройствами (не установлены или неисправны), либо не установлены соответствующие драйвера/кодеки. Однако речь идёт о Delphi, поэтому говорить следует не об этом. Обычно с помощью TMediaPlayer файлы проигрываются следующим образом:

MediaPlayer1.FileName:='C:Music est.mp3';
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.Open;
MediaPlayer1.Play;


Попробуйте понять, в какой именно строке у Вас происходит ошибка.
Кроме того, к данному ответу я прикрепляю пример простенького mp3-проигрывателя. Быть может, поможет...

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Мышка побежала, xвостиком махнула - cервер упал...

Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 03.09.2005, 19:45
Оценка за ответ: 5

Отвечает: Romodos
Здравствуйте, A.K.!
Я знаю в чём баг, вы поставили свойство MediaPlayer.AutoOpen=True.
Поэтому, у вас выплывает ошибка
сделайте его False;
привожу код модуля
opd -это opendialog со вкладки dialogs
MFile - это Edit
ButOpen - это Button со вкладки Standart
MPlayer - это MediaPlayer со вкладки System
Удачи!!
Если что - пишите на romodos@yandex.ru или в русфак

Приложение:

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

Ответ отправил: Romodos (статус: 5-ый класс)
Отправлен: 03.09.2005, 19:53

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

Приложение:

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

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


Вопрос № 25.765
Помогите, пожалуйста!
Если кто-нибудь работал с компонентом WebBrowser1 или аналогичным ему, то как можно сохранить просватриваему странчку в виде HTML айла на диске?
Отправлен: 03.09.2005, 17:19
Вопрос задал: Alkhamov Radik (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: newinfo2005
Здравствуйте, Alkhamov Radik!
Это можно узнать в delphiworld.narod.ru
в разделе дельфи,интернет или что-то в этом роде и там поищи.
Там есть эта статья.
И её себе закачивал.
Удачи!!!
---------
Хочу стать умным и...много денег и халявного инета.
Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 03.09.2005, 18:08

Отвечает: Denisss
Здравствуйте, Alkhamov Radik!
Пример в приложении показывает как вызвать диалог сохранения страницы в браузере.

Приложение:

Ответ отправил: Denisss (статус: Студент)
Отправлен: 03.09.2005, 18:19

Отвечает: sir henry
Здравствуйте, Alkhamov Radik!
Если нужно сохранить страничку полностью (рисунки, css и т.п.) то так:
WebBrowser1.ExecWB(4, 0);
Только не спрашивайте, что это означает, т.к. на самом деле TWebBrowser - это внешний (по отношению к Дельфи) элемент ActiveX и конкретное описание команд (тех, что передаются ему с помощью метода ExecWB()), нужно читать в MSDN. :)
Можно сделать это перелопатив в поток:
Procedure TForm1.SaveHTMLToFile(FileName: string);
var
PersistStream: IPersistStreamInit;
FileStream: TFileStream;
Stream: IStream;
SaveResult: HRESULT;
begin
PersistStream := WebBrowser1.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
SaveResult := PersistStream.Save(Stream, True);
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 03.09.2005, 19:41

Отвечает: Romodos
Здравствуйте, Alkhamov Radik!
Можно так

WebBrowser1.ExecWB(OLECMDID_SAVEAS,
OLECMDEXECOPT_DODEFAULT);

Выплывает окошко Сохранить как...
---------
FAQ me off!
Ответ отправил: Romodos (статус: 5-ый класс)
Отправлен: 03.09.2005, 19:53

Отвечает: Rusland
Здравствуйте, Alkhamov Radik!
Сохранение открытого в вебброузере html-файла на диск:
var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
HTMLDocument := WebBrowser.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
PersistFile.Save(StringToOleStr('FileName.html'), System.False);
end;
---------
Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: Студент)
Отправлен: 05.09.2005, 09:43


Вопрос № 25.772
Здраствуйте ув.эксперты.
У меня очень маленький вопрос.
Где найти примеры для книги Михаила Краснова ОпенГЛ.
А то я не нашел их там где скачал книгу.
Спасибо.
Отправлен: 03.09.2005, 20:07
Вопрос задал: newinfo2005 (статус: 5-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Denisss
Здравствуйте, newinfo2005!
Берите тут:
http://alex-co.com.ru/delphi/Files/Samples/diskopgl.zip [598 КБ]
Ответ отправил: Denisss (статус: Студент)
Отправлен: 03.09.2005, 20:13

Отвечает: Romodos
Здравствуйте, newinfo2005!
Напишите на romodos@yandex.ru,
я вам вышлю по почте SFX архив RAR 700Кб
---------
FAQ me off!
Ответ отправил: Romodos (статус: 5-ый класс)
Отправлен: 03.09.2005, 20:45

Отвечает: Силантьев Евгений Александрович
Здравствуйте, newinfo2005!
Попробуйте на сайте издательсва!
---------
The world is mine! :)
Ответ отправил: Силантьев Евгений Александрович (статус: 5-ый класс)
Отправлен: 04.09.2005, 00:12

Отвечает: sir henry
Здравствуйте, newinfo2005!
Скачать можно с сайта издательства BHV:
http://www.bhv.ru/books/get_disk_data.php?id=332
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 04.09.2005, 04:34


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

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

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

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

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


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


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

Яндекс


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

В избранное