PageControl Zugriffsverletzung

Rund um die LCL und andere Komponenten
Antworten
Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

PageControl Zugriffsverletzung

Beitrag von Targion »

Hallo!
Immer wenn in einem PageControl kein Tab sichtbar ist, gibt es beim Anzeigen von diesem kurz nach dem Start des Programmes eine Zugriffsverletzung. Ist das ein Bug in Lazarus, kann man das Problem irgendwie umgehen?

Edit: Unter Linux, unter Windows nicht getestet!
Zuletzt geändert von Targion am Di 8. Jan 2008, 13:56, insgesamt 2-mal geändert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

hier nicht reproduzierbar.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Ups, ich hatte vergessen zu schreiben, dass der Fehler unter linux mit GTK2 (und 1) auftritt. Folgende Zeilen zeigt der Debugger:

Code: Alles auswählen

if (PageWidget<>nil) then
      ClientWidget:=GetFixedWidget(PageWidget)
    else
      ClientWidget:=nil;
    if ClientWidget^.window<>nil then begin
      // get the position of the current page
      gdk_window_get_origin(ClientWidget^.window,@Result.X,@Result.Y);
      if GTK_WIDGET_NO_WINDOW(ClientWidget)
      then begin
        Inc(Result.X, ClientWidget^.Allocation.X);
        Inc(Result.Y, ClientWidget^.Allocation.Y);
      end;
(in der Datei gtkproc.inc)

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Beitrag von DiBo33 »

In Normalfall wird kein Fehler bei einem leeren PageControl ausgegeben, weder unter win32 noch unter gtk2.

Kann es sein, dass du irgendwie versuchst auf einem nicht vorhanden TabSheet zuzugreifen?

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Hmm. Nein, der Fehler tritt auch auf, wenn im Programm nichts außer dem PageControl mit 2 TabSheets vorhanden ist.
Ich benutze jetzt die SVN-Version, weil ich dachte, dass das Problem eventuell behoben ist, aber der Fehler existiert weiterhin.

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Ist dafür keine Lösung bekannt? Ich habe eigentlich alles versucht, aber es läuft nicht richtig. :evil:

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Erstens: Das Teufelchen "Smiley" find ich doof. ;-)
Zweitens: Das Problem tritt afaik nur bei GTK2 auf.
Drittens: Warum nicht mal einen Blick in den Bugtracker wagen?
http://bugs.freepascal.org/view.php?id=9343" onclick="window.open(this.href);return false;

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Aha! Wenn ich GTK1 aktiviere tritt der Fehler wirklich nicht auf (Aber die Seite wird trotzdem nich angezeigt) Ich warte mal ab, bis der Fehler behoben ist, GTK2 ist ja schließlich noch in der Entwicklung.
P.S: Ja, der Teufel ist wirklich nicht so schön, aber der Fehler nervt wirklich. Mein Lieblingssmiley: :roll:

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Beitrag von DiBo33 »

Also tut mir leid, aber unter Ubuntu 7.10 Lazarus 0.9.24 gtk2 kann ich das absolut nicht nachvollziehen.
Ich weiß, das es bei Lazarus 0.9.22 den Effekt gab nur seit 0.9.24 läuft das PageControl absolut stabil.
Ich habe hier mehrere Anwendungen welche unter gtk2 mit dem PageControl arbeiten (auch am Anfang leer) und der genannte Effekt tritt hier nicht auf.

Antworten