AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Property Sheets mit Delphi

Property Sheets mit Delphi

Ein Tutorial von MathiasSimmack · begonnen am 27. Jun 2002 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
Seite 2 von 2     12
MathiasSimmack
In diesem Mini-Tutorial geht es um eine Gruppe der Shell-Erweiterungen: die sog. "Property Sheets", die bei einigen Dateitypen eingeblendet werden, wenn man deren Eigenschaften anzeigen lässt. Das gesamte Beispiel basiert auf der Grundlage von Andreas Kosch, die man im Entwickler-Forum downloaden kann. Ich will aber zusätzlich zeigen, welche Units man entfernen muss, damit am Ende eine Datei (DLL) von weniger als 100k entsteht.

Außerdem ist dieser erste Schritt (IMHO) unbedingt wichtig, da man nicht einfach ein vorhandenes, lauffähiges Projekt nehmen und für andere Zwecke erneut verwenden sollte. Das liegt daran, dass die meisten Shell-Erweiterungen intern eine eindeutige GUID benutzen, mit der sie später auch im System identifiziert werden.
Logische Folge: wenn ich zwei Shell-Erweiterungen verwende, die die selbe GUID haben, dann kommt es mit großer Wahrscheinlichkeit zu Problemen. Also, ich bitte darum, dieser Anleitung genau zu folgen und für jedes Projekt tatsächlich neuen Code zu erstellen. Die relevanten Code-Teile, die in jeder Erweiterung vorkommen, können dann natürlich problemlos kopiert und wiederverwendet werden.

Bevor wir uns an ein solches Projekt wagen, sollten wir uns natürlich darüber im Klaren sein, was wir erreichen wollen. Üblicherweise stellen wir auf den Eigenschaftenseiten ergänzende Informationen zur Verfügung, die beispielsweise auch von einem Programm angezeigt werden. Damit hat der Anwender die Möglichkeit, sich schnell über den Inhalt, den Typ, spezielle Eigenschaften usw. zu informieren, ohne erst das eigentlich passende Programm starten zu müssen.
In unserem Beispiel wollen wir eine zusätzliche Seite bei den Textdateien (*.txt) anzeigen lassen, die uns neben dem genauen Dateinamen auch eine Möglichkeit zum Öffnen des Texteditors bietet. Damit wird das Prinzip auf recht einfache Weise verdeutlicht.

Hinweis
  • Bitte nicht vergessen, dass wir eine Erweiterung des OS entwickeln. Für einen Testlauf müssen wir sie also erst im System registrieren. Und natürlich muss sie danach wieder entfernt werden, damit wir z.B. eine neue Version erstellen können. Das Problem dürfte hierbei sein, dass das System die benutzte Datei auch nach der De-Registrierung nicht sofort löschen kann. Ein einfaches Ab- und wieder Anmelden genügt allerdings schon (zumindest unter Win98). Ein Neustart ist glücklicherweise nicht erforderlich.
 
mkinzler

 
Delphi 10.4 Sydney
 
#11
  Alt 2. Jun 2011, 20:08
Grundsätzlich genauso, das ganze Handling muss dazu halt innerhalb der Dll erfolgen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

 
Delphi XE2 Professional
 
#12
  Alt 2. Jun 2011, 20:34
Mir ist aber nicht ganz klar, was ich dann bei diesen beiden Zeilen eintragen muss:

Delphi-Quellcode:
  aPSP.pszTemplate := MakeIntResource(IDD_PROPDLG);
  { ... }
  aPSP.pfnDlgProc := @?????; // Dialogfunktion
Irgendwie muss ich meinen Dialog doch erzeugen und anzeigen lassen
Ich will kein Non-VCL, weil ich für das, was ich anzeigen will sowieso die VCL laden muss
Thomas

Geändert von Codewalker ( 2. Jun 2011 um 20:48 Uhr)
  Mit Zitat antworten Zitat
blackfin
 
#13
  Alt 3. Jun 2011, 16:23
Wenn du das ganze Editor-geführt haben willst und auch bereit bist, was dafür auszugeben, kannst du dir dafür auch die "Shell+"-Komponenten (Namespace Extensions) mal ansehen.
Damit lassen sich solche Property-Sheets sehr einfach erstellen.

Geändert von blackfin ( 3. Jun 2011 um 16:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

 
Delphi XE2 Professional
 
#14
  Alt 4. Jun 2011, 10:18
Die hab ich auch schon gefunden, allerdings können die ja viel mehr als ich eigentlich brauche und für das bißchen was ich brauche wollte ich die jetzt nicht komplett kaufen müssen. Das muss doch auch so gehen und kann nicht so schwer sein. Der Rahmen ist ja klar, es fehlt "nur" die Einbindung des Forms.
Thomas
  Mit Zitat antworten Zitat
fuchsle

 
Delphi XE3 Professional
 
#15
  Alt 12. Jan 2012, 16:21
Gibt es hier mittlerweile einen etwas einfacheren Weg, sind z.B. freie Komponenten bekannt, oder ist das noch der aktuelle Stand?

Vielen Dank für eure Infos.
  Mit Zitat antworten Zitat
Themen-Optionen Tutorial durchsuchen
Tutorial 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 18:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf