AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TOfficeButton mit transparentem Icon

Offene Frage von "Bambuti2000"
Ein Thema von Bambuti2000 · begonnen am 4. Jan 2010 · letzter Beitrag vom 6. Jan 2010
Antwort Antwort
Benutzerbild von Bambuti2000
Bambuti2000

Registriert seit: 11. Okt 2007
Ort: Troisdorf
44 Beiträge
 
Delphi XE2 Architect
 
#1

TOfficeButton mit transparentem Icon

  Alt 4. Jan 2010, 17:18
Hi allerseits,

Ich habe ein Outlook 2007 AddIn und habe nach viel Probieren und Nachlesen endlich geschafft die erstellten Buttons mit Bildern/Icons zu versehen.

Jetzt das Problem:

Ich bekomme einfach keine Transparenz hin.
Hat einer von euch evtl. schon mal Office-Leisten programmiert, oder hat jemand Lösungsvorschläge für mich??

Hier mal ein Codeschnippsel...
Delphi-Quellcode:

  // create the command bar for Outlook
  FOutlookBar := CoOutlookApplication.Create;
  FCommandBar := GetCommandBar(FOutlookBar.ActiveExplorer.CommandBars, 'fit4pc - Leiste', True);

...

    // create the command bar button
    BtnBmp:=TBitmap.Create;
    try
      BtnBmp.LoadFromResourceName(hInstance, 'fit4pcICON');
      BtnPic:=TPicture.Create;
      try
        BtnPic.Assign(BtnBmp);
        try
          getOLEPicture(BtnPic, BtnPicDisp);
        except
          ShowMessage('Fehler: getOLEPicture (HTML)'); //nur während der Testphase Fehler ausgeben
        end;
      except
        ShowMessage('Fehler: Assign BMP to Picture (HTML)'); //nur während der Testphase Fehler ausgeben
      end;
      BtnPic.Free;
    except
      ShowMessage('Fehler: Load BMP From Resource (HTML)'); //nur während der Testphase Fehler ausgeben
    end;
    BtnBmp.Free;

    FURLButton := GetOfficeButton(FCommandBar, 'fit4pcURLBtn', True, URLButtonClick, 'www.fit4pc.de', 'Besuchen Sie uns im Internet');
    FURLButton.Style:=msoButtonIconAndCaption;
    FURLButton.Icon:=BtnPicDisp;
Ist vielleicht nicht einwandfrei programmiert, aber ist im Moment ja noch in der Test/Entwicklungsphase.

Dank im Voraus
lg Bambuti2000
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: TOfficeButton mit transparentem Icon

  Alt 4. Jan 2010, 17:54
Lädst du eine PNG-Datei? Kannst du einen Screenshot anhängen, wie denn das Icon im Moment in Outlook aussieht?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bambuti2000
Bambuti2000

Registriert seit: 11. Okt 2007
Ort: Troisdorf
44 Beiträge
 
Delphi XE2 Architect
 
#3

Re: TOfficeButton mit transparentem Icon

  Alt 5. Jan 2010, 09:10
Hi Armin,

Ich habe es bis jetzt nur mit BMP und ICO geschafft überhaupt etwas anzuzeigen. Leider werden ICO nur als schwarzes Kästchen angezeigt (siehe ScreenShot). PNG und GIF bekomme ich gar nicht erst rein (deshalb die ganzen Exeption-Anweisungen). Hab mit PNG und GIF aber auch noch nicht all zu viel Zeit verbracht. Ich denke nur dass "Microweich" doch eigentlich auch nur Icon's aus DLL's in die Leisten lädt.
Im Anhang hab ich mal ein ScreenShot wie es bis jetzt aussieht, das BMP sollte bei dem Versuch eine Transparenz am oberen und unteren Rand darstellen, klappt aber auch nicht.

Gruß Stefan

PS: Übrigens wird das ICO nur schwarz beim "Assign" ins TPicture. Beim direkten Laden (...LoadFromFile...) bekomme ich gar nichts angezeigt.
Miniaturansicht angehängter Grafiken
oladdin_214.jpg  
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: TOfficeButton mit transparentem Icon

  Alt 5. Jan 2010, 11:03
Ich wollte gerade mal deinen Code probieren, nur hab ich auf die Schnelle keine Ahnung woher ich die Outlook_TLB oder welche Unit ich einbinden muss um die Methode getOLEPicture ausführen zu können. Probier doch mal das folgende:

Delphi-Quellcode:
var
  img : TImage; // <- Hat seit Delphi 2007 oder 2009 (?) PNG-Unterstützung
begin
  img := TImage.Create(nil);
  try
    img.Picture.Bitmap.LoadFromResourceName(hInstance, 'fit4pcICON');
    try
      getOLEPicture(img.Picture, BtnPicDisp); // <- Ich habe hier keine Ahnung, was getOLEPicture erwartet, da meine Hilfe dazu nichts findet (D2010)
    except
      ShowMessage('Fehler: getOLEPicture (HTML)'); //nur während der Testphase Fehler ausgeben
    end;
  finally
    FreeAndNil(img);
  end;
Edit: Ich habe gerade gesehen, dass du mit Delphi 7 arbeitest. Da brauchst du die PngComponents, wenn du PNGs verwenden magst:
http://cc.embarcadero.com/Item/26127 (keine Ahnung, ob diese Version mit D7 läuft)
http://www.thany.org/article/18/VCL (diese Version müsste eigentlich mit D7 laufen)
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bambuti2000
Bambuti2000

Registriert seit: 11. Okt 2007
Ort: Troisdorf
44 Beiträge
 
Delphi XE2 Architect
 
#5

Re: TOfficeButton mit transparentem Icon

  Alt 5. Jan 2010, 14:09
Also,
ich hab mal die pngimage-Compo mit Eingebunden. Leider wird aber wie bei einem Icon "NIX" angezeigt. Ich wollte es zwar transparent, aber soooo transparent ist mir nun auch nicht recht.
Desweiteren hab ich die Outlook_TLB ... ich glaube ... bin mir aber nicht mehr ganz sicher ... selber erstellt.
Geht über "Typbibliothek importieren..." wenn ich mich nicht täusche. Leider ist man dann, so glaube ich zumindest, etwas eingeschränkt was die Office/Outlook -Version(en) angeht, ist aber nur 'ne Vermutung.

Nun ja, leider bin ich immer noch nicht weiter, bin aber schon mal dankbar das sich überhaupt jemand Gedanken dazu macht. Um das ganze noch abzurunden werde ich mal das Projekt Zippen und mit anfügen, für's bessere Verständnis und evtl. zum selber testen..

Gruß Stefan
Angehängte Dateien
Dateityp: zip oladdin_175.zip (798,5 KB, 10x aufgerufen)
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: TOfficeButton mit transparentem Icon

  Alt 5. Jan 2010, 16:24
Was machst das Ding denn im Allgemeinen überhaupt? Vielleicht teste ich es schnell, wenn es nicht zu viel unfug macht. Bin aber kein Outlook-Nutzer und von dem her habe ich da kein Mail-Konto angelegt. Ebenso habe ich Office 2007 installiert. Macht das was? Muss ich für das Testen Outlook immer neu starten?

Edit: Hab das Ding leider nicht zum Laufen bekommen. Es hagelte einen Fehler nach dem anderen. Seltsam ist auch, dass die Outlook_TLB sich selbst in der uses einbindet, oder ich habe irgendwelche Dateien nicht.

Andere Idee: Hast du schon mal versuchtein Icon aus der Windows-Icon-DLL (mir fällt gerade deren Name nicht ein ) zu laden?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bambuti2000
Bambuti2000

Registriert seit: 11. Okt 2007
Ort: Troisdorf
44 Beiträge
 
Delphi XE2 Architect
 
#7

Re: TOfficeButton mit transparentem Icon

  Alt 6. Jan 2010, 10:31
Moin, moin,

das AddIn erstellt eigentlich nur eine neue Outlook Symbolleiste mit zwei Schaltern. Einer ruft eine Internetseite auf und der andere erstellt eine neue Mail mit angegebenem Empfänger. Zusätzlich wird ein Kontakteintrag erstellt (That's it).
Da das Projekt einige Zeit (ca. 1/2 Jahr) geruht hatte, weil ich keine Zeit hatte, weiß ich leider auch nicht mehr genau wie ich das mit TLB... hinbekommen hab. Ich weiß nur noch dass es 'ne ziemliche Fummelei war.
Da ich auch Office 2007 nutze hab ich natürlich auch nur unter dieser Version getestet.
Und normalerweise sollte es nicht nötig sein nach Änderungen das AddIn jedesmal neu einzurichten, vorausgesetzt es beinhaltet keine gravierenden Fehler. Wichtig ist nur die Reg-Keys vor dem ersten mal zu setzten (vorher den Pfad in der Reg-Datei anpassen).
Für den Fall dass du es mal Testen möchtest, aber nicht kompiliert bekommst, hänge ich mal die fertige DLL an.


Icons aus der OUTLLIBR.DLL (Outlook Icon Library) habe ich noch nicht versucht, werd ich aber direkt mal testen.

Gruß
Stefan


Hab da noch folgendes gefunden... Link
Leider nur in VB, aber vielleicht hilft das ein wenig weiter ...werde mich mal weiter im Netz umsehen und probieren.
Angehängte Dateien
Dateityp: dll oladdin_716.dll (1,01 MB, 0x aufgerufen)
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz