Position overflow in SendMoveSizeMessages - Scrollbox

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
lenny_hai
Beiträge: 12
Registriert: So 11. Dez 2022, 15:06

Position overflow in SendMoveSizeMessages - Scrollbox

Beitrag von lenny_hai »

Hallo zusammen,

ich bin es mal wieder....
Nun bin ich fast fertig, aber natürlich muss da mal wieder was kommen.
Ich habe eine Scrollbox, in der ich untereinander eiine Kombi von Timage, TButton und 2 Labels setze.
Das Ganze ist eine Art Druckerqueue.
Bei ca. 225 Einträgen ist dann der .Top Wert eines der Komponenten größer als 32768 und ich bekomme die Meldung:

"Position range overflow in .SendMoveSizeMessages: Left=202, Top=32802."

{$mode objfpc} ist gesetzt, integer sollte also eigentlich longint sein, was bei einer ganz normal deklarierten Variable auch so ist.

Hat jemand eine Idee, wie man das Problem umgehen kann.
Ich arbeite übrigens unter Ubuntu Mate 22.04 (GTK2).


Viele Grüße Sven

Benutzeravatar
Winni
Beiträge: 1550
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Position overflow in SendMoveSizeMessages - Scrollbox

Beitrag von Winni »

Hi!

Bevor du dich dusselig suchst, habe ich eine Vermutung:

Der Canvas kann nicht mehr als 32767 Pixel.
Das steht irgendwo (in der LCL??) als Maximalwert.

Das Vergnügen hatte ich schon mal, als ich den Canvas reichlich gezoomt hatte.

Winni

Benutzeravatar
Winni
Beiträge: 1550
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Position overflow in SendMoveSizeMessages - Scrollbox

Beitrag von Winni »

Hi!

Workaround:

Pack die Druckerqueue in eine Stringlist.

Schmeiss die Scrollbox weg.
Mach Dir einen Pfeil hoch und einen Pfeil runter neben das Image.
Rechne Dir aus, wieviel Einträge in das (kleinere) Image passen.

Nun machst Du ein Fenster in die Liste:
Du zeigst immer nur die n Einträge, die ins Fenster passen.
Pfeil nach oben: Index minus n
Pfeil nach unten: Index plus n

So müsste es gehen.

Winni

lenny_hai
Beiträge: 12
Registriert: So 11. Dez 2022, 15:06

Re: Position overflow in SendMoveSizeMessages - Scrollbox

Beitrag von lenny_hai »

Moin,

also der erste Post klingt ja nicht ganz so toll und beim zweiten bin ich mir gerade nicht sicher, inwieweit mir eine TStringList Weiterhelfen soll.
Die Queue besteht ja tatsächlich aus Bildern, die dann gedruckt werden.....


Viele Grüße Sven

lenny_hai
Beiträge: 12
Registriert: So 11. Dez 2022, 15:06

Re: Position overflow in SendMoveSizeMessages - Scrollbox

Beitrag von lenny_hai »

Moin nochmal,

ich hätte zwar eine Idee mit einem Panel und Pfeilen, aber ich glaube ich mache das jetzt ganz Quick 'n Dirty.... die Wahrscheinlichkeit, dass jemand bei uns auf einmal mehr als 200 Label Drucken muss, ist sehr gering.... ich werde mal einfach die Anzahl begrenzen :-)
Theoretisch könnte ich es wahrscheinlich einfach so lassen, würde vielleicht ein mal alle 5 Jahre passieren, aber ich mag es nicht, wenn Programme abstürzen ....




Viele Grüße Sven

Antworten