Autoresize und Stack Overflow

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Autoresize und Stack Overflow

Beitrag von Manfred »

Hi,

gerade ist mir etwas heißes aufgefallen. Ich habe ein wenig herumprobiert und mit der Maus ein Fenster vergrößert verkleinert usw. und dabei entstand dann das hier in der XPPFATAL.LOG

Code: Alles auswählen

FATAL ERROR LOG 
Stack Overflow
SYS Thread-ID: 444 
Module: EH
Error Codes: EH: 12 Sub: 0(0) OS: 0 XPP: 16
Call Stack of Thread 1 (444):
DC_AUTORESIZE(10319)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
DC_COMPLETEEVENTS(165)
(B)@DC_GETLIST@I@INIT(736)
Das geht jetzt hier noch um etliche Zeilen so weiter.

Hat jemand sowas schon erlebt?

PS: Wenn ich Autoresize herausnehme, ist es weg.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Autoresize und Stack Overflow

Beitrag von Manfred »

Hi,

wie sieht es aus? Gibt es bei euch keine Probleme mit dem Autoresize? Mache ich vielleicht etwas falsch? Es wäre schon schön, wenn ich wüßte wo ich anpacken müßte, weil es nicht gut ist, wenn nach ein paar Mal resizen das Programm aussteigt.

PS: Wenn ich nur RESIZE nehme, ist das Problem auch vorhanden. :confused2:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: Autoresize und Stack Overflow

Beitrag von hschmidt »

Hallo Manfred,

ich benutze bei einigen Dialogen ebenfalls die DC_Autoresize-Funktion, habe damit aber noch nie einen Laufzeitfehler provoziert. Vielleicht solltest Du mal etwas von Deinem Sourcecode zeigen...
Bei mir sieht das beispielsweise so aus:

Code: Alles auswählen

    DCREAD GUI ;
        TITLE TK_GRUPPENSPERREN;
        FIT ;
        EVAL {|o| o:resize :=  {|a,b,o|DC_AUTORESIZE(a,b,o,GetList,.F.)} };
        OPTIONS GetOptions;
        MODAL
Deine Fehlermeldung deutet ja auf eine Endlosrekursion hin, im Prinzip müßtest Du das auch debuggen können.

Nebenbei bemerkt: besonders gut funktioniert diese Autoresize-Funktion bei mir auch nicht: wenn man den Dialog einige Male ganz groß und wieder ganz klein macht, verrechnet sich die Resize-Funktion und die Positonen der Controls stimmen nicht mehr....

Schöne Grüße

Hans
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Autoresize und Stack Overflow

Beitrag von Manfred »

Hi

ich stelle gerade fest, wir reden hier von 2 verschiedenen Sachen. Ich benutze ein anderes Autoresize.....

Code: Alles auswählen

*                                                                              *
*                                                                              *
*                                                                              *
*                                                                              *
* letzte Änderung:02.02.2009                                                   *
********************************************************************************
#include "appevent.ch"
#include "dcbitmap.ch"
#include "dcdialog.ch"
#include "xbp.ch"

#pragma Library("XBTBASE1.LIB")                                                 // wird dadurch in keinem
#pragma Library("XBTBASE2.LIB")                                                 // Projektfile mehr benötigt als Angabe
********************************************************************************
********************************************************************************
PROCEDURE appsys()
          RETURN
********************************************************************************
PROCEDURE main()
          LOCAL getlist    := {}
          LOCAL GetOptions
          LOCAL nFensterBreite := 1024
          LOCAL nSayBreite     := nFensterBreite
          LOCAL nX             := 100
          LOCAL nY             := 5
          LOCAL oDateiMenu     := NIL
          LOCAL oMenuBar       := NIL

          @ nX,nY DCSAY "Manfred Kunz";
                   COLOR GRA_CLR_BLUE,XBPSYSCLR_TRANSPARENT ;
                 SAYFONT "40.Arial";
                 SAYSIZE nSayBreite,100;
               SAYCENTER

          DCMENUBAR oMenuBar
          DCSUBMENU oDateiMenu;
                        PROMPT "~Datei";
                        PARENT oMenuBar
          DCMENUITEM "~Beenden";
                         PARENT oDateiMenu;
                         ACTION {|| DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}

          DCGETOPTIONS;
                 TITLE "SHD-Stammdaten";
           WINDOWWIDTH nFensterBreite;
          WINDOWHEIGHT 700;
                 PIXEL;
            AUTORESIZE

          DCREAD GUI;
             OPTIONS GetOptions

          RETURN
Kann man das so NICHT machen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Autoresize und Stack Overflow

Beitrag von Tom »

Hallo, Manfred.

Wenn ich dieses Beispiel kompiliere und linke, läuft es problemlos - ich kann resizen, wie ich will. Mit welcher eXpress++-Version arbeitest Du?
Herzlich,
Tom
hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: Autoresize und Stack Overflow

Beitrag von hschmidt »

Hallo,
Wenn ich dieses Beispiel kompiliere und linke, läuft es problemlos - ich kann resizen, wie ich will.
Das funktioniert bei mir auch.
Allerdings ist es auch hier wie vorher schon beschrieben: wenn ich das Fenster ganz klein mache und anschließend wieder groß, stimmen die Positionen der Controls nicht mehr: das Label "Manfred Kunz" ist weg....

Übrigens: wie kann man eigentlich am einfachsten die Express++-Version feststellen? Meine ist jedenfalls schon älter...


Hans
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Autoresize und Stack Overflow

Beitrag von Tom »

@Hans:

Einfach mal in der Doku nach "DC_VersionExpress()" schauen. Mit dem Parameter "0" liefert es den kompletten Versionsnamen, mit "3" zusätzlich den Build. Mit Alt-D kannst Du das über DC-Dot in der laufenden App machen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Autoresize und Stack Overflow

Beitrag von Manfred »

Hi,

datt hann isch mir jedach....

Ver 1.919249

Also ich packe das Teil unten rechts an und verkleiner und vergrößere es ca. 5-6 Mal und dann ist Ende.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Autoresize und Stack Overflow

Beitrag von Manfred »

Interessant, interessant,

ich habe es auf einem anderen Rechner probiert und jetzt kommt es:

Unter Windows XP Oberfläche, also Luna, keine Probleme, aber unter Windows klassisch, also 2000 kackt das Teil ab.
Jetzt werde ich das auf dem einen auch mal probieren, mit Luna.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Autoresize und Stack Overflow

Beitrag von Manfred »

Nö,
muß ich revidieren. Auf dem PC, auf dem Xbase++ und Express++ installiert sind, ist es egal, welche Oberfläche installiert ist. Bei beiden schmiert das Programm ab, wenn ich dieses Spielchen treibe. Auf dem anderen PC ist kein Xbase++ usw. drauf. Der Rechner dient nur dem Testen. Ob es da Unterschiede gibt?

Hm, was tun sprach Zeuss?

Dann werde ich wohl den Problem PC nochmal neu installieren müssen um zu testen, ob es dann weg ist. Ist aber echt blöde. mach das mal dem Anwender klar.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten