Приветствую вас уважаемые Эксперты у меня возник следующий вопрос: я использую компонент IdUDPServer (Indy Server) создаю обработчик события onUDPRead но при этом мне говорят что [Error] Unit1.pas(14): Undeclared identifier: 'TIdSocketHandle' подскажите что делать Заранее огромное спасибо PS Delphi7
Здравствуйте, funtik! Он описан в модуле IdTCPServer. Ответ отправлен: 30.03.2004, 16:11 Отправитель: Boriss Отвечает THE_PRO
Приветствую Вас, funtik! mojet chto to v uses ne xvatayet Ответ отправлен: 30.03.2004, 15:27 Отправитель: THE_PRO Отвечает sir henry
Здравствуйте, funtik! Проверьте, чтобы в строке USES стояло IdSocketHandle. В этом модуле как раз объявлен класс TIdSocketHandle. Ответ отправлен: 29.03.2004, 23:20 Отправитель: sir henry Отвечает Pawel
Доброе время суток, funtik! Пропиши USES IdSocketHandle,... Ответ отправлен: 30.03.2004, 19:15 Отправитель: Pawel Отвечает samum2000
Доброго времени суток, funtic! Добавь в Uses модуль idSocketHandle, в нем и описан этот класс. -------------------------- -=Experts helper: testmode=- Ответ отправлен: 01.04.2004, 10:08 Отправитель: samum2000
Вопрос № 1450
Приветствую всех! Вопрос у меня касательно иконки в трее. Использую для этого компоненту RxTrayIcon. В общем все работает, только в одном загвоздка, если сворачивать приложении кликом по ярлыку на панели задач, то иконка в трей не помещается и сам ярлык с панели задач не исчезает. Во всех остальных случаях работает как нужно. Код привожу в приложении. Подскажите че зделать плиз? Какое событие нужно отлавливать, если сворачиваешь приложение двойным щелчком в панели задач?
Здравствуйте, illy! 1) в приложении 2) почитайте http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1020241631
Приложение: Ответ отправлен: 30.03.2004, 10:16 Отправитель: Boriss Отвечает Pawel
Добрый день, illy! Нужно использовать процедуру SetForeGroundWindow(Application.MainForm.Handle); Ответ отправлен: 30.03.2004, 19:53 Отправитель: Pawel
Вопрос № 1451
Приветствую Вас! Посоветуйте: у меня есть таблица в БД (поля: int, blob, char, char). Каким способом можно записать картинку (маленькую) в blob-поле таблицы? Если можно приведите пример...
Здравствуйте, Ole! Komponent DBImage(public class TDBImage) Ответ отправлен: 30.03.2004, 15:26 Отправитель: THE_PRO Отвечает samum2000
Доброго времени суток, Ole! Пример во многом зависит от тог, какую БД вы используете и какой подтип у вашего Blob поля. В приложении приведен пример для двоичного blob поля с использованием потоков. -------------------------- -=Experts helper: testmode=-
Приложение: Ответ отправлен: 31.03.2004, 13:53 Отправитель: samum2000 Отвечает Boriss
Здравствуйте, Ole! У TDBImage есть свойство Picture для этих целей Ответ отправлен: 30.03.2004, 10:00 Отправитель: Boriss Отвечает sir henry
Приветствую Вас, Ole! Ее можно записать из файла или из потока: TBlobField.LoadFromFile(const Имя_файла: string); TBlobField.LoadFromStream(Поток: TStream); Через потоки удобно обмениваться картинками с другими компонентами.
Ответ отправлен: 30.03.2004, 16:52 Отправитель: sir henry Отвечает Pawel
Добрый день, Ole! Используйте тип DBImage
Ответ отправлен: 30.03.2004, 19:53 Отправитель: Pawel
Вопрос № 1452
Добрый день уважаемые эксперты Прежде всего хочу поблагодарить Вас за ваш нелегкий труд и за то что Вы есть, а то не было бы к кому и обратится. Суть моей проблемы заключается вот в чем. Есть база данных в формате dbf (файл 1.dbf), она имеет такую структуру: U Group Parent Code Name 1 1 000-000619 01. Сухі суміші 2 1 000-000619 000-000620 01.01. Церезіт 3 1 000-000620 000-000628 01.01.01. Клею сум 4 0 000-000628 000-000631 Суміш для плитки 4 0 000-000628 000-004877 Суміш для цегли 4 0 000-000628 000-000634 Суміш для вікон 4 0 000-000628 000-004604 Суміш для підлоги 3 1 000-000620 000-000644 01.01.02 Шпаклівка 4
0 000-000644 000-000647 Шпаклівка для вікон 4 0 000-000644 000-011340 Шпаклівка для дверей 4 0 000-000644 000-008836 Шпаклівка підлогова 3 1 000-000620 000-000639 01.01.03 Штукатурка 4 0 000-000639 000-000643 Штукатурка стінна 4 0 000-000639 000-000640 Штукатурка стельна Как, сделать так, чтобы на экране ее представить следующим образом: 01. Сухі суміші |Церезіт |Клею сум |Суміш для плитки |Суміш для цегли |Суміш для вікон |Суміш для підлоги
... 24. хххххххххх |_ххххххх |_ххххххх То есть, чтобы было деревовидная форма(TreeView), и была возможность просматривать
информацию под узлов и еще нужно организовать поиск по этой базе. Помогите, очень нужно !!! Заведомо признательный всем кто откликнется !!! C уажением Taras ttttt3000@hotbox.ru
Доброе время суток, Taras! Nu rabotay s TreeView Ответ отправлен: 30.03.2004, 15:25 Отправитель: THE_PRO Отвечает Boriss
Доброе время суток, Taras! Может следует использовать TreeView. То есть, возьмите стандартный пример, но заполняйте его сами, а для поиска лучше использовать SQL, только без отображения Ответ отправлен: 30.03.2004, 16:15 Отправитель: Boriss Отвечает sir henry
Добрый день, Taras! Для этого есть специальные компоненты, например: http://www.fortunecity.com/skyscraper/sql/149/arh/abdbtree.zip Попробуйте, авось понравится :)). Ответ отправлен: 30.03.2004, 16:32 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, Taras! Попробуйте использовать SQL(есть в стандартных примерах) Ответ отправлен: 30.03.2004, 19:57 Отправитель: Pawel
Приветствую Вас, МАКСИМ! Вы не написали, в какой среде. Отвечаю для Delphi В модуле SysUtils есть много чего для преобразований. Я не без пользы для себя распечатал исходник. Итак: 1) там описано исключение EConvertError - которое возникает при ошибках преобразования; 2) для нужного Вам преобразования есть StrToFloat и TextToFloat. Есть примеры в стандартной помощи Ответ отправлен: 30.03.2004, 16:02 Отправитель: Boriss Отвечает samum2000
Здравствуйте, МАКСИМ! Для этого есть функции StrToFloat(Str) и StrToFloatDef(Str,DefValue). Обе функции типа extended, последняя в случае ошибки (например, в строке встретится буква) вернет значение DefValue. -------------------------- -=Experts helper: testmode=- Ответ отправлен: 31.03.2004, 13:54 Отправитель: samum2000 Отвечает sir henry
Приветствую Вас, МАКСИМ! Для этого есть специальная функция: StrToFloat(Строка: string): Extended; Это если число в строке имеет десятичную запятую. Если же там десятичная точка, то надо использовать такую процедуру: Val(строка: string; var число; код_ошибки: integer); Причем тип получаемого числа будет определятся типом переменной "число". Ответ отправлен: 30.03.2004, 17:04 Отправитель: sir henry Отвечает THE_PRO
Доброе время суток, МАКСИМ! function StrToFloat(Str:String):Extended;overload; Ответ отправлен: 30.03.2004, 17:12 Отправитель: THE_PRO Отвечает vitya
Доброго времени суток, Паша! Звук можно проиграть в событии OnClick. В модуле mmsystem описана процедура PlaySound. Вот пример ее использования: sndPlaySound('c:mywavefile.wav', SND_ASYNC); -------------------------- -=Experts helper: testmode=- Ответ отправлен: 31.03.2004, 13:54 Отправитель: samum2000 Отвечает sir henry
Приветствую Вас, Паша! Если Вы объясните, что такое "звык" то, думаю, помочь Вам будет несложно :)). Ответ отправлен: 30.03.2004, 17:10 Отправитель: sir henry Отвечает Pawel
Здравствуйте, Паша! Смотря какой звук("звык")? Опишите подробней. Можно использовать компонент TMediaPlayer/ Можно использовать API функции. Ответ отправлен: 30.03.2004, 20:02 Отправитель: Pawel Отвечает Boriss
Приветствую Вас, Паша! 1) Самое простое procedure TfmMain.Button1Click(Sender: TObject); begin ShellExecute(0, nil, 'Whipcrak.wav', nil, nil, SW_HIDE) end; 2) Сложнее чуть-чуть: procedure TfmMain.Button1Click(Sender: TObject); begin With MediaPlayer1 do begin Filename := 'Whipcrak.wav'; DeviceType := dtAutoSelect ; Open; Play; end; Ответ отправлен: 30.03.2004, 20:13 Отправитель: Boriss Отвечает CJ
Приветствую Вас, Паша! PlaySound(... Ответ отправлен: 30.03.2004, 22:35 Отправитель: CJ Отвечает MadLan
Здравствуйте, Паша! Вызывай API функцию PlaySound() (она описана в mmSystem); -------------------------- -=Experts helper: testmode=- Ответ отправлен: 31.03.2004, 13:55 Отправитель: samum2000 Отвечает sir henry
Доброе время суток, Паша! У кнопки есть событие OnClick. Заносите в него следующую функцию: sndPlaySound('C:SOUND.WAV', SND_ASYNC); Чтобы остановить проигрывание нужно сделать так: sndPlaySound(nil, SND_ASYNC);
Ответ отправлен: 30.03.2004, 21:36 Отправитель: sir henry Отвечает CJ
Доброе время суток, Паша! Процедуру проигрывания звука надо поставить в начале кода кнопки! Ответ отправлен: 30.03.2004, 22:34 Отправитель: CJ Отвечает Pawel
Приветствую Вас, Паша! Это польное описание функции API PlaySound Функция PlaySound модуль MMSystem Описание: function PlaySound(pszSound: PChar; hmod: HMODULE; fdwSound: DWORD): BOOL; Функция проигрывает звуковой файл, ресурс, или системное событие. ( Системное событие может быть связано со звуком в реестре или в файле WIN.INI.) Параметры: pszSound: Строка определяющая путь к звуковому файлу для проигрывания. Если этот параметр равен nil(ноль), то любое проигрывание waveform-аудио будет прекращено. Для того чтобы приостанавливать не waveform-аудио, установите флаг SND_PURGE в параметре fdwSound. Флаги SND_ALIAS, SND_FILENAME, и SND_RESOURCE в fdwSound интерпретируются как псевдонимы для системного события, имени файла, или идентификатора ресурса. Функция ищет ассоциацию с системным событием или идентификатором ресурса в реестре или файле
WIN.INI. Если ассоциация обнаружена, то событие проигрывается, если нет, то имя интерпретируется как имя файла. hmod: Хендл выполняемого файла, который содержит ресурс со звуком для проигрывания. Этот параметр должен быть nil(ноль) если флаг SND_RESOURCE не установлен в fdwSound. fdwSound: Флаги определяющие проигрывание звука. SND_APPLICATION - Звк проигрывается использую ассоциацию с приложением. SND_ALIAS - Параметр pszSound является псевдонимом системного события в реестре или файле WIN.INI. Не используйте этот флаг с флагами SND_FILENAME или SND_RESOURCE. SND_ALIAS_ID - Параметр pszSound является идентификатором встроенного ресурса. SND_ASYNC - Звук проигрывается асинхронно и возварат из PlaySound происходит сразу после начала проигрывания. Для того чтобы завершить асинхронный waveform-аулдио звук необходимо вызвать PlaySound с pszSound равным nil(ноль).
SND_FILENAME - Параметр pszSound является именем файла. Файл должен быть формата Wave(*.wav). SND_LOOP - Будет проигрывать звук многократно(закольцованно), пока PlaySound не будет вызван с параметром pszSound установленным в nil(ноль). Также необходимо установить флаг SND_ASYNC для большей надежности. SND_MEMORY - Файл события загружен в память(RAM). Параметр pszSound должен содержать указатель на образ звука в памяти. SND_NODEFAULT - Используется событие не по умолчанию. Если звук не обнаружен PlaySound ничего не проигрывает. SND_NOSTOP - Событие будет проиграно сразу после проигрывания уже играющего события. SND_NOWAIT - Если драйвер занят, то функция возвращается не проигрывая звук. SND_PURGE - Звки буду остановлены для вызывающей задачи. Если pszSound не nil то все звки задачи будут остановлены. Вы должны установить хендл владельца чтобы остановить событие
SND_RESOURCE. SND_RESOURCE - Параметр pszSound является идентификатором ресурса; hmod должно идентифицировать владельца, который содержит ресурс. SND_SYNC - Синхронное воспроизведение звука. PlaySound возвращается после того как звук будет проигран. Возвращаемые значения True если успешно и false в противном случае. Замечания Звук указанный в pszSound должен быть установлен в доступную физическую память и формат должен поддерфивать драйвером waveform-аудио устройства. PlaySound смотрит в следующих папках: текущая, папка Windows, системная папка Windows, папки указанные в переменных среды, и список папок в сети. Для более подробной информации см. функцию OpenFile. Если функция не может найти звук, то использует встроенный звук взамен. Если не может обнаружить ничего взамен, то ничего не играет и возвращает false. Функция находится в файле winmm.dll Ответ отправлен: 31.03.2004, 10:04 Отправитель: Pawel Отвечает Boriss
Ответ отправлен: 31.03.2004, 14:01 Отправитель: Boriss
Вопрос № 1456
Здравствуйте! Спасибо Эксперту Boriss за ссылку. Код который требовался, там есть. Но у меня возник по ходу еще вопрос. При восстановлении окна по клику на иконке, закладка на панели задач не реагирует на действия мыши. А в ее меню по правому клику активен пункт "Восстановить", вместо "Свернуть", хотя окно уже восстановлено и функционально. И эта закладка никак не реагирует пока не щелкниш по "Восстановить". Подскажите, как работать с этим меню? И еще один вопрос чисто в познавательных целях, вы уж извините, просто я совсем не опытен в этом, думаю что пока. Чем отличаются коды ShowWindow(Handle,SW_HIDE); ShowWindow(Application.Handle,SW_HIDE); от Form1.Hide; или ShowWindow(Handle,SW_SHOW); ShowWindow(Application.Handle,SW_SHOW); от Form1.Show;. Только тем, что работа идет через API,
или есть еще что-то?
Добрый день, illy! Ничем, если из одной процедуры, так как берется Handle от Application в данном случае. А так все равно пойдет через Api А первый вопрос - надо проанализировать, как восстанавливаете. Может, лучше SW_RESTORE Ответ отправлен: 31.03.2004, 18:43 Отправитель: Boriss Отвечает CJ
Приветствую Вас, illy! там хендл просто как переменая, а там как определенный хендл приложения твоего! Ответ отправлен: 30.03.2004, 23:37 Отправитель: CJ Отвечает sir henry
Добрый день, illy! 2. В первой группе функций (SW_HIDE) первая функция работает с каким-то окном, хэндл которого указан в Handle. Вторая функция работает с главным окном приложения, на что указывает его хэндл (Application.Handle). Это функции WinAPI. Form.Hide(Show) от них отличается тем, что является оболочкой к данной функции WinAPI и указывает на конкретную форму (Form). Т.е. она является аналогом первой функции. Разницы между применением WinAPI и функции оболочки к ней нет никакой (по функциональности). Form.Show(Hide) короче и понятней :)). Про то, что она является примером ООП говорить не буду - это и так понятно из синтаксиса :). Ответ отправлен: 31.03.2004, 00:30 Отправитель: sir henry Отвечает Pawel
Здравствуйте, illy! Процедуры отлтчаются HANDLE Application.Handle - это хендл всего приложения. Form1. ... - это хендл окна form1 Если я правельно помню тот код, то вы скрываете окно , а не сварачиваете его.
Ответ отправлен: 31.03.2004, 10:15 Отправитель: Pawel
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.