Announcement

Collapse
No announcement yet.

"SysIPAddress32"-Anzeigeproblem

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

  • "SysIPAddress32"-Anzeigeproblem

    Hallo.

    Hat schon jemand mit diesem IP-Eingabefeld Erfolg gehabt? Ich versuche gerade, die in einem kleinen Programm zu benutzen. (Klein im Sinn von NonVCL ;o)). Allerdings wird dieses Eingabefeld nicht angezeigt, wenn ich nicht min. auch die Unit "Controls.pas" benutze. Das kommt nun allerdings dem Gedanken von NonVCL nicht unbedingt nahe. (

    Ich habe die Common Controls mit "InitCommonControlsEx" (und dem Flag "ICC_INTERNET_CLASSES") initialisiert, aber - wie gesagt - das Programm weigert sich beharrlich, das Eingabefeld anzuzeigen, wenn nicht min. die o.g. Unit vorhanden ist.

    Kennt jemand den Grund dafür?

    Gruß,
    Mathias.

  • #2
    Soll das richtig sein:

    <pre>InitCommonControls;
    InitCommonControlsEx(icc);</pre>

    Offensichtlich ja, denn <b>so</b> sehe ich das Control. Mit anderen Worten: Thema erledigt.
    )

    Gruß,
    Mathias

    Comment


    • #3
      Ich hatte es als RTL-Bug eingetragen, ist aber durch den Datenverlust wieder verschwunden.<br>
      Die Wrapper-Funktion für InitCommonControlsEx in der RTL geht davon aus, dass die entsprechende DLL bereits geladen ist.<br>
      Dies ist aber bei einem leeren Projekt nicht der Fall, da die RTL selbst keine Funktionen aus der entsprechenden DLL direkt importiert (die VCL schon).<br>
      Dadurch, dass Du InitCommonControls verwendest, wird die DLL geladen (da die nicht-Ex-Funktion direkt importiert wird) und somit der Bug umgangen.<br>
      Es spielt dadurch keine Rolle, an welcher Stelle Du InitCommnoControls (oder jede andere nicht gewrappte Funktion aus der DLL) verwendest damit InitCommonControlsEx funktioniert.

      - nico

      ps: Delphi 5-6, warscheinlich auch vorherige Versionen

      Comment


      • #4
        Danke für den Tipp, Nico. Da ich ohnehin schon in der "CommCtrl.pas" rumgefummelt habe, habe ich gleich noch die Funktion von Borland geändert, so dass jetzt in jedem Fall versucht wird, die DLL zu laden (wenn noch nicht geschehen).

        Und nun geht´s auch nur mit "InitCommonControlsEx".
        )

        Gruß,
        Mathias

        Comment

        Working...
        X