AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MediaPortal C# Reference -> Delphi

Ein Thema von schwa226 · begonnen am 9. Feb 2011 · letzter Beitrag vom 9. Feb 2011
Antwort Antwort
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

MediaPortal C# Reference -> Delphi

  Alt 9. Feb 2011, 17:48
Hallo,

ich habe mal eine Frage zu diesem Thema. Ich habe einen Delphi Win32 Source.
Nun möchte ich was mit Mediaportal machen.

In VS2008 füge ich Referenzen zu der Core.dll z.B. hinzu.

Dann bekomme ich im VS2008 sowas:

Key[from metadata]
Code:
using System;

namespace MediaPortal.GUI.Library
{
    public class Key
    {
        public Key();
        public Key(Key key);
        public Key(int iChar, int iCode);

        public int KeyChar { get; }
        public int KeyCode { get; }
    }
}
Oder auch sowas:
Action [from metadata]
Code:
using System;
using System.Windows.Forms;

namespace MediaPortal.GUI.Library
{
    public class Action
    {
        public float fAmount1;
        public float fAmount2;
        public Key m_key;
        public MouseButtons m_mouseButtons;
        public string m_SoundFileName;
        public Action.ActionType wID;

        public Action();
        public Action(Action.ActionType id, float f1, float f2);
        public Action(Key key, Action.ActionType id, float f1, float f2);

        public MouseButtons MouseButton { get; set; }
        public bool ShouldDisableScreenSaver { get; }
        public string SoundFileName { get; set; }

        public bool IsUserAction();

        public enum ActionType
        {
            ACTION_INVALID = 0,
            ACTION_MOVE_LEFT = 1,
            ACTION_MOVE_RIGHT = 2,
            ACTION_MOVE_UP = 3,
            ACTION_MOVE_DOWN = 4,
            ACTION_PAGE_UP = 5,
            ACTION_PAGE_DOWN = 6,
            ACTION_SELECT_ITEM = 7,
            ACTION_HIGHLIGHT_ITEM = 8,
            ACTION_PARENT_DIR = 9,
            ACTION_PREVIOUS_MENU = 10,
            ACTION_SHOW_INFO = 11,
            ACTION_PAUSE = 12,
            ACTION_STOP = 13,
            ACTION_NEXT_ITEM = 14,
            ACTION_PREV_ITEM = 15,
            ACTION_FORWARD = 16,
            ACTION_REWIND = 17,
            ACTION_SHOW_GUI = 18,
            ACTION_ASPECT_RATIO = 19,
            ACTION_STEP_FORWARD = 20,
            ACTION_STEP_BACK = 21,
            ACTION_BIG_STEP_FORWARD = 22,
            ACTION_BIG_STEP_BACK = 23,
            ACTION_SHOW_OSD = 24,
            ACTION_SHOW_SUBTITLES = 25,
            ACTION_NEXT_AUDIO = 26,
            ACTION_SHOW_CODEC = 27,
            ACTION_NEXT_PICTURE = 28,
            ACTION_PREV_PICTURE = 29,
            ACTION_ZOOM_OUT = 30,
            ACTION_ZOOM_IN = 31,
            ACTION_TOGGLE_SOURCE_DEST = 32,
            ACTION_SHOW_PLAYLIST = 33,
            ACTION_QUEUE_ITEM = 34,
            ACTION_REMOVE_ITEM = 35,
            ACTION_SHOW_FULLSCREEN = 36,
            ACTION_ZOOM_LEVEL_NORMAL = 37,
            ACTION_ZOOM_LEVEL_1 = 38,
            ACTION_ZOOM_LEVEL_2 = 39,
            ACTION_ZOOM_LEVEL_3 = 40,
            ACTION_ZOOM_LEVEL_4 = 41,
            ACTION_ZOOM_LEVEL_5 = 42,
            ACTION_ZOOM_LEVEL_6 = 43,
            ACTION_ZOOM_LEVEL_7 = 44,
            ACTION_ZOOM_LEVEL_8 = 45,
            ACTION_ZOOM_LEVEL_9 = 46,
            ACTION_CALIBRATE_SWAP_ARROWS = 47,
            ACTION_CALIBRATE_RESET = 48,
            ACTION_ANALOG_MOVE = 49,
            ACTION_ROTATE_PICTURE = 50,
            ACTION_CLOSE_DIALOG = 51,
            ACTION_SUBTITLE_DELAY_MIN = 52,
            ACTION_SUBTITLE_DELAY_PLUS = 53,
            ACTION_AUDIO_DELAY_MIN = 54,
            ACTION_AUDIO_DELAY_PLUS = 55,
            ACTION_AUDIO_NEXT_LANGUAGE = 56,
            ACTION_CHANGE_RESOLUTION = 57,
            REMOTE_0 = 58,
            REMOTE_1 = 59,
            REMOTE_2 = 60,
            REMOTE_3 = 61,
            REMOTE_4 = 62,
            REMOTE_5 = 63,
            REMOTE_6 = 64,
            REMOTE_7 = 65,
            REMOTE_8 = 66,
            REMOTE_9 = 67,
            ACTION_PLAY = 68,
            ACTION_OSD_SHOW_LEFT = 69,
            ACTION_OSD_SHOW_RIGHT = 70,
            ACTION_OSD_SHOW_UP = 71,
            ACTION_OSD_SHOW_DOWN = 72,
            ACTION_OSD_SHOW_SELECT = 73,
            ACTION_OSD_SHOW_VALUE_PLUS = 74,
            ACTION_OSD_SHOW_VALUE_MIN = 75,
            ACTION_SMALL_STEP_BACK = 76,
            ACTION_MUSIC_FORWARD = 77,
            ACTION_MUSIC_REWIND = 78,
            ACTION_MUSIC_PLAY = 79,
            ACTION_DELETE_ITEM = 80,
            ACTION_COPY_ITEM = 81,
            ACTION_MOVE_ITEM = 82,
            ACTION_SHOW_MPLAYER_OSD = 83,
            ACTION_OSD_HIDESUBMENU = 84,
            ACTION_TAKE_SCREENSHOT = 85,
            ACTION_INCREASE_TIMEBLOCK = 86,
            ACTION_DECREASE_TIMEBLOCK = 87,
            ACTION_DEFAULT_TIMEBLOCK = 88,
            ACTION_RECORD = 89,
            ACTION_DVD_MENU = 90,
            ACTION_NEXT_CHAPTER = 91,
            ACTION_PREV_CHAPTER = 92,
            ACTION_KEY_PRESSED = 93,
            ACTION_PREV_CHANNEL = 94,
            ACTION_NEXT_CHANNEL = 95,
            ACTION_TVGUIDE_RESET = 96,
            ACTION_EXIT = 97,
            ACTION_REBOOT = 98,
            ACTION_SHUTDOWN = 99,
            ACTION_EJECTCD = 100,
            ACTION_BACKGROUND_TOGGLE = 101,
            ACTION_VOLUME_DOWN = 102,
            ACTION_VOLUME_UP = 103,
            ACTION_TOGGLE_WINDOWED_FULLSCREEN = 104,
            ACTION_PAUSE_PICTURE = 105,
            ACTION_CONTEXT_MENU = 106,
            ACTION_SHOW_MSN_WINDOW = 107,
            ACTION_SHOW_MSN_OSD = 108,
            ACTION_HOME = 109,
            ACTION_END = 110,
            ACTION_LAST_VIEWED_CHANNEL = 111,
            ACTION_IMPORT_TRACK = 112,
            ACTION_IMPORT_DISC = 113,
            ACTION_CANCEL_IMPORT = 114,
            ACTION_SWITCH_HOME = 115,
            ACTION_MOVE_SELECTED_ITEM_UP = 116,
            ACTION_MOVE_SELECTED_ITEM_DOWN = 117,
            ACTION_DELETE_SELECTED_ITEM = 118,
            ACTION_NEXT_SUBTITLE = 119,
            ACTION_SHOW_ACTIONMENU = 120,
            ACTION_TOGGLE_SMS_INPUT = 121,
            ACTION_AUTOZAP = 122,
            ACTION_MPRESTORE = 123,
            ACTION_PREV_BOOKMARK = 140,
            ACTION_NEXT_BOOKMARK = 141,
            ACTION_POWER_OFF = 991,
            ACTION_SUSPEND = 992,
            ACTION_HIBERNATE = 993,
            ACTION_MOUSE_MOVE = 2000,
            ACTION_MOUSE_CLICK = 2001,
            ACTION_MOUSE_DOUBLECLICK = 2002,
            ACTION_AUTOCROP = 9884,
            ACTION_TOGGLE_AUTOCROP = 9885,
            ACTION_TOGGLE_MUSIC_GAP = 9886,
            ACTION_REMOTE_RED_BUTTON = 9975,
            ACTION_REMOTE_GREEN_BUTTON = 9976,
            ACTION_REMOTE_YELLOW_BUTTON = 9977,
            ACTION_REMOTE_BLUE_BUTTON = 9978,
            ACTION_REMOTE_SUBPAGE_UP = 9979,
            ACTION_REMOTE_SUBPAGE_DOWN = 9980,
            ACTION_SHOW_VOLUME = 9981,
            ACTION_VOLUME_MUTE = 9982,
            ACTION_SHOW_CURRENT_TV_INFO = 9983,
            ACTION_NEXT_TELETEXTPAGE = 9984,
            ACTION_PREV_TELETEXTPAGE = 9985,
            ACTION_SWITCH_TELETEXT_HIDDEN = 9986,
            ACTION_SWITCH_TELETEXT_TRANSPARENT = 9987,
            ACTION_SHOW_INDEXPAGE = 9988,
            ACTION_SKIN_NEXT = 9989,
            ACTION_SKIN_PREVIOUS = 9990,
            ACTION_TVGUIDE_INCREASE_DAY = 9991,
            ACTION_TVGUIDE_DECREASE_DAY = 9992,
            ACTION_TVGUIDE_NEXT_GROUP = 9995,
            ACTION_TVGUIDE_PREV_GROUP = 9996,
            ACTION_ROTATE_PICTURE_180 = 9997,
            ACTION_ROTATE_PICTURE_270 = 9998,
        }
    }
}
Wie gehe ich damit in Delphi um?
Die Core.dll als Komponente importieren klappt nicht.
Woher hat VS2008 die Infos das z.B. ACTION_SKIN_NEXT = 9989 ist?
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.605 Beiträge
 
#2

AW: MediaPortal C# Reference -> Delphi

  Alt 9. Feb 2011, 18:11
Weil das in den Metadaten des Assemblies drinsteht.
Was Du da hast in eine .NET Komponente, die kannst Du mit Delphi nicht mal 'so einfach' ansprechen.
Du musst dazu die mscorlib.dll in Deinen Prozessraum laden und kannst dann mit ganz bösen Konstrukten (Stichwort: Reverse P/Invoke) die .NET - Teile ansprechen. Mehr oder weniger Elegant. Etwas einfacher geht das mit Zusatztools wie z.B. Hydra. Hiermit kannst Du .NET-Komponenten ähnlich wie Delphi-Komponenten verwenden nachdem sie einmal importiert wurden. Das ganze hin- und her-konvertieren (marshalling) und die Calls in .NET rein übernimmt dann Hydra für Dich.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#3

AW: MediaPortal C# Reference -> Delphi

  Alt 9. Feb 2011, 18:34
Danke für die Info!
Werd mir das mit Hydra mal ansehen.

argh... ist ja leider keine FreeWare
Delphi 2010, Update 4 & 5

Geändert von schwa226 ( 9. Feb 2011 um 18:45 Uhr)
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#4

AW: MediaPortal C# Reference -> Delphi

  Alt 9. Feb 2011, 21:19
Hat schon jemand dazu Erfahrungen?
http://atozed.com/CrossTalk/index.de.aspx

oder

http://interop.managed-vcl.com/netinterop_csharp.php
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:18 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