Announcement

Collapse
No announcement yet.

Artikel im neusten dot-net.magazin

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

  • Artikel im neusten dot-net.magazin

    Im neusten dot.net-magazin hatte Andreas Kosch einen sehr interessanten Beitrag geschrieben. Hier nahm er Bezug auf eine OutlookToolBar, die jemand entwickelt hat (habe das Heft jetzt nicht neben mir liegen, daher fällt mir der Name des Autoren nicht ein), die - so habe ich es verstanden - doch frei genutzt werden darf. Jetzt hatte ich nach den Quellen der OutlookToolBar im Netz gesucht, doch nichts passendes gefunden.

    Und dann würde mich interessieren, wie es sich mit der "UtilityLibrary" verhält: Ist dies ein Teil der OutlookToolBar-Klasse? Win32 usw. ist für mich noch etwas fremd - doch fand ich den Beitrag richtig toll, da man hierbei einiges gut lernen kann.

    Danke

    Rene

  • #2
    Hallo,

    >..OutlookToolBar, die jemand entwickelt hat ..

    diese Klassen (und viele andere mehr) lassen sich unter <i>
    http://www.codeproject.com/</i> finden.

    &gt;..UtilityLibrary..Ist dies ein Teil der OutlookToolBar-Klasse?

    Ja, denn vom Autor der OutlookToolBar-Klasse (Carlos H. Perez) stammen weitere, sehr nützliche Dinge (Visual Studio .NET Menu Style
    ; VSNetToolbar; VSNetColorPicker; VSNetComboBox usw.), die alle auf den gleichen Tool-Klassen aufsetzen.

    Comment


    • #3
      Vielen Dank Andreas, für den Hinweis.
      Eine Frage hätte ich noch zum "imageList". Hier hast du x-Bilddaten eingefügt. Ich bekomme hier folgende Fehlermeldung:

      ------------Fehlermeldung----------------------

      Eine nicht behandelte Ausnahme des Typs 'System.Resources.MissingManifestResourceException ' ist in mscorlib.dll aufgetreten.

      Zusätzliche Informationen: Für die angegebene Kultur (oder die neutrale Kultur) in der Assembly konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass 'IconImages.resources' richtig in die Assembly 'quelleshop' eingebettet wurde.
      baseName: IconImages locationInfo: <null> resource file name: IconImages.resources assembly: quelleshop, Version=1.0.1046.41399, Culture=neutral, PublicKeyToken=null

      -------------------------------------------------------------------

      Ich habe als Bsp. lediglich ein 15x15 Bmp im imageList eingefügt.

      Stoppen tut der Code in der Methode InitializeImageLists() in der Zeile : "Bitmap icons = (Bitmap)rmListImages.GetObject("ListIcons");
      "

      Was mache ich hier falsch

      Comment


      • #4
        Hallo,

        der Autor <i>Carlos H. Perez</i> der OutlookBar-Klasse sieht in seiner Implementierung den folgenden Weg vor:<br>
        1. Solution bindet Datei <i>IconImages.resX</i> ein <br>
        2. Programm fordert diese Ressourcen an: rmListImages = new ResourceManager("IconImages", thisAssembly);<br>
        3. Programm holt sich Icons ab: Bitmap icons = (Bitmap)rmListImages.GetObject("OutlookLargeIcons" );

        Da sich mit einer ImageList besser hantieren lässt, habe ich den originalen Weg an einer Stelle auskommentiert und durch das Umkopieren aus der eigenen ImageList ersetzt:
        <pre>
        outlookLargeIcons = new ImageList();
        /*
        icons = (Bitmap)rmListImages.GetObject("OutlookLargeIcons" );
        icons.MakeTransparent(Color.FromArgb(255,0,255));
        outlookLargeIcons.Images.AddStrip(icons);
        */
        outlookLargeIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
        outlookLargeIcons.ImageSize = new System.Drawing.Size(30, 30);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[0]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[1]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[2]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[3]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[4]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[5]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[6]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[7]);
        outlookLargeIcons.Images.Add(imageListOutlookBar.I mages[8]);
        outlookLargeIcons.TransparentColor = System.Drawing.Color.Transparent;
        </pre>

        &gt;Bitmap icons = (Bitmap)rmListImages.GetObject("ListIcons"); " <br>
        &gt;..in der Assembly konnten keine Ressourcen gefunden werden..

        Diese Fehlermeldung deutet darauf hin, dass nicht die ImageList ausgewertet wird, sondern die Grafiken über den ResourceManager in der resX-Datei gesucht werden. Damit die Umbau-Arbeiten am Sourcecode von <i>Carlos H. Perez</i> nicht zu groß werden, würde ich einfach die Ressourcen-Datei <i>IconImages.resX</i> mit in das eigene Projekt kopieren und über den Solution Explorer einbinden. Auch wenn die dort enthaltenen Grafiken vom Programm gar nicht genutzt werden, kann der originale Sourcecode diese Ressourcen erfolgreich laden

        Comment


        • #5
          <i>Diese Fehlermeldung deutet darauf hin, dass nicht die ImageList ausgewertet wird, sondern die Grafiken über den ResourceManager in der resX-Datei gesucht werden. Damit die Umbau-Arbeiten am Sourcecode von Carlos H. Perez nicht zu groß werden, würde ich einfach die Ressourcen-Datei IconImages.resX mit in das eigene Projekt kopieren und über den Solution Explorer einbinden. Auch wenn die dort enthaltenen Grafiken vom Programm gar nicht genutzt werden, kann der originale Sourcecode diese Ressourcen erfolgreich laden.
          </i>

          ...und genau über diesen Punkt, Andreas, komme ich nicht hinaus. Ich versuche dir noch mal meine Vorgehensweise zu schildern.
          Ich kopiere über den DateiExplorer die IconImages.resx in mein neues Projektverzeichnis. Dann rufe ich VS.NET auf, aktuallisiere die Projektansicht, markiere die Datei IconImages.resx und füge sie über das Kontexmenü dem Projekt hinzu. Als BuildAktion ist "Eingebettete Ressource" eingestellt. Das sollte es doch dann gewesen sein - Oder??

          Es ist mir wichtig, den Aufbau als solches zu verstehen, da ich mir im nächsten Schritt vorgestellt habe, deine Ausführungen zum Property-Grid umzusetzen. Die OutlookToolBar könnte man nämlich dahingehend umbauen, dass über benutzerdefinierte "Setup"-Einstellungen einzelne "OutlookBarBand" sich hinzufügen lassen und hier dann wiederum einzelne Icons/Images. Wie sich das im Ansatz realiseren lässt, hast du ja durch den Einsatz des imagesListOutlookBar schon angedeutet.

          Leider scheitet erst einmal alles an der erfolgreichen Einbettung der IconImages.resx.
          Bliebe meine letzte Frage hierzu: Wie kann ich mir eigentlich die IconImages.resx selbst aufbauen - sprich mit welchem Instrument übertrage ich den Binärstring in die XML-Datei.

          Vielen Dank

          Ren

          Comment


          • #6
            Hallo, ich muss noch mal auf die Fundstelle i dotnetmagazin zurück kommen, da du in diesem Heft noch etwas zu einem Propertiebox geschrieben hast - ich hab hier ein Berg Zeitschriften, finde den Beitrag nicht mehr.

            Danke

            Ren

            Comment

            Working...
            X