AGB  ·  Datenschutz  ·  Impressum  







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

Interface oder Klasse

Ein Thema von MathiasSimmack · begonnen am 2. Mär 2006 · letzter Beitrag vom 2. Mär 2006
Antwort Antwort
MathiasSimmack
(Gast)

n/a Beiträge
 
#1

Re: Interface oder Klasse

  Alt 2. Mär 2006, 19:02
Ah ja, das ist doch ein netter Ansatz. Danke, Elvis. Im Prinzip kann ich also ein in der Klasse enthaltenes Interface nutzen und von dem die Daten abgreifen. Rein technisch könnte ich mir dann aber auch die Ableitung von IHxRegNamespace sparen, oder? Also einfach nur
Code:
public class Help2Namespace
anstelle von
Code:
public class Help2Namespace : IHxRegNamespace
denn das Interface würde in dem Fall "nur" dafür sorgen, dass meine Klasse die entsprechenden 3 Methoden (Name, GetProperty, IsTitle) enthält. Ich habe gerade mal ein wenig experimentiert:
Code:
public class Help2Namespace : IHxRegNamespace
{
   readonly IHxRegNamespace innerInstance;

   internal Help2Namespace(IHxRegNamespace factory)
   {
      this.innerInstance = factory;
   }

   public string Name
   {
      get { return this.innerInstance.Name; }
   }

   public bool IsTitle(string bstrTitle)
   {
      return this.innerInstance.IsTitle(bstrTitle);
   }

   public object GetProperty(HxRegNamespacePropId propid)
   {
      return this.innerInstance.GetProperty(propid);
   }

   // weitere Dinge, die man einbauen könnte ...
}
   
public class Help2Namespaces : CollectionBase
{
   public Help2Namespaces()
   {
      HxRegistryWalkerClass registryWalker = new HxRegistryWalkerClass();
      IHxRegNamespaceList namespaceList   =
         registryWalker.get_RegisteredNamespaceList("");
      foreach (IHxRegNamespace helpNamespace in namespaceList)
      {
         this.Add(new Help2Namespace(helpNamespace));
      }
   }

   public Help2Namespace this[int index]
   {
      get { return ((Help2Namespace)(List[index])); }
      set { List[index] = value; }
   }

   public int Add(Help2Namespace help2Namespace)
   {
      return this.List.Add(help2Namespace);
   }

   // mehr ...
}
und wuppdi hat man alle vorhandenen Namespaces im Tree-View
Code:
Help2Namespaces help2Namespaces = new Help2Namespaces();
try
{
   foreach (Help2Namespace help2Namespace in help2Namespaces)
   {
      TreeNode treeNode = new TreeNode(help2Namespace.Name);
      treeView1.Nodes.Add(treeNode);
   }
}
catch (Exception ex)
{
   MessageBox.Show(ex.ToString());
}
Das geht sicher auch in ähnlicher Form, wenn man direkt auf die Interfaces zugreift, aber so wirkt es konsistenter.


@Frickeldrecktuxer_TM: Es geht ums Help 2.0-API, das eigentlich eine normale Win32-Bibliothek ist. Mit Hilfe des AxImp-Tools kannst du aus der Hauptbibliothek zwei .NET-Wrapper generieren, die ein paar Klassen und haufenweise Interfaces enthalten. Das Zeug verfolgt mich schon eine ganze Weile. Na ja, ich habe eben kein anderes Hobby...
  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 10:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz