Вопрос № 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, кто займется ее поддержкой и развитием, вам ничего по этому поводу не известно?
Отвечает: Н.В.
Здравствуйте, 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