Announcement

Collapse
No announcement yet.

TImageList nochmals

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

  • TImageList nochmals

    Hallo an alle, die TImageList mit Delphi einsetzen,
    <p>in der Vergangenheit waren immer wieder Diskussionen zu dem Thema. Darum
    fasse ich noch mal zusammen und teile hier meinen aktuellen Stand mit.
    <p>Unter bestimmten Bedingungen tritt auf Win9x Rechner das Problem auf,
    da&szlig; die ToolBar oder das PageControl die von Delphi zugewiesenen
    Grafiken der ImageList einfach nicht anzeigen. Besonders verheerend ist
    dies nat&uuml;rlich bei der Toolbar, die abgesehen von den Hint's die Identifizierung
    f&uuml;r den Benutzer ja nur &uuml;ber diese Images erm&ouml;glicht.
    <p>Also Fehlerursache kamen immer wieder S3(Trio)-Chip's zur Sprache. Ebenso
    wurde ein Ressourcen problem, bei Microsoft unter der ID Q182819&nbsp;
    bekannt, zur Sprache gebracht. Microsoft bietet auch ein Tool zum Patchen
    der Exe an, aber bei mir zum Beispiel, hat es einfach nicht gegriffen.
    <p>Um irgendwelche Gr&ouml;&szlig;enprobleme auszuschlie&szlig;en habe
    ich letztendlich eine kleine Testanwendung geschrieben, mit einer Imagelist
    mit einigen Grafiken, einer Toolbar und einem PageControl. Auch da trat
    der Fehler auf. Wo dort jedoch fehlertr&auml;chtige 'large Ressources'
    sein sollten, ist mir schleierhaft.
    <p>Wir haben auf den betreffenden Rechnern auch schon die ComDlg32.dll
    geupdatet. Tja, h&auml;tten wir auch bleiben lassen k&ouml;nnen. Wie gesagt,
    nicht jeder mit Win9x, S3 Trio und alter ComDlg32.dll wird diesen Fehler
    reproduzieren k&ouml;nnen. Anscheinend sind noch weitere Bedingungen f&uuml;r
    diesen Fehler notwendig.
    <p>Hinweis: Im allgemein sind die Fehler somit oft auf&nbsp; '&auml;lteren'
    Laptops reproduzierbar, da hier offensichtlich h&auml;ufiger alle Bedingungen
    f&uuml;r den Bug erf&uuml;llt sind. Ich habe Inprise/Borland das Problem
    zwar geschildert -> no response.
    <p>Achso, ob Delphi 5 oder Delphi 5 mit SP1 ist ebenso egal f&uuml;r diesen
    Bug.
    <p><b>Schlechte aber ERFOLGREICHE </b>L&ouml;sung:
    <p>Vor der endg&uuml;ltigen Auslieferung der Exe exportiert man ALLE ImageList's
    der betreffenden Anwendung. Dann l&auml;dt man diese Bitmap's in PAINTBRUSH
    und speichern es unter Bitmap 16 Farben. Man l&ouml;scht die Inhalte der
    ImageList's in Delphi und l&auml;dt die frischen 4bit Bitmaps in die ImageList's.
    OHNE zu speichern ERZEUGT man eine neue Exe-Datei der betreffenden Anwendung.
    Sobald Ihr mit Delphi einmal das betreffende Form gespeichert habt, beginnt
    der Spa&szlig;, zumindest ab dem Laden in die ImageList, f&uuml;r jede
    Auslieferung wieder von vorn.
    <p>Wie gesagt, die hier gezeigte Methode ist nicht grade edel, aber <b>WIR</b>
    haben SEIT dieser Technik von unseren Beta-Testern keine einzige negative
    R&uuml;ckmeldung zu diesem Problem mehr, also es scheint zu funktionieren.
    Die Tatsache, das dieser Fehler nicht in Anwendungen wie MS-Office auftritt
    legt hier doch zumindest ein Delphi-Fehlverhalten nahe. Intern speichert
    Delphi n&auml;mlich wohl die ImageList immer mit 32bit.
    <p><b>Meine Frage</b>: hat jemand eine andere L&ouml;sung gefunden. Wenn ja, wir
    haben bei uns noch einen alten Laptop, der es momentan als derartige Testplatform
    tut. Ich w&uuml;rde alternative L&ouml;sungen gern da mal probieren.
    <p>Danke, Mario
    Schöne Grüße, Mario
Working...
X