Przy zmianie skalowania ekranu TTreeView gubi stan checkboxów.

0

Tak jak w temacie. W momencie kiedy są zaznaczone checkboxy w treeview dokonam zmiany skalowania w windowsie np ze 100% na 125% to wszystkie checkboxby się odznaczają.
Czy ktoś może spotkał się z takim problemem ?
Delphi 11 i 12 - to samo zachowanie. Projekt VCL.

scale.png

0

Jeśli jest to zwyczajnie wyklikany w designerze, pusty i nieoprogramowany formularz, który wykorzystuje wyłącznie to co oferuje VCL (mam na myśli checkboxy węzłów drzewa), to masz do czynienia z bugiem w VCL. Pasuje to im zgłosić, aby mieli szansę ten bug naprawić. Zajrzyj tu:

3

Teoretycznie sytuację poprawia zablokowanie skutków wywołania funkcji RecreateWnd (VCL to wywołuje)

const
  CM_BASE                        = $B000;
  CM_RECREATEWND                 = CM_BASE + 51;
type
  TTreeView = class(Vcl.ComCtrls.TTreeView)
  protected
     procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND;
  end;

  //dalsza część kodu

  implementation

{$R *.dfm}

procedure TTreeView.CMRecreateWnd(var Message: TMessage);
begin
  Message.Result:= 0;
end;

ale musisz przetestować czy zablokowanie tego czegoś innego w to miejsce nie rozwali.

0

Trochę może naiwne pytanie, ale chciałem to przetestować na C++ Builder i u mnie przy edycji TTreeViev komendami: New->Item i/lub New-> Subitem pojawia się drzewo złożone z "labelów" (które klikając mogę podkreślać), a nie checkboxów. Jaka cecha/właściwość odpowiada właśnie za pojawianie się tego komponentu jako drzewa w TTreeView?

1 użytkowników online, w tym zalogowanych: 0, gości: 1