SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001123SAS.Планета[All Projects] Багpublic19-01-2012 05:4209-08-2012 07:16
ReporterDJ VK 
Assigned To 
PrioritynormalSeveritytweakReproducibilityalways
StatusconfirmedResolutionopen 
PlatformWindowsOSXPOS VersionSP3
Product Version120808 
Target Version40xxxxFixed in Version 
Summary0001123: При выборе в списке масштабов последней видимой строки, срабатывает прокрутка
DescriptionОкно копирования, список масштабов. Если нижняя строка не влезает хотя бы на 1 пиксел в высоту, при попытке выбрать этот масштаб происходит
1. прокрутка.
2. выбор следующего масштаба!!!
Ну с прокруткой то хрен бы, а вот второй эффект надо подавить.
Steps To ReproduceОткрывать в новой программе. По умолчанию высота списка масштабов чуть меньше чем кратная количеству строк.
Additional InformationДостаточно растянуть окно чтобы список масштабов был кратен и эффект пропадает.

Но баг он и в африке баг.
Tagswindows 7
Attached Files? file icon fr_TilesCopy.pas [^] (4,821 bytes) 20-01-2012 09:50

- Relationships

-  Notes
(0005107)
Tolik (manager)
19-01-2012 07:11

Есть такое дело, причём было всегда.
(0005119)
DJ VK (manager)
20-01-2012 07:59

испытания показали, что выбор работает правильно, а вот отрисовка галочек глючит на экране. Это штатный компонент такой невеселый походу.
(0005120)
Tolik (manager)
20-01-2012 08:01

То есть кликаем 14, галочка ставится на 15, а копируется всё равно 14??
(0005121)
DJ VK (manager)
20-01-2012 08:33
edited on: 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;

(0005123)
DJ VK (manager)
20-01-2012 09:51

Исправленный юнит приложил. прокрутка больше на происходит при левом щелчке. если есть желание можно перехватить и двойной щелчок.
(0005154)
DJ VK (manager)
21-01-2012 13:58

В Windows 7 не работает.
(0005174)
DJ VK (manager)
22-01-2012 11:41

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

1. написать свой компонет на основе этого override обработчик мыши? хак но не грязный.
2. написать свой компонент на основе этого с отрисовкой правильной? делать чужую работу
3. взять из новой версии дельфи? а нахрена тогда delphi 2007
4. взять из новой версии дельфи и заменить имена добавив в дистрибутив?
5. заменить на другой компонент, и нарастить внешние зависимости?
(0005176)
vdemidov (manager)
22-01-2012 12:25

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

- Users who viewed this issue
User List Anonymous (2666x)
Total Views 2666
Last View 01-11-2024 00:13

- 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 08:35 DJ VK Note Added: 0005122
20-01-2012 09:49 DJ VK Note Deleted: 0005122
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 View Revisions
20-01-2012 10:02 DJ VK Note Edited: 0005121 View Revisions
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 => 40xxxx
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



Copyright © 2007 - 2024 SAS.Planet Team