![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
снова TrackBar [Delphi, Windows]
Robt © (2007-06-26 19:28:00)а как работать с "тиками" ?
менять растояние между ними
типа frequency в vcl
и как вариант фиксированое "прыганье" ползунка
по "тикам"
Dy1 (2009-06-22 20:51:00) [1]не помогло
(2009-03-27 13:14:00) [2]Удалено модератором
PeTRoViCH (2009-03-23 19:03:00) [3]У меня тоже не работает.
Как выяснилось, в модуле KOLCCtrls.pas в функции WndProcTrackbarParent
после Trackbar := Pointer(GetProp(Msg.lParam, ID_SELF));
имеем Trackbar=nil
Выяснять причину не стал из-за лени.
Проблему решил так:
(все изменения в юните KOLCCtrls.pas)
1. В функции NewTrackbar:
Перед AParent.AttachProc( WndProcTrackbarParent ); добавляем строку:
SetWindowLong(Result.Handle,GWL_USERDATA,Integer(@Result));
2. В функции WndProcTrackbarParent:
Строку Trackbar := Pointer(GetProp(Msg.lParam, ID_SELF)); заменяем на:
Trackbar := Pointer(GetWindowLong(Msg.lParam,GWL_USERDATA));
Удачи.
(2009-02-28 22:34:00) [4]Удалено модератором
Dy1 (2009-02-28 13:04:00) [5]Не удалось. Может ли xitrackbar выглядеть системным?
Дмитрий К (2009-02-26 18:27:00) [6]
> Dy1 (25.02.09 17:02) [25]
Если не удастся победить ошибку, попробуй http://kolnmck.kolmck.net/files/components/controls/kolxitrackbar.7zЭтот контрол не основан на системном трекбаре.
Jon (2009-02-25 17:33:00) [7]Use Position property - KOL only example shown:
program Trackbar;
uses KOL, KOLCCtrls;
procedure TrackbarChange(Dummy: Pointer; Sender: PTrackbar; Code: Integer);
begin
Applet.Caption := Int2Str(Sender.Position);
end;
begin
Applet := NewForm(nil,'Trackbar');
NewTrackbar(Applet,[],TOnScroll(MakeMethod(nil,@TrackbarChange))).ResizeParent;
Run(Applet);
end.
Dy1 (2009-02-25 17:02:00) [8]помогите пожалуйста
Dy1 (2009-02-17 09:52:00) [9]КОЛнМЦК 2.88, Д7
вылет при попытке прочитать trackbar.Position
Robt (2007-12-19 08:30:00) [10]да я не табуляцию имел в виду а Focused
Jon (2007-12-18 11:56:00) [11]You need to do the following:
TrackBar := NewTrackbar(....);
TrackBarTabstop := True;
TrackBar.Style := TrackBar.Style or WS_TABSTOP;
Work for me in all versions including current 2.85
Robt (2007-12-18 08:48:00) [12]после установки последней версии кола 2.84
trackbar отказывается програмно становица "в фокусе" любыми способами
только если на него мышью нажать
возврат к 2.73 - все нормально
чтоли гдето чтото поменялось ?
Robt (2007-09-14 20:09:00) [13]кароче эта хрень изза отладочной инфы :(
2 дня изза нее промудохался ....
и чо теперь ? без отладки работать ?
robt (2007-09-14 16:13:00) [14]и кроме того VCL версия тоже использует WM_USER но проблем не возникает
а тут то Range error то ноль эмоций
забыл сказать, когда onScroll пустой Range error нету, тока чонить написал-капец
robt (2007-09-14 16:06:00) [15]использую WM_USER+101 и выше это где вылетает с переполнением,
а "пустой" проект для теста это тупо форма+тракбар и фсе...
Vladimir Kladov (2007-09-14 14:10:00) [16]Проверьте, что вы не используете в своем приложении сообщений WM_USER, пересекающихся с сообщениями trackbar'а.
robt (2007-09-14 09:54:00) [17]на работе пустой проект с темже кодом (Form.Caption := Int2Str(Sender.Position);)
ВОБЩЕ не работает !!! хотя 2 мес. назад работал....
кол 2.37
по моему где то косяк тракбара с обработкой сообщений
веть даже если у меня ошибка в программе (чего не может быть в принципе в "пустом" проекте)
даже в этом случае это не должно влиять на внупренние процессы в тракбаре .
Robt (2007-09-13 21:22:00) [18]
> А у меня работатет. Код:
> procedure TForm1.TrackBar1Scroll(Sender: PTrackbar; Code:
> Integer);
> begin
> Form.Caption := Int2Str(Sender.Position);
> end;
вылетает при любом упоминании Position с переполнением диапазона
function TTrackbar.GetVal( const Index: Integer ): Integer;
begin
Result := Perform( WM_USER + ( HiWord( Index ) and $7FFF ), 0, 0 );
end;
коректно работает тока в пустом проекте
кол последний
чо делать ?
mdw (2007-06-28 20:18:00) [19]
> А у меня работатет. Код:
Специально проверил сейчас, у меня тоже работает.
Galkov (2007-06-28 19:45:00) [20]На своем форуме я обычно добавляю:
Вопрос: что я делаю не так ???
:))