Announcement

Collapse
No announcement yet.

Win32 API Fehler!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Win32 API Fehler!

    Habe ein Form mit einem Pagecontrol-Objekt mit ca.10 Seiten und jede Menge Editfields auf den Seiten. Mein Problem : wenn ich unter Win 9x das Form öffnen möchte erscheint obiger Fehler und noch schlimmer das Form wird noch nicht einmal in der IDE angezeit, unter Win NT 4 mit dem ich hauptsäschlich entwickele erscheint kein Fehler! Ich benutze Delphi 4.0 C/S
    , aber auch mit Delphi 5.0 gibt es den Fehler. Brauche dringend ein Tip.

    Vielen Dank! Oliver

  • #2
    Hallo,

    welcher API-Fehler (Fehlernummer) erscheint? Wenn sehr viele Controls verbaut werden, kann man auch unter Windows 9x sehr schnell an die Grenzen der alten 16-Bit-Teile stossen

    Comment


    • #3
      Was kann ich tun, wenn es wirklich ein Speicherproblem ist.
      Leider habe ich zur Zeit andere Projekte am laufen und kann
      mich deswegen nicht voll um diese Sache kümmern

      Comment


      • #4
        Hallo,

        am besten wird es sein, TPageControl vollständig durch TTabControl zu ersetzen. In diesem Fall werden zur Laufzeit nur die Controls erzeugt, die auf der vom Benutzer angewählten Registerseite sichtbar sind

        Comment


        • #5
          Guten Tag Herr Kosch,

          ihr Tip mit dem TTabControl hat es mir zumindest möglich gemacht das die Anwendung wieder so eben läuft. Allerdings gibt es immer noch so kleine Nebenerscheinungen. Das Icon für das Programm wird zur Laufzeit nicht mehr in der Statusbar von Win95 angezeigt, Änderungen bei der Erscheingsweise des Cursors ( Default zu SqlWait ) führt zum verschwinden des Cursors ( nach SqlWait zu Default ist er wieder da ).
          Wenn ich ein Form in der Applikation erzeuge und später wieder schließe ( mit Action = caFree ) wird nur ein kleiner Teil des alloziierten Speichers wieder freigegeben. Irgend ein Tip?

          Danke! Oliver Jürgen

          Comment


          • #6
            Hallo,

            das hört sich so an, als ob ein Ressourcenblock der Anwendung grösser als 64 kByte ist. Microsoft hat in seiner <i>Knowlegde Base</i> dazu eine Warnung veröffentlich, dass unter Windows 9x aufgrund der "alten" 16-Bit-Fragmente im USER-Modul bei grossen Ressourcenblöcken Daten verloren gehen bzw. überschrieben werden und somit das geschilderte Verhalten auftreten kann. Um dies zu prüfen, reicht es aus, einen Blick auf die Grösse aller RES- und DFM-Dateien zu werfen. Hat man Grafiken/Bitmaps direkt in den Formularen abgelegt, sollten zum Test diese Ressourcen in eine eigene Ressourcen-DLL (= anderes Modul) ausgelagert werden, deren Inhalt dann erst zur Laufzeit den Formularen zugewiesen wird (d.h. auch die DLL kann dann erst bei Bedarf geladen werden - wobei Windows die angeforderten Ressourcen automatisch erst bei Bedarf aus den Ressourenblöcken lädt)

            Comment

            Working...
            X