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

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


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

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

Выпуск № 602
от 25.09.2006, 10:05

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


Вопрос № 55947: Доброго времени суток. Подскажите пожалуста как заставить TScrollBar прокручиваться по движению ролика мыши...
Вопрос № 55989: Здравствуйте товарищи эксперты!! Подскажите пожалуйста каким образом можно найти конкретное слово в нетипизированом файле?! Зарание спасибо!!!...
Вопрос № 56023: Уважаемые Эксперты. В Delphi 5 столкнулся с интересным явлением: Есть Unit, в разделе implementation которого описываю глобальную переменную: Enumerator: IEnumIDList; Программа работает нормально, но при закрытии выдает сооб...
Вопрос № 56031: Здравствуйте. На новом компе установил Win98, поставил Delphi, библиотеку DelphiX. Но один компонент не работает. Это DirectXDraw. Пишет что якобы не подключена какая-то библиотека dll. Но необходимые dll вроде есть. Или надо установить DirectX? На д...
Вопрос № 56034: Приветствую вас, уважаемые эксперты. Меня мучает такой вопрос - дальнейшая судьба Delphi, кто займется ее поддержкой и развитием, вам ничего по этому поводу не известно?...

Вопрос № 55.947
Доброго времени суток. Подскажите пожалуста как заставить TScrollBar прокручиваться по движению ролика мыши
Отправлен: 19.09.2006, 12:56
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mexes
Здравствуйте, VNos!
Можно обработать OnMouseWheel.
Если бросить на форму Form1 скроллер Scroll1:TScrollBar, то в обработчике OnMouseWheel следующий код будет скроллировать компонент Scroll1. Аналогичный принцип присобите для своего приложения:

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
ScrollBar1.Position:=ScrollBar1.Position-WheelDelta div WHEEL_DELTA;
Handled:=true;
end;

WHEEL_DELTA - это константа Microsoft (=120), это порог одного шага поворота колесика (он ведь вращается неплавно) - сделано для увеличения точности отслеживания поворота в будущем, а пока можно забить и просто делить на 120.
WheelDelta положительна, если пользователь крутит вверх. И еще. Событие OnMouseWheel не посылается элементу без фокуса (по крайней мере, так раньше в документации писали).
Ответ отправил: Mexes (статус: 3-ий класс)
Ответ отправлен: 19.09.2006, 15:11
Оценка за ответ: 5

Отвечает: 3лоумышленник
Здравствуйте, VNos!
В приложении предлагаю отлавливать событие колеса мыши и подменять его на событие нажатия "стрелок" вверх-вниз.

Приложение:

Ответ отправил: 3лоумышленник (статус: 10-ый класс)
Ответ отправлен: 19.09.2006, 18:20
Оценка за ответ: 5


Вопрос № 55.989
Здравствуйте товарищи эксперты!!
Подскажите пожалуйста каким образом можно найти конкретное слово в нетипизированом файле?!
Зарание спасибо!!!
Отправлен: 19.09.2006, 17:49
Вопрос задал: F Ruslan R (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, F Ruslan R!
В принципе, вы можете пробовать загрузить файл в string или TStringList и искать в них - сама строка-то у вас все равно нормальная. Правда, могут быть сложности с определением позиции этой строки относительно начала файла. но если вас интересует только проверить наличие, то этот метод подходит.
Либо рассматривать строку как произвольную последовательность байт и искать так. Любой нетипизированный файл открывается как двоичный ^^. Но, скорей всего, надо писать поиск самому.
Я в справке в разделе "memory management routines" ничего похожего на поиск последовательности байт в памяти, не нашел.
Еще можно загрузить в память файл, заменить все непечатные символы на, например, пробел (#32), потом полученные данные грузить в строку и в ней искать Pos-ом.
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 19.09.2006, 18:01
Оценка за ответ: 5

Отвечает: Arvist
Здравствуйте, F Ruslan R!
Типизированный или нет файл, какая разница. Самое простое - создаете объект класса TStringList загружете туда файл методом LoadFromFile и в свойства Text ищите искомое слово(подстроку) c помощью функции pos/

Приложение:

---------
В будущем определено одно - неопределенность будущего!

Ответ отправил: Arvist (статус: 2-ой класс)
Ответ отправлен: 19.09.2006, 18:06
Оценка за ответ: 5


Вопрос № 56.023
Уважаемые Эксперты.
В Delphi 5 столкнулся с интересным явлением:
Есть Unit, в разделе implementation которого описываю глобальную переменную:

Enumerator: IEnumIDList;

Программа работает нормально, но при закрытии выдает сообщение об ошибке:
"Access violation и т.д."

Поискав ошибку, пришел к выводу, что нужно переделать следующим образом:

Enumerator: pointer;

и везде, где этот Enumerator встречается - сделать IEnumIDList(Enumerator).

После этого все стало хорошо, но осталось недоумение: а что плохого я делал в первом случае?

Заранее спасибо.
Отправлен: 19.09.2006, 21:59
Вопрос задал: Lev (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: mvp
Здравствуйте, Lev!
Если речь идёт о интерфейсах, то попробуйте сделать перед выходом в деструкторе Enumerator := nil (естественно, что enumerator: IEnumIDList)
---------
Моя совесть чиста - не бывшая в употреблении
Ответ отправил: mvp (статус: Студент)
Ответ отправлен: 19.09.2006, 22:12
Оценка за ответ: 4
Комментарий оценки:
Хорошее начало решения проблемы (что-то в духе Windows'овских рекомендаций по устранению неполадок)

Отвечает: Arvist
Здравствуйте, Lev!
IEnumIDList это интерфейс(т.к. в названии типа первая буква I). Нельзя создавать переменные типа интерфейс, этот тип используется для создания классов на его основе и для организации взаимодействия приложений сделанных в Delphi с приложениями сделанными в других ЯП. Подробнее о интерфейсах читайте в справке о Delphi. В приложении цитата из справки

Приложение:

---------
В будущем определено одно - неопределенность будущего!

Ответ отправил: Arvist (статус: 2-ой класс)
Ответ отправлен: 20.09.2006, 15:25


Вопрос № 56.031
Здравствуйте. На новом компе установил Win98, поставил Delphi, библиотеку DelphiX. Но один компонент не работает. Это DirectXDraw. Пишет что якобы не подключена какая-то библиотека dll. Но необходимые dll вроде есть. Или надо установить DirectX? На другом компе с этой же виндой все работало сразу.
Отправлен: 19.09.2006, 23:43
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Melamed
Здравствуйте, Blackie!
Использование библиотеки DelphiX подразумевает установку DirectX на вашу машину обязательно. Дело в том, что библиотека DilphiX дает только средства программирования DirectX в среде Delphi но нk 7; сам DirectX.
Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 20.09.2006, 00:28
Оценка за ответ: 5

Отвечает: Oricardo
Здравствуйте, Blackie!

От того что, поставите DirectX хуже не будет. Но, возможно, проблема в том, что при установке, вы поставили не полный пакет Delfi

---------
Чужая программа - потемки
Ответ отправил: Oricardo (статус: 1-ый класс)
Ответ отправлен: 21.09.2006, 16:47
Оценка за ответ: 5


Вопрос № 56.034
Приветствую вас, уважаемые эксперты. Меня мучает такой вопрос - дальнейшая судьба Delphi, кто займется ее поддержкой и развитием, вам ничего по этому поводу не известно?
Отправлен: 20.09.2006, 01:06
Вопрос задал: Majesty2008 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Н.В.
Здравствуйте, Majesty2008!
По-моему, Borland не скоро продаст свои продукты. Во-первых они о-о-очень дорого стоят. Во-вторых, те, кто купят их будут продолжать их развитие.
Воообще, видел в Интернете информацию, что microsoft может купить все Borland'овские продукты, но это неофициальная информация.
Сейчас ещё не известна судьба программ Borland'a. Возможно, они даже и не продадут ничего (на что я очень надеюсь).

Удачи.
---------
http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 20.09.2006, 08:29
Оценка за ответ: 5

Отвечает: Oricardo
Здравствуйте, Majesty2008!

Пока что существует Delfi2005, дальнейшие разработки будут вестись только под платформу .Net
---------
Чужая программа - потемки
Ответ отправил: Oricardo (статус: 1-ый класс)
Ответ отправлен: 21.09.2006, 16:49
Оценка за ответ: 3


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

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

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

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

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


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


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

В избранное