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

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


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

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

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

Выпуск № 278
от 28.10.2005, 17:39

Администратор:Калашников О.А.
В рассылке:Подписчиков: 258, Экспертов: 44
В номере:Вопросов: 8, Ответов: 31


Вопрос № 28117: Есть API функци URLDownloadToFile(Caller: IInerface; URL: PAnsiChar; FileName: PAnsiChar; Reserved: Cardinal; StatusCS: IBindStatusCallback): HRESULT Работает превосходно, но пока она не скачает файл, дальше программа не идёт! Как сделать та...
Вопрос № 28119: Добрий день. Підкажіть будь ласка як реалізувати таку можливість: Коли мишка над обєктом TBitBtn, то TStatusBar показує Hint обєкта TBitBtn (власне, це просто), а коли мишка не над TBitBtn, то TStatusBar нічого не показує. Дякую. ...
Вопрос № 28125: Доброе время суток... Уважаемые эксперты помогите с такой проблемой: В силу ряда причин при загрузке приложения настраюваю ряд переменных среды, такие как DecimalSeparator, ShoerDateFormat и т.д. Но если во время работы программы например изменяют ре...
Вопрос № 28132: Здраствуйте уважаемые эксперты, у меня такой вопрос, как зделать чтобы програма при запуске записалась в автозапуск при включении компютера, но не только для данного пользователя, а для всех пользователей? (на компютере 6 пользователей) Заранее с...
Вопрос № 28143: Приветствую всех. Такая маза, вот спотыкнулся и все. Дело вот в чем, имеется БД(с известным количеством записей) в гриде. Мне необходимо перемещаться по ней произвольным порядком но так что-бы не повторялся выбор. Если что, более подробнее напишу. Вн...
Вопрос № 28144: Здраствуйте, уважаемые эксперты! Есть 2 юнита (Unit1 и Unit2). Как сделать, чтобы из второго юнита можно было бы обращаться к переменным первого, а из первого вызывать процедуры второго?...
Вопрос № 28145: Здравствуйте, странная ситуация при миграции в Delphi 2005, сам процесс прошёл нормально, но вот засада, справка отказалась работать, выкидывает сообщение: No context-sensitive help installed. Возвращаемся в D7 всё работает в D2005 опять проблема. И ...
Вопрос № 28171: Я уже задавал вопрос (№28117) и получил ответы на интересующие вопросы. Спасибо всем, кто ответил мне. С потоками я разобрался. Но не могу сделать одну штуку: Всё та же функция: URLDownloadToFile(Caller: IInterface; URL: PAnsiChar; FileName: PAns...

Вопрос № 28.117
Есть API функци URLDownloadToFile(Caller: IInerface; URL: PAnsiChar; FileName: PAnsiChar; Reserved: Cardinal; StatusCS: IBindStatusCallback): HRESULT

Работает превосходно, но пока она не скачает файл, дальше программа не идёт! Как сделать так, чтобы можно было обновлять окно, которое вообще не реагирует, когда происходит скачивание файла (возможно при помощи таймера), а второй вопрос, как можно получить состояние этой функции, то есть сколько уже байт было скачено и сколько байт вообще вешает файлик, который перекачивается.

Огромное спасибо!!!

Приложение:

Отправлен: 22.10.2005, 18:18
Вопрос задал: Подболотов Иван Алексеевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tsechoev Bagaudin
Здравствуйте, Подболотов Иван Алексеевич!
Вызывай эту функцию в отдельном потоке (TThread).
Таймер тоже организовывает свой поток, но это не совсем то. Класс TThread дает большуй гибкость при синхронизации, назначении приоритета и т.п.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 22.10.2005, 19:40
Оценка за ответ: 5
Комментарий оценки:
Отлично, спасибо!!!:)

Отвечает: Delphin
Здравствуйте, Подболотов Иван Алексеевич!
StatusCS: IBindStatusCallback - Возвращает статус :-) Его и надо обрабатывать.
Подвисает потому что надо запускать в отдельном потоке.
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 22.10.2005, 21:01
Оценка за ответ: 5
Комментарий оценки:
Хорошо! Будем рыть в эту сторону! Спасибо!

Отвечает: sir henry
Здравствуйте, Подболотов Иван Алексеевич!
1. Выведите эту процедуру в отдельный поток, тогда окно будет реагировать, т.к. будут работать в разных потоках.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:29


Вопрос № 28.119
Добрий день.
Підкажіть будь ласка як реалізувати таку можливість:
Коли мишка над обєктом TBitBtn, то TStatusBar показує Hint обєкта
TBitBtn (власне, це просто), а коли мишка не над TBitBtn, то TStatusBar нічого не показує.
Дякую.
Отправлен: 22.10.2005, 19:25
Вопрос задал: Vitava (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Татьяна
Здравствуйте, Vitava!
для цього потрібно просто в StatusBar вибрати AutoHint := true
Далі задати hint на TBitbtn і встановити в ньому ShowHints := true.
Нехай щастить!
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 22.10.2005, 19:39
Оценка за ответ: 5
Комментарий оценки:
Супер!

Отвечает: Delphin
Здравствуйте, Vitava!
Рассылка для русских :-)
Но так как мы из страны бывшего CCCP и пробабушки были украинками то отвечаю:

У всех объектов ( почти ) есть свойство OnMouseEnter это когда мышка подходит и когда выходит OnMouseExit. Им и пользуйтесь.
Еще можно поставить свойство статус бара AutoHint := True и каждому объекту назначить подсказку (Hint) и свойство ShowHint := True.
Thats all :D

---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 22.10.2005, 21:17

Отвечает: sir henry
Здравствуйте, Vitava!
У BitBtn есть событие - OnMouseMove, это когда мышка елозиет над ним. Поместите туда такой код:
StatusBar1.SimpleText:=Bitbtn1.Hint;
Тогда, как только мышка окажется над кнопкой, в статусбаре появится хинт.
Чтобы хинт исчезал, когда мышка уйдет с кнопки, надо в событие OnExit кнопки поместить такой код:
StatusBar1.SimpleText:=''; {т.е. присвоить пустую строку}
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:38

Отвечает: Romodos
Здравствуйте, Vitava!
Надо написать следующий текст в событиях OnMouseMove
формы и кнопки
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if statusbar1.SimpleText<>bitbtn1.Hint then
statusbar1.SimpleText:=bitbtn1.Hint;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if statusbar1.SimpleText<>'' then
statusbar1.SimpleText:='';
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 23.10.2005, 08:50

Отвечает: Маренич Владимир
Здравствуйте, Vitava!
В стандартном TBitBtn нет обработчиков
OnMouseEnter и OnMouseLeave
1-й способ (наиболее простой, если умеете писать свои компоненты): создать потомка от TBitBtn и реализовать вызов соотв. событий в процедурах
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
потом в обработчиках соответственно устанавливать и убирать текст в StatusBar
2-й способ: обрабатывать событие OnMouseMove в стандартном TBitBtn (устанавливать текст, когда мышка движется над кнопкой) и OnMouseMove в родительском компоненте (если кнопка лежит прямо на форме, то соотв. OnMouseMove Form1, а если на панели, то соотв. OnMouseMove Panel1), в котором убирать текст в StatusBar'е. Огромный минус такого способа в том, что установка и очистка текста будет выполняться слишком часто (при каждом изменении положения мышки). Для этого я бы рекомендовал добавить еще переменную переключатель, которая бы хранила состояние StatusBar (выведен текст или нет). Если нужно что-то уточнить, то пишите на мыло. Удачи.
Ответ отправил: Маренич Владимир (статус: 3-ий класс)
Отправлен: 23.10.2005, 12:23

Отвечает: Schmak
Здравствуйте, Vitava!
1)Установите свойство AutoHint := True у Stasubarа
2)Установите свойство ShowHint := True у Bitbtn1
Ответ отправил: Schmak (статус: 3-ий класс)
Отправлен: 23.10.2005, 16:16

Отвечает: Bob Johnson
Здравствуйте, Vitava!
Вопросы надо задавать на русском языке.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 23.10.2005, 18:41


Вопрос № 28.125
Доброе время суток... Уважаемые эксперты помогите с такой проблемой: В силу ряда причин при загрузке приложения настраюваю ряд переменных среды, такие как DecimalSeparator, ShoerDateFormat и т.д. Но если во время работы программы например изменяют региональные настройки среды Windows, то выдается сообщение о невозможности обработать асинхронный вызов и все мои настройки слетают. Приходиться заново загружать приложение.
Заранее спасибо за отклик
Отправлен: 22.10.2005, 20:49
Вопрос задал: Vvp1970 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Татьяна
Здравствуйте, Vvp1970!
Тут конечно важно, насколько часто вы используете эти переменные, возможно их можно локализовать? например менять DecimalSeparator непосредственно перед преобразованием чисел и сразу же после этого восстанавливать исходный, я думаю это логично, не будет конфликтовать с остальными приложениями и избавит от множества проблем.
Желаю удачи!

---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 22.10.2005, 21:00

Отвечает: sir henry
Здравствуйте, Vvp1970!
Встречный вопрос - а как Вы их меняете? В Дельфи, для всего этого добра введены специальные переменные.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:43

Отвечает: Rusland
Здравствуйте, Vvp1970!
Лучший способ - использовать их непосредственно перед вызовом функций, там где нужны правильные настройки. Удачи.

Приложение:

---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)

Ответ отправил: Rusland (статус: Практикант)
Отправлен: 24.10.2005, 11:39


Вопрос № 28.132
Здраствуйте уважаемые эксперты, у меня такой вопрос, как зделать чтобы програма при запуске записалась в автозапуск при включении компютера, но не только для данного пользователя, а для всех пользователей? (на компютере 6 пользователей)
Заранее спасибо.
Отправлен: 22.10.2005, 21:32
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, Станислав!
1)HKLSSoftwareMicrosoftWindowsRun - пишешь название программы.
2)Пишешь в папку Startup ярлык к программе. Как? Ищи тут среди вопросов. Я отвечал на такие уже.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 22.10.2005, 21:37
Оценка за ответ: 4

Отвечает: Ерёмин Андрей
Здравствуйте, Станислав!
Делается это через реестр. Приведу конкретный код:

procedure TForm1.Button1Click(Sender: TObject);
Var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun',True);
Reg.WriteString('MyProgramName',Application.ExeName);
Reg.Free;
end;


Не забудьте добавить Registry в Uses модуля, где данный код используется.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 23.10.2005, 08:24
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Станислав!
Надо скопировать ярлык программы в папку:
"c:documents and settingsall usersГлавное менюПрограммыАвтозагрузка"
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:47
Оценка за ответ: 5

Отвечает: Romodos
Здравствуйте, Станислав!
Вот пример, но для этого нужны права админа
uses registry;
...
var reg:Tregistry;
begin
reg:=tresgistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('SoftwareMicrosoftWindowsCurrentVersionRun',true);
reg.writestring('myapp',application.exename);
reg.closekey;
reg.free;

end;

---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 23.10.2005, 08:51
Оценка за ответ: 5

Отвечает: Delphin
Здравствуйте, Станислав!
Запиши в реестре в root'овой ветке HKEY_LOCAL_MACHINE.
Ну а дальше MicrosoftWindowsCurrent VersionRun.
Или запиши в папку автозапуск в папке All Users
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 23.10.2005, 09:18
Оценка за ответ: 4

Отвечает: Schmak
Здравствуйте, Станислав!
Самое простое: это создать ярлык на программу в директории
C:Documents and SettingsAll UsersГлавное менюПрограммыАвтозагрузка
Ответ отправил: Schmak (статус: 3-ий класс)
Отправлен: 23.10.2005, 16:16


Вопрос № 28.143
Приветствую всех. Такая маза, вот спотыкнулся и все. Дело вот в чем, имеется БД(с известным количеством записей) в гриде. Мне необходимо перемещаться по ней произвольным порядком но так что-бы не повторялся выбор. Если что, более подробнее напишу. Внизу код. Что-то код не прется. Подскажите как править или свой вариант. В общих чертах: сначала рандом в пределах 5(тестовое кол-во записей), считываются значения из темпового фала, если не ноль или ранее используемое, то продолжаем, выбираем запись и сохр. её значение в темп. И так по кругу. Клинит меня,....на фоне любви..:))) Давайте любые советы...двойки не ставлю.

Приложение:

Отправлен: 22.10.2005, 23:41
Вопрос задал: CJ (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, CJ!
Вы лучше вторую таблицу для временных значений заведите, так быстрее будет искаться тем же Locate'ом. Только не забывайте перед первым применением очищать ее.
Если таблица DBF, то можно сохранять номера записей. Тогда для хранения номеров можно просто завести переменную типа string и записывать в нее номера записей через запятую. Поиск на совпадение проводить функцией Pos(). Не знаю, прокатит ли такая штука с Парадоксом - попробуйте, может тоже будет работать.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:55

Отвечает: Маренич Владимир
Здравствуйте, CJ!
Я так понимаю, что нужно обойти все записи таблицы в случайном порядке и размер таблицы ограничен разумными пределами. В таком случае можно создать массив индексов, по которому будем выбирать записи:
var
Ind: array of integer;
i,j,k: integer;
begin
SetLength(Ind, RecCount);
try
//Индекс по порядку
//RecCount - кол-во записей
for i:=0 to RecCount-1 do Ind[i]:=i;
//Теперь рандомно перемешаем его
Randomize;
for i:=0 to RecCount-1 do
begin
j:=Random(RecCount); //куда переносим (меняем местами)
k:=Ind[i];
Ind[i]:=Ind[j];
Ind[j]:=k;
end;
//Теперь можно обходить по нашему индексу с гарантией случайности
//и того, что ни одна запись не будет пропущена
for i:=0 to RecCount-1 do
begin
Table1.First;
Table1.MoveBy(Ind[i]);
//Делаем с записью всё что угодно:)
end;
finally
Ind:=nil;
end;
end;
Ответ отправил: Маренич Владимир (статус: 3-ий класс)
Отправлен: 23.10.2005, 12:42
Оценка за ответ: 5
Комментарий оценки:
Есть еще вопросы, по вн. почте напишу.


Вопрос № 28.144
Здраствуйте, уважаемые эксперты! Есть 2 юнита (Unit1 и Unit2). Как сделать, чтобы из второго юнита можно было бы обращаться к переменным первого, а из первого вызывать процедуры второго?
Отправлен: 23.10.2005, 00:02
Вопрос задал: Кириллов Антон Андреевич (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ujin Antikvar
Здравствуйте, Кириллов Антон Андреевич!

В разделе модулей каждого из юнитов подключаем нужный т.е.

в первом Unit'e в разделе uses пишем Unit2
во втором точно так же в разделе uses пишем Unit1

Все теперь можешь обращатся к переменным и процедурам любого юнита
---------
Не зацикливайся на достигнутом, а двигайся в перед
Ответ отправил: Ujin Antikvar (статус: 2-ой класс)
Отправлен: 23.10.2005, 00:39
Оценка за ответ: 4

Отвечает: Tsechoev Bagaudin
Здравствуйте, Кириллов Антон Андреевич!
Подключаешь с помощью директивы uses Unit1 (свои юниты принято подключать отдельно от тех которые подключила автоматически делфи, т.е. после директивы implements). После этого ты видишь все глобальные переменные, процедуры а также публичные члены классов Unit1. Для избежания возможного перекрытия одноименных объектов лучше обрашаться к методу или перемнной из другого юнита Unit1.Variable1, т.е. имя юнита точка имя переменной или процедуры.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 23.10.2005, 01:51
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Кириллов Антон Андреевич!
Во втором юните просто напишите код, обращающийся к первому юниту, например: Form1.Show; Далее, в первом юните напишите где-нибудь аналогично: Form2.Show; Попробуйте скомпилировать программу. Компилятор укажет, что Вы обращаетесь к другим модулям и их нужно добавить в Uses. Подтвердите добавление кнопкой "Да" ("Yes") и после этого сможете обращаться к переменным и процедурам из одного модуля в другой. А вообще, нужно после implementation дописать: uses Unit2; и uses Unit1; соответственно. Это ручной способ. А если Вы делали по моему совету, чтобы компилятор сам всё добавил, не забудьте удалить написанные строки.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 23.10.2005, 08:25
Оценка за ответ: 5

Отвечает: Romodos
Здравствуйте, Кириллов Антон Андреевич!
Надо в разделе uses каждого модуля написать
uses unit2;
или uses unit1;
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 23.10.2005, 08:51
Оценка за ответ: 4

Отвечает: sir henry
Здравствуйте, Кириллов Антон Андреевич!
Сделайте в строке USES юнитов ссылки на эти юниты:
Unit Unit1;
Uses unit2;
----------------------
Unit Unit2;
Uses unit1;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.10.2005, 08:58
Оценка за ответ: 4

Отвечает: Delphin
Здравствуйте, Кириллов Антон Андреевич!
1) Объявлять их глобально.
2) Нажать Alt+F11 чтобы добавить юнит.
3) Использовать или по имени или сразу по unit1.VARIABLE

---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 23.10.2005, 09:20
Оценка за ответ: 5

Отвечает: Маренич Владимир
Здравствуйте, Кириллов Антон Андреевич!
в Unit2 в секции INTERFACE добавить в USES Unit1
в Unit1 в секции IMPLEMENTATION добавить в USES Unit2
Ответ отправил: Маренич Владимир (статус: 3-ий класс)
Отправлен: 23.10.2005, 12:44
Оценка за ответ: 5

Отвечает: Schmak
Здравствуйте, Кириллов Антон Андреевич!
В разделе implementation юнитов пропишите:
В unit2:
uses unit1;
В unit1:
uses unit2;
Кроме того необходимые процедуры и переменные в обоих юнитах должны быть объявлены как глобальные.
Ответ отправил: Schmak (статус: 3-ий класс)
Отправлен: 23.10.2005, 16:16


Вопрос № 28.145
Здравствуйте, странная ситуация при миграции в Delphi 2005, сам процесс прошёл нормально, но вот засада, справка отказалась работать, выкидывает сообщение: No context-sensitive help installed. Возвращаемся в D7 всё работает в D2005 опять проблема. И механизм вроде стандартный Application.HelpFile:=имя файла, а потом в нужном месте вызываем Application.HelpCONTExt(10);
Спасибо большое откликнувшимся.
Отправлен: 23.10.2005, 00:03
Вопрос задал: SuperMaxx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delphin
Здравствуйте, SuperMaxx!
Просто теперь используют новый формат справки.
А у тебя она не контекстная.
Пользуйся другим билдером справки или сделай её Context'овой
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 23.10.2005, 09:21
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но вопросов стало ещё больше :-)
hlp-файл я создавал в HelpScribble а компилятор HCRTF.EXE август 2002 более свежего я вообще не видел. А какой билдер создаёт в новом формате? И не мог бы пояснить какое отличие Context-справки от не Context-справки. Раньше без проблем открывался 10 топик (да и любой другой), а теперь нет. Да и вообще в чём лучше писать справку?


Вопрос № 28.171
Я уже задавал вопрос (№28117) и получил ответы на интересующие вопросы. Спасибо всем, кто ответил мне.
С потоками я разобрался. Но не могу сделать одну штуку: Всё та же функция: URLDownloadToFile(Caller: IInterface; URL: PAnsiChar; FileName: PAnsiChar; Reserved: Cardinal; StatusCB: IBindStatusCallback): HRESULT.

Как ответил Delphin (спасибо за то что указал куда копать), необходимо обрабатывать StatusCB.
Правильно ли я понял, после начала скачивания файла с URL, происходит постоянное обновление StatusCB. То есть можно из любого другого места проверить состояние скачиваемого файла.
Вопрос: я пробовал делать вот так как показано в приложении, но ничего не вышло, вылетает с жёсткой ошибкой, где здесь именно находиться данные по файлу (сколько он вешает) и сколько уже было перекачено.

func StatusCB.OnProgress: function(ulProgress: Cardinal; ulProgressMax: Cardinal; ulStatusCode: Cardinal; szStatusText: PWideChar): HRESULT;

func StatusCB.GetBindInfo: function (out grtBINDF: Cardinal; var BindINFO: _tagBINDINFO): HRESULT;

Что делают эти две функции и если кто сможет скиньте, пожалуйста, описание или где его взять!

Приложение:

Отправлен: 23.10.2005, 13:24
Вопрос задал: Подболотов Иван Алексеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delphin
Здравствуйте, Подболотов Иван Алексеевич!
Ээээ.. Ты меня видно не так понял.
Зачем ты вообще таймер прикрутил?
Процедура будет вызвана при возникновении чего-то!
Ненадо самому по таймеру что-то делать.
Передаеш в функции URLDownloadToFile указатель на процедуру. (Точно незнаю что передавать наверно не указатель а функцию)
Приведу статью из MSDN 2005 (VS 2005 Beta )
1) ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WINCE.v50.en/wceinternet5/html/wce50lrfIBindStatusCallback.htm - Описание CallBack'a
2) ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WINMOBILE.v10.en/apippc/html/ppc_urlmon3_cnxd.htm - Описание ф-ции UrlDownloadToFileW ( w - работает в win 98 )

Если все-равно что-то не понял то в асю обращайся.

Приложение:

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

Ответ отправил: Delphin (статус: Студент)
Отправлен: 23.10.2005, 14:55


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

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

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

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

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


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


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

Rambler's Top100 Яндекс


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

В избранное