Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verknüpfung erstellen (https://www.delphipraxis.net/74396-verknuepfung-erstellen.html)

zahor 2. Aug 2006 16:20


Verknüpfung erstellen
 
Hallo,

ich weiß, dass dieses Them schon oft angesprochen wurde :),
habe aber trotzdem eine Frage :?: :
Wenn ich CreateLink (http://www.kaestnerpro.de/faq03.htm) aufrufe,
bekomme ich die Fehlermeldung "Undefinierter Bezeichner 'IID_IPersistFile'". :wall:
Liegt das an meiner Delphi-Version (Delphi 7 Enterprise) oder an der
Uses-Liste (Windows, Messages, SysUtils, ActiveX, ShellAPI, ShlObj) oder woran :?: :?: :?:

alias5000 2. Aug 2006 16:41

Re: Verknüpfung erstellen
 
auf www.swissdelphicenter.ch gibts nen fertigen Code dazu, der auch funtzt, einfach mal suchen

himitsu 2. Aug 2006 16:49

Re: Verknüpfung erstellen
 
IID_IPersistFile ist in der Unit Ole2 (Rtl\Win\Ole2.pas) definiert.

zahor 2. Aug 2006 18:25

Re: Verknüpfung erstellen
 
Hallo,

Danke!
Kann man so was eigentlich auswendig lernen oder woher hast du das?

himitsu 2. Aug 2006 18:30

Re: Verknüpfung erstellen
 
Sowas kann man auswendig :mrgreen:

Na ja, eigentlich hab ich die DelphiSources mit auf meinem USB-Stick (wenn ich das ganze Delphi schon nicht mitnehmen kann -.-'' ) und dann noch so'n winzigkleines Progrämmchen zum durchsuchen :zwinker:

EDatabaseError 2. Aug 2006 18:33

Re: Verknüpfung erstellen
 
kannst du mal den namen des progrämmchens nennen sowas könnt ich nämlich auch gebrauchen.

ErazerZ 2. Aug 2006 19:09

Re: Verknüpfung erstellen
 
Gehst in Delphi: Suchen > In Dateien Suchen ... > Wählst bei Bedingung "In Verzeichnissen" und dann bei "Optionen für Verzeichnisssuche" tippst ein: "C:\Programme\Borland\Delphi7\Source" und machst noch ein hackerl bei "Unterverzeichnisse durchsuchen" und los gehts. (Naja brauchst schon die Sources :P)

himitsu 2. Aug 2006 19:32

Re: Verknüpfung erstellen
 
Zitat:

Zitat von ErazerZ
Gehst in Delphi: Suchen > In Dateien Suchen ... > Wählst bei Bedingung "In Verzeichnissen" und dann bei ...

Dat geht aber nur unter Delphi ... hab doch kein Delphi dabei -.-''

@EDatabaseError: is'n unraltes, selbstgeschriebseltes Konsolenprogrammchen, welches alle (hatte noch keine Lust 'nen Filter einzubauen) Dateien im Programmverzeichnis und den Subverzeichnissen nach 'ner Zeichenfolge (Ansi- und WideString) durchsucht und das Ergebnis in 'ner .TXT, oder wenn man's über 'ne winzige .cmd (BatchFile) startet auch im DOS-Fenster ausgibt.

dat paar KB-Kleine Teil liegt bei mir überall rum ... im DelphiSourceOrdner, im PSDK, bei den HeaderFiles ... halt wirklich überall :stupid:

Denn die WindowsSuche funktioniert ja mal garnicht.



hmmm ... klein ... hmmmm? ... ob ich das Teil map mit UPX bekannt machen sollte? :gruebel:

EDatabaseError 2. Aug 2006 19:41

Re: Verknüpfung erstellen
 
is egal obs Konsole oder Win32 ist. :stupid:

Wäre super wenn du mal was senden könntest

zahor 11. Aug 2006 11:22

Re: Verknüpfung erstellen
 
Wenn ich dann die Unit ole2 einbinde, krieg ich wieder jede Menge Fehlermeldungen:
Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen //in GetSpecialFolder
Inkompatible Typen: 'Ole2.TGUID' und 'System.TGUID' //in CreateLink
Inkompatible Typen: 'Ole2.TGUID' und 'System.TGUID' //in CreateLink
Inkompatible Typen: 'System.TGUID' und 'Ole2.TGUID' //in CreateLink

Worran liegt das schon wieder?
(Hatte jetzt erst Zeit zum Testen)

zahor 13. Aug 2006 15:56

Re: Verknüpfung erstellen
 
Weiß hier keiner wie man solche Fehlermeldungen wegkriegt?

ManuMF 13. Aug 2006 16:13

Re: Verknüpfung erstellen
 
Indem du die Version aus der CodeLib (hier) nimmst und vorher die Beschreibung dort durchliest ;-)
Also u.A. nur ShlObj und ActiveX zusätzlich in den Uses, sprich, die Uses-Liste in deinem Beitrag ganz oben ist korrekt.

Neutral General 13. Aug 2006 16:22

Re: Verknüpfung erstellen
 
Im Notfall musst du die Variablen die du übergibst so definieren:

Delphi-Quellcode:
var AGUID: Ole2.TGUID;
Es kann halt sein das wenn du nur TGUID hinschreibst Delphi das nächst beste TGUID holt und das dann eventuell das falsche ist ;)

Gruß
Neutral General

ManuMF 13. Aug 2006 16:24

Re: Verknüpfung erstellen
 
Und ich würde sagen, Ole2 ist hier fehl am Platz - sie wird sonst nirgendwo erwähnt. :gruebel:

zahor 13. Aug 2006 16:33

Re: Verknüpfung erstellen
 
Brauche ich Ole2 nicht für IID_IPsersistFile?

Alien426 13. Aug 2006 16:40

Re: Verknüpfung erstellen
 
Zitat:

Zitat von EDatabaseError
kannst du mal den namen des progrämmchens nennen sowas könnt ich nämlich auch gebrauchen.

Benutz doch einfach grep in der Befehlszeile.
Code:
C:\Programme\Borland\Delphi7\Source>grep IID_IPersistFile *.* -d -c
File Rtl\Win\Ole2.pas:
2 lines match

ManuMF 13. Aug 2006 17:29

Re: Verknüpfung erstellen
 
Als nochmal: Nimm besser die Version hier aus der CodeLib. Da brauchst du Ole2 nicht! Und die funktioniert auch (getestet).

_frank_ 13. Aug 2006 18:48

Re: Verknüpfung erstellen
 
@himitsu:
du kannst der windowssuche auch sagen, dass für andere Dateitype die plaintext-Suche verwendet werden soll.
z.B. mit dem programm:
www.fw-web.de/download/other/pershchg.exe
was das Programm macht:
es legt in der registry einen Schlüssel namens "PersistentHandler" an (unter dem datei-endungs-schlüssel) und weist dessen default-wert eine sog. ClassID zu (bei mir {5e941d80-bf96-11cd-b579-08002b30bfeb})
hinter dieser befindet sich der "Plain Text persistent handler", dahinter der "PlainTextFilter" und letztendlich läuft es über die query.dll ;)
ganz ohne zusatzfilter :spin2:

brauchst also nur die classID bei dir rausfinden (ist unter .txt) und einen entsprechenden schlüssel unter '.pas' anlegen :roll:

gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz