Announcement

Collapse
No announcement yet.

TLabel in Delphi 6

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

  • TLabel in Delphi 6

    Hallo,
    ich habe mein Projekt von Delphi 3 auf Delphi 6 portiert und ein kleines Problem mit TLabeln.
    Ich platziere ( setBounds() ) in einem Formular auf einem Panel ca. 400 Tlabel-Komponenten über 32 TGraphicControls. Mit Delphi 3 hatte die ganze Prozedur keine zehntel Sekunde gebraucht. Mit Delphi 6 braucht die gleiche Prozedur über 3 Sekunden.
    Alle verwendeten Komponenten sind mit denen in Delphi 3 identisch.
    Bei Tests habe ich festgestellt, dass eine verdopplung von Tlabel-Komponenten mit gleichem Parent zu einer vervierfachung der benötigten Zeit führt.
    Ich hoffe, dass sich hier jemand findet, der mir bei meinem Problem helfen kann. Danke im vorraus.

  • #2
    vor dem Erstellen und Einfügen der TLabel mal Panel.DisableAlign und nach dieser Aktion Panel.EnableAlign aufrufen. Ich vermute das das Neuzeichnen und Neuausrichten seit Delphi 5 wesentlich komplexer in der VCL gehandhabt wird. D.h. die neuen features seit D4 in der VCL führen zu langsammeren Verhalten.<br>

    Gruß Hage

    Comment


    • #3
      Herzlichen Dank,
      das nenn ich eine prompte Antwort.
      Es scheint sogar schneller zu sein. Lediglich die TGraphicControl sind durcheinander gekommen zu sein ( align = alLeft ). Aber dafür finde ich noch eine Lösung.
      Wolfgan

      Comment


      • #4
        Ich habe festgestellt das wenn man zwischen .DisableAlig und .EnableAlign die Controls über .Left/.Top/.BoundsRect richtig ausrichtet es schneller geht. Die AlginControls Methode ist sehr langsam. Nach .EnableAlign wird diese Methode intern aufgerufen und alle Controls neu ausgerichtet. Sind aber schon alle Controls an der richtigen Position geschiet im Grund garnichts. Ändern aber Controls ihre Position/Größe dann zieht das meistens die Änderung vieler anderer Controls nachsich. Dieser Prozess kann sich "aufschauckeln" so lange bis kein Control mehr sein Position/Größe ändert.<br>

        Gruß Hage

        Comment

        Working...
        X