Нужен совет по шрифтам в GTK1

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение Yogrik » 06.03.2007 17:20:17

alexs писал(а):если я начинаю таскать за скрол-бары просмотрщик - то область просмотра не обновляется - надо просто щёлкнуть мышкой в область просмотра - тогда она перерисуется


Так вот я про это и говорю...
1)Но щелкать мышкой-то не хочется
2)Щелчок не всегда спасает, например когда смотришь на середину листа в масштабе 200. Щелчок "отрисует" по какой-то стороне(т.е. как бы переместит к какому-нибуть краю)
3) Я боюсь такой привью отдавать пользователям :'(

Собственно, в моем понимание это баг (или даже ошибка при проектировании) :(
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение alexs » 06.03.2007 22:40:03

ну это гдето не так глубоко - не при проетировании - насколько мне помнится в FastReport-е 2.3 этого не было, да и под виндой этого нет - это чтото в Linux-е - надо просто покапать - где не ообрабатывается сообщение от скрол-бара.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Yogrik » 07.03.2007 00:46:29

alexs писал(а):да и под виндой этого нет - это чтото в Linux-е

Нет это под виндой....а до линуха я еще не добрался...:(


Мдя, похоже что я не до конца понял как LazReport работает....:(
Да нет там не какой ошибки в проектировании, я погорячился...:(
Придумал велосипед....:'(

Вот вообщем патчик, который делает нормальное обновление
горизонтального скрола(под Windows работает нормально, под Linux моргает сильно :( )

Код: Выделить всё
Index: lr_view.pas
===================================================================
RCS file: /cvsroot/lazreport/lazreport/source/lr_view.pas,v
retrieving revision 1.10
diff -u -r1.10 lr_view.pas
--- lr_view.pas   5 Dec 2006 11:34:55 -0000   1.10
+++ lr_view.pas   6 Mar 2007 20:38:39 -0000
@@ -817,7 +817,13 @@
   OldH := p;
   ofx := -p;
   r := Rect(0, 0, PBox.Width, PBox.Height);
+  {$IFDEF WIN32}
+  ScrollWindowEx(PBox.Handle, pp, 0, @r, @r, 0, nil, SW_INVALIDATE);
+  UpdateWindow(Pbox.Handle);
+  {$ELSE}
   ScrollWindow(PBox.Handle, pp, 0, @r, @r);
+  PBox.Invalidate;
+  {$ENDIF}
end;

procedure TfrPreviewForm.FormKeyDown(Sender: TObject; var Key: Word;
Последний раз редактировалось Yogrik 07.03.2007 14:49:18, всего редактировалось 1 раз.
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение alexs » 07.03.2007 02:15:34

отправь его Jesus Reyes - он ведёт исходники LazReport-a

хотя я не смог добиться под виндой описываемого тобой эфекта - было раньше такое
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Yogrik » 07.03.2007 02:46:42

alexs писал(а):хотя я не смог добиться под виндой описываемого тобой эфекта - было раньше такое


Так сообственно говоря вот он
alexs писал(а):если я начинаю таскать за скрол-бары просмотрщик - то область прсомотра не обновляется - надо просто щёлкнуть мышкой в область просмотра - тогда она перерисуется

Только я прокручиваю в одну сторону, а потом возвращаю, после этого отпускаю кнопку мыши....
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение alexs » 07.03.2007 03:40:28

кстати - а почему у тебя отличется код процедуры - вот код процедуры из последнего обновления:
procedure TfrPreviewForm.VScrollBarChange(Sender: TObject);
var
i, p, pp: Integer;
r: TRect;
Pages: TfrEMFPages;
begin
if EMFPages = nil then Exit;
Pages := TfrEMFPages(EMFPages);
p := VScrollBar.Position;
pp := OldV - p;
OldV := p;
ofy := -p;
r := Rect(0, 0, PBox.Width, PBox.Height);
{$IFDEF WIN32}
ScrollWindowEx(PBox.Handle, 0, pp, @r, @r, 0, nil, SW_INVALIDATE);
UpdateWindow(Pbox.Handle);
{$ELSE}
PBox.Invalidate;
{$ENDIF}
for i := 0 to Pages.Count-1 do
if (Pages[i]^.r.Top < -ofy + 11) and
(Pages[i]^.r.Bottom > -ofy + 11) then
begin
CurPage := i + 1;
ShowPageNum;
break;
end;
end;
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Yogrik » 07.03.2007 04:01:32

Потому что я все время описываюсь(как не странно :lol:).....

Это не вертикальный а горизонтальный.....
И все выше сказанные слова по горизонтальному скролу....


Счас исправлю, что людей не смущать....
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

Рейтинг@Mail.ru