View Issue Details

IDProjectCategoryView StatusLast Update
0001123SAS.ПланетаБаг / Bugpublic09-08-2012 07:16
ReporterDJ VK Assigned To 
PrioritynormalSeveritytweakReproducibilityalways
Status confirmedResolutionopen 
PlatformWindowsOSXPOS VersionSP3
Product Version120808 
Target Version45xxxx 
Summary0001123: При выборе в списке масштабов последней видимой строки, срабатывает прокрутка
DescriptionОкно копирования, список масштабов. Если нижняя строка не влезает хотя бы на 1 пиксел в высоту, при попытке выбрать этот масштаб происходит
1. прокрутка.
2. выбор следующего масштаба!!!
Ну с прокруткой то хрен бы, а вот второй эффект надо подавить.
Steps To ReproduceОткрывать в новой программе. По умолчанию высота списка масштабов чуть меньше чем кратная количеству строк.
Additional InformationДостаточно растянуть окно чтобы список масштабов был кратен и эффект пропадает.

Но баг он и в африке баг.
Tagswindows 7
Attached Files
fr_TilesCopy.pas (4,821 bytes)

Activities

Tolik

19-01-2012 07:11

manager   ~0005107

Есть такое дело, причём было всегда.

DJ VK

20-01-2012 07:59

manager   ~0005119

испытания показали, что выбор работает правильно, а вот отрисовка галочек глючит на экране. Это штатный компонент такой невеселый походу.

Tolik

20-01-2012 08:01

manager   ~0005120

То есть кликаем 14, галочка ставится на 15, а копируется всё равно 14??

DJ VK

20-01-2012 08:33

manager   ~0005121

Last edited: 20-01-2012 10:02

да.

Можно переписать owner draw. Но проще перехватить мышку.


uses
  Types,
  Messages,
  Windows,

protected
    FOldListBoxProc: TWndMethod;
    procedure AdvListBoxProc(var Message: TMessage);

constructor TfrTilesCopy.Create(
....
begin
  ....
  FOldListBoxProc := chklstZooms.WindowProc;
  chklstZooms.WindowProc := AdvListBoxProc;
end;


procedure TfrTilesCopy.AdvListBoxProc(var Message: TMessage);
var
  VRect: TRect;
  VIntegralHeight : Integer;
  VProc : Boolean;
begin
  VProc := True;
  if( Message.Msg = WM_LBUTTONDOWN ) then
  begin
    Windows.GetClientRect(chklstZooms.Handle,VRect);
    if(PtInRect(VRect, Point(LOWORD(Message.LParam),HIWORD(Message.LParam)))) then
    begin
      VIntegralHeight := chklstZooms.ItemHeight * (chklstZooms.Height div chklstZooms.ItemHeight);
      if(HIWORD(Message.LParam) >= (VIntegralHeight + VRect.Top)) then VProc := False;
    end;
  end;
  if VProc then FOldListBoxProc(Message);
end;

DJ VK

20-01-2012 09:51

manager   ~0005123

Исправленный юнит приложил. прокрутка больше на происходит при левом щелчке. если есть желание можно перехватить и двойной щелчок.

DJ VK

21-01-2012 13:58

manager   ~0005154

В Windows 7 не работает.

DJ VK

22-01-2012 11:41

manager   ~0005174

грязный хак, да еще и не рабочий... Так назвал этот вариант решения vdemidov
Ну а как ШТАТНЫЙ компонент с заведомо глючной отрисовкой исправить??

1. написать свой компонет на основе этого override обработчик мыши? хак но не грязный.
2. написать свой компонент на основе этого с отрисовкой правильной? делать чужую работу
3. взять из новой версии дельфи? а нахрена тогда delphi 2007
4. взять из новой версии дельфи и заменить имена добавив в дистрибутив?
5. заменить на другой компонент, и нарастить внешние зависимости?

vdemidov

22-01-2012 12:25

manager   ~0005176

Вы сами написали что в вин 7 не работает. Я проверил. Действительно не работает. Смысла городить огород ради исправление только в хрюше не вижу. Перейдем на боле новую делфу само исчезнет.

Issue History

Date Modified Username Field Change
19-01-2012 05:42 DJ VK New Issue
19-01-2012 05:45 DJ VK Summary При выборе в списке масштабов последней строки, срабатывает прокрутка => При выборе в списке масштабов последней видимой строки, срабатывает прокрутка
19-01-2012 07:11 Tolik Note Added: 0005107
19-01-2012 07:11 Tolik Status new => acknowledged
20-01-2012 07:59 DJ VK Note Added: 0005119
20-01-2012 08:01 Tolik Note Added: 0005120
20-01-2012 08:33 DJ VK Note Added: 0005121
20-01-2012 09:50 DJ VK File Added: fr_TilesCopy.pas
20-01-2012 09:51 DJ VK Note Added: 0005123
20-01-2012 09:59 DJ VK Note Edited: 0005121
20-01-2012 10:02 DJ VK Note Edited: 0005121
21-01-2012 13:58 DJ VK Note Added: 0005154
22-01-2012 11:41 DJ VK Note Added: 0005174
22-01-2012 12:25 vdemidov Note Added: 0005176
22-01-2012 15:07 vdemidov Target Version => 45xxxx
22-01-2012 18:34 gpsMax Tag Attached: windows 7
01-02-2012 14:07 vdemidov Status acknowledged => confirmed
09-08-2012 07:16 vdemidov Product Version .Nightly => 120808
08-08-2025 13:22 zed Category Баг => Баг / Bug