Autor Beitrag
MartelKombatADH
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.08.14 11:33 
Ich versuche gerade die Outlook Kategorien aufzulisten usw. siehe Titel
Ich kann die Besteheneden Kategorien auch z.B. einem Termin zuweisen, eine neue Kategorie anlegen inklusive Farbe.

Was ich nicht kann ist überprüfen ob es eine Kategorie schon gibt bevor ich sie anlege (Habe einen C#-Code gefunden, kann ihn aber nicht in Delphi übersetzen).
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
myNamespace = outLookApp.GetNamespace("MAPI");
if (myNamespace.Categories["liveMeeting"] == null)
{
  myNamespace.Categories.Add("liveMeeting", OlCategoryColor.olCategoryColorDarkRed, OlCategoryShortcutKey.olCategoryShortcutKeyNone);
}
newEvent.Categories = "liveMeeting";

Mein Code
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Outlook := CreateOLEObject('Outlook.Application');
NameSpace := Outlook.GetNameSpace('MAPI');

//*** Kalender-Ordner öffnen
memLog.Lines.Add(DateTimeToStr(Now) + ': GetDefaultFolder');
Ordner := NameSpace.GetDefaultFolder(olFolderCalendar);

//nil gibt vor dem compilieren schon einen Fehler
if NameSpace.Categories['Bla'] = '' then begin
  NameSpace.Categories.Add('Bla'15);
end;

Fehler: Unzulässige Parameteranzahl

EDIT1: Hate mein Thema noch nicht fertiggeschrieben
EDIT2: ich arbeite mit Delhpi 5


Zuletzt bearbeitet von MartelKombatADH am Mi 27.08.14 15:06, insgesamt 1-mal bearbeitet
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 27.08.14 12:48 
Und wo genau tritt der Fehler auf?!?

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mi 27.08.14 13:03 
Naja, also wenn hier hier mal nachzähl :
ausblenden C#-Quelltext
1:
2:
3:
4:
myNamespace.Categories.Add(
"liveMeeting"// Parameter 1
OlCategoryColor.olCategoryColorDarkRed, // Parameter 2
OlCategoryShortcutKey.olCategoryShortcutKeyNone); //Parameter 3


und dann hier nachzähle:
ausblenden Delphi-Quelltext
1:
2:
3:
NameSpace.Categories.Add(
'Bla',  // Parameter 1
15);   // Parameter 2


würde ich sagen dass der Fehler hier auftritt.
MartelKombatADH Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.08.14 13:27 
user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
Naja, also wenn hier hier mal nachzähl :
ausblenden C#-Quelltext
1:
2:
3:
4:
myNamespace.Categories.Add(
"liveMeeting"// Parameter 1
OlCategoryColor.olCategoryColorDarkRed, // Parameter 2
OlCategoryShortcutKey.olCategoryShortcutKeyNone); //Parameter 3


und dann hier nachzähle:
ausblenden Delphi-Quelltext
1:
2:
3:
NameSpace.Categories.Add(
'Bla',  // Parameter 1
15);   // Parameter 2


würde ich sagen dass der Fehler hier auftritt.


Naja das ist es leider nicht... Erstellen kann ich meine Kategorie ja(auserhalb der if-Abfrage), der letzte Parameter ist nicht notwendig
und 15 meint die Farbe schwarz
msdn.microsoft.com/d...8v=office.15%29.aspx

Ich glaube das es die Klammern sind. Da weiß ich nicht mehr weiter.
Habe hier auch einen Link mit Code um die ganzen Kategorien aufzulisten. blos weiß ich nicht wie ich es in Delphi realiesiere.
msdn.microsoft.com/e...8v=office.15%29.aspx

Da macht mir die foreach Probleme. Ich weiß nicht welchen Variablen-Typ ich benutzen soll/kann (OleVariant schon versucht).
MartelKombatADH Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.08.14 14:33 
Ich habe es jetzt geschaft (nach 2 tagen suchen :evil: :oops: ) meine Kategorien "aufzulisten"

Eine Änliche Variante hatte ich auch mal versucht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
      for ii := 1 to NameSpace.Categories.Count -1 do begin
        if String(NameSpace.Categories.Item(ii)) <> 'Bla' then begin
          ShowMessage(NameSpace.Categories.Item(ii));
        end;
      end;


Ich hatte dort aber immer mit Eckigen-Klammern gearbeitet... Man kann statt dem Integer wert in der Klammer auch den gesuchten Namen eintragen.
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mi 27.08.14 14:37 
Hast du es mal so probiert?

ausblenden Delphi-Quelltext
1:
if NameSpace.Categories['Bla'] = null then begin					
MartelKombatADH Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.08.14 15:01 
user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
Hast du es mal so probiert?

ausblenden Delphi-Quelltext
1:
if NameSpace.Categories['Bla'] = null then begin					

ja aber mit nil, was ja nicht funktioniert.

Wie bei meinem letzten Post zu sehen, geht das ja dan so.
ausblenden Delphi-Quelltext
1:
2:
3:
if String(NameSpace.Categories.Item('Bla')) = '' then begin
  ...
end;
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mi 27.08.14 15:04 
Versuchs mit "null" (aus Unit Variants) nicht mit "Nil"

EDIT : Achso, es geht jetzt also so wie du es wolltest?