Menu

#8 TTrackbar Position SetVal

v1.0 (example)
open
nobody
TTrackbar (1)
5
2023-11-12
2023-10-31
my33oh
No

привет, есть древний косячек (с рождения) с TTrackbar в KOLCCtrls.pas
при програмной установке позиции через SetVal
property Position: Integer index $00000005 read GetVal write SetVal;
по факту внутри SetVal вызывается Perform(TBM_SETPOS,0,Value);
но 0 в wParam указывает не перерисовывать контрол, т.е. позиция меняется только в памяти а визуально ползунок на старом месте
у себя я заменял SetVal на SetPos(чтоб не ломать ничего) такого вида

procedure TTrackbar.SetPOS(const Index,Value: Integer);
begin
Perform(TBM_SETPOS,1,Value);
end;
с 1 в wParam

суммарно
TTrackbar = object( TControl )
private
.....
procedure SetPOS(const Index,Value: Integer);
.......
public
....
property Position: Integer index $00000005 read GetVal write SetPOS;
......

implementation
.....
procedure TTrackbar.SetPOS(const Index,Value: Integer);
begin
Perform(TBM_SETPOS,1,Value);
end;

Discussion

  • DWorker

    DWorker - 2023-11-01

    А здесь он уже пофиксен:

    property Position: Integer index $80000005 read GetVal write SetVal;
    
    procedure TTrackbar.SetVal(const Index, Value: Integer);
    begin
      Perform( WM_USER + LoWord( Index ), Index shr 31, Value );
    end;
    
     
  • my33oh

    my33oh - 2023-11-01

    а ононо че восьмерку в гексе то я и не приметил, лан отбой :)

     
  • my33oh

    my33oh - 2023-11-01

    в догонку в KOL.pas у TObj = object( _TObj )
    есть такое
    procedure Free; inline;
    соответственно делфи 7 ругается

     
    • DWorker

      DWorker - 2023-11-08

      Уже давно ниже 2006 версии не использую, поэтому и не заметил. Надо будет в ifdef обернуть..

       
  • my33oh

    my33oh - 2023-11-01

    еще проблема с аддонами в дпк для 7ки KOLMCK7 в рекьюирисах должен быть в конце иначе делфя крашится
    и абсолютно во всех пакетах проблемы с
    KOLEcmListEdit
    mckEcmListEdit
    в этих файлах ошибки не дающие установить их ни в каких делфях

     
    • DWorker

      DWorker - 2023-11-08

      А в каких версиях ошибки (кроме 7)?

       
  • my33oh

    my33oh - 2023-11-12

    c
    KOLEcmListEdit
    mckEcmListEdit
    ошибки в 7, 2007, 2009, хе2 в других думаю аналогично

     

Log in to post a comment.

MongoDB Logo MongoDB