GetItemAt von TListView

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

GetItemAt von TListView

Beitrag von Giantics »

Hallo,

seit ich mein Ubuntu auf Version 10.04 upgedatet habe (damit wurde auch Lazarus 0.9.28.2 aus den Ubuntu-Quellen installiert), funktioniert GetItemAt von TListView nicht mehr. Könntet ihr das mit dem angehängten Beispiel mal testen?
In dem Beispiel sollte das Element in der TListView als Hint angezeigt werden, über dem gerade die Maus ist. Bei mir allerdings wird immer nur nil zurückgeliefert.

Ein weiterers Merkmal, das vermutlich auch von diesem Fehler herrührt, und erst in Ubuntu 10.04 aufgetaucht ist, ist folgendes: Wenn man während dem Start des Beispiel-Programms den Mauszeiger schnell über der Stelle bewegt, an der das TListView erscheint, dann erscheint eine AccessViolation (ruhig mehrmals probieren, passiert nicht immer).
Sobald man die Zeile mit "GetItemAt" rausnimmt taucht diese AccessViolation bei mir nicht mehr auf.

Gruß
Thomas
Dateianhänge
GetItemAt-Beispiel.zip
(157.75 KiB) 109-mal heruntergeladen

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: GetItemAt von TListView

Beitrag von u-boot »

ich hab hier noch Ubuntu 9.10 und kann damit die beschriebenen Fehler hier nicht feststellen wobei die die Hintanzeige sich etwas seltsam verhält meines erachtens....

downgrade kann fortschritt sein :)
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: GetItemAt von TListView

Beitrag von Teekeks »

Auch unter OpenSUSE11.2 ist der Beschriebene Fehler nicht zu finden...

Achso:
Du könntest ja mal mit dem Debugger durch die Zeilen von GetItemAt durch steppen um herauszufinden wo der Fehler liegt/ wo er auftritt.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: GetItemAt von TListView

Beitrag von Scotty »

Klappt nicht (Ubuntu 10.04).

Code: Alles auswählen

@gtk2wscustomlistview.inc:
class function TGtk2WSCustomListView.GetItemAt(const ALV: TCustomListView; x, y: integer): Integer;
 ...
    if GTK_TREE_VIEW_FLAG_SET(PGtkTreeView(Widgets^.MainView), GTK_TREE_VIEW_HEADERS_VISIBLE) then
    begin
//y=160 z.B.
      gdk_window_get_size(PGtkTreeView(Widgets^.MainView)^.priv^.header_window, @cx, @cy);
//cx=32767; cy=-134763456
      y := y - cy;
//y=134763616
    end;
...
Ohne Header geht es aber auch nicht. Und mit 9.10 gab es keine Probleme?

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: GetItemAt von TListView

Beitrag von Giantics »

Scotty hat geschrieben:Klappt nicht (Ubuntu 10.04).
...
Und mit 9.10 gab es keine Probleme?
Korrekt, zumindest bei mir hat es mit Ubuntu 9.10 noch einwandfrei funktioniert. Ich schreibe dann am besten mal einen Bugreport.
Danke fürs Verifizieren!

Edit:
Der Fehler liegt an den gtk-libs. Das Problem wurde wohl in der svn-Version bereits behoben:
http://bugs.freepascal.org/view.php?id=16439" onclick="window.open(this.href);return false;

Gruß Thomas

Antworten