SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001123 | SAS.Планета | [All Projects] Баг | public | 19-01-2012 05:42 | 09-08-2012 07:16 |
|
Reporter | DJ VK | |
Assigned To | | |
Priority | normal | Severity | tweak | Reproducibility | always |
Status | confirmed | Resolution | open | |
Platform | Windows | OS | XP | OS Version | SP3 |
Product Version | 120808 | |
Target Version | 40xxxx | Fixed in Version | | |
|
Summary | 0001123: При выборе в списке масштабов последней видимой строки, срабатывает прокрутка |
Description | Окно копирования, список масштабов. Если нижняя строка не влезает хотя бы на 1 пиксел в высоту, при попытке выбрать этот масштаб происходит
1. прокрутка.
2. выбор следующего масштаба!!!
Ну с прокруткой то хрен бы, а вот второй эффект надо подавить. |
Steps To Reproduce | Открывать в новой программе. По умолчанию высота списка масштабов чуть меньше чем кратная количеству строк. |
Additional Information | Достаточно растянуть окно чтобы список масштабов был кратен и эффект пропадает.
Но баг он и в африке баг. |
Tags | windows 7 |
Relationships | |
Attached Files | fr_TilesCopy.pas (4,821) 20-01-2012 09:50 http://www.sasgis.org/mantis/file_download.php?file_id=611&type=bug |
|
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 | bug_revision_view_page.php?bugnote_id=5121#r2565 |
20-01-2012 10:02 | DJ VK | Note Edited: 0005121 | bug_revision_view_page.php?bugnote_id=5121#r2566 |
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 |
Notes |
|
(0005107)
|
Tolik
|
19-01-2012 07:11
|
|
Есть такое дело, причём было всегда. |
|
|
(0005119)
|
DJ VK
|
20-01-2012 07:59
|
|
испытания показали, что выбор работает правильно, а вот отрисовка галочек глючит на экране. Это штатный компонент такой невеселый походу. |
|
|
(0005120)
|
Tolik
|
20-01-2012 08:01
|
|
То есть кликаем 14, галочка ставится на 15, а копируется всё равно 14?? |
|
|
(0005121)
|
DJ VK
|
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
|
20-01-2012 09:51
|
|
Исправленный юнит приложил. прокрутка больше на происходит при левом щелчке. если есть желание можно перехватить и двойной щелчок. |
|
|
(0005154)
|
DJ VK
|
21-01-2012 13:58
|
|
|
|
(0005174)
|
DJ VK
|
22-01-2012 11:41
|
|
грязный хак, да еще и не рабочий... Так назвал этот вариант решения vdemidov
Ну а как ШТАТНЫЙ компонент с заведомо глючной отрисовкой исправить??
1. написать свой компонет на основе этого override обработчик мыши? хак но не грязный.
2. написать свой компонент на основе этого с отрисовкой правильной? делать чужую работу
3. взять из новой версии дельфи? а нахрена тогда delphi 2007
4. взять из новой версии дельфи и заменить имена добавив в дистрибутив?
5. заменить на другой компонент, и нарастить внешние зависимости? |
|
|
|
Вы сами написали что в вин 7 не работает. Я проверил. Действительно не работает. Смысла городить огород ради исправление только в хрюше не вижу. Перейдем на боле новую делфу само исчезнет. |
|