Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   .dcu Datei aus .pas erstellen (https://www.delphipraxis.net/83861-dcu-datei-aus-pas-erstellen.html)

Yheeky 7. Jan 2007 15:40


.dcu Datei aus .pas erstellen
 
Hi,

bin seit Freitag im Besitz einer neuen Delphi Version :-)
Habe Delphi 2006 und bin gerade dabei alle Komponenten zu installieren. Garnicht so einfach, wenn man vorher Delphi 5 hatte.
In einer Komponente wird nach der DesignEditors.dcu gefragt. Im Verzeichnis Delphi\Source\ToolsApi ist die .pas Datei vorhanden, aber nicht die dcu. Wie komme ich an die .dcu Datei?
Suchpfad ist eingetragen, daran liegt es nicht...

Danke schonmal!

jbg 7. Jan 2007 15:43

Re: .dcu Datei aus .pas erstellen
 
Du musst das Packages "designide" zu "require" Klausel hinzufügen. In diesem Package stecken die fehlenden DCUs, die es schon seit längerem nicht mehr als echte DCUs vorhanden sind.

MrKnogge 7. Jan 2007 15:45

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von Yheeky
Suchpfad ist eingetragen, daran liegt es nicht...

Bist du dir 100%ig sicher ?

Wenn er eine *pas finden würde, würde er auch nicht nach einer *.dcu fragen.

Hast du mal versucht den Pfad bei den Bibliothekspfaden anzugeben ?

Yheeky 7. Jan 2007 16:01

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von jbg
Du musst das Packages "designide" zu "require" Klausel hinzufügen. In diesem Package stecken die fehlenden DCUs, die es schon seit längerem nicht mehr als echte DCUs vorhanden sind.

Das ist schon vorhanden. Ich habe die Komponente SmartListView (vielleicht keennt die ja jemand) in die dclusr.bdsproj gepackt...

Zitat:

Zitat von MrKnogge
Zitat:

Zitat von Yheeky
Suchpfad ist eingetragen, daran liegt es nicht...

Bist du dir 100%ig sicher ?

Wenn er eine *pas finden würde, würde er auch nicht nach einer *.dcu fragen.

Hast du mal versucht den Pfad bei den Bibliothekspfaden anzugeben ?

Naja, ich habe jetzt mal ein neues Projekt erstellt und nur die SmartListView Komponente auf einer Form platziert. Es kam die gleich Fehlermeldung...ABER.
Ich habe dann in den Projekteigenschaften gesehen, dass da der Suchpfad nicht eingstellt ist. Kann ich das nicht in Delphi für alle Projekte standardmäßig einstellen?

Nun komm bei der DesignEditors die Fehlermeldung:

Delphi-Quellcode:
[Pascal Fataler Fehler] DesignEditors.pas(609): F1026 Datei nicht gefunden: 'Proxies.dcu'
Ich habe daran nichts geändert :roll:

jakobwenzel 7. Jan 2007 16:05

Re: .dcu Datei aus .pas erstellen
 
http://www.delphipraxis.net/internal...ht=proxies+dcu

Suchen hilft! :zwinker:

MrKnogge 7. Jan 2007 16:05

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von Yheeky
Kann ich das nicht in Delphi für alle Projekte standardmäßig einstellen?

Tools -> Umgebungsoptionen -> Reiter[Bibliothek]

Gruß

Yheeky 7. Jan 2007 16:51

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay, die Sache war, dass ich den Pfad nicht bei Suchpfad sondern bei Bibliothekenpfad eintragen musste...nun geht das schon einmal.

Das mit der Proxies.dcu geht noch nicht. Habe mal ein Bild angehängt, welches zeigt, dass die dcp Datei im Package ist.
Konnte das Problem leider noch nicht lösen...

jbg 7. Jan 2007 17:09

Re: .dcu Datei aus .pas erstellen
 
Ich frage mich warum du den Pfad zur ToolsAPI überhaupt eingebunden hast. Der darf da gar nicht sein, denn die ToolsAPI kann man nicht neu kompilieren. Dafür hat Borland schon gesorgt, indem man in nicht auflösbare Unit-Abhängigkeiten reinstolpert, weil die entsprechenden DCUs bzw. PAS-Dateien nicht mit ausgeliefert werden.

Also alle ToolsAPI DCU Dateien die du nun erstellt hast löschen, den ToolsAPI Ordner aus dem Bibliothekspfad entfernen (beim Suchpfad darf und sollte er drinnen sein, aber nicht beim Bibliothekspfad) und dann das Package nochmal kompilieren.


Ein kleinen Step-By-Step:
1. Neues Package anlegen
2. "designide" zur requires-Klausel hinzufügen
3. Neue Unit anlegen mit
Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils, Classes, DesignEditors;

type
  TMyPropertyEditor = class(TPropertyEditor)
   
  end;

implementation

end.
Package kompilieren. Es treten keine Fehler auf. Außer man hat den ToolsAPI Ordner in den Bibliothekspfad eingetragen.

Yheeky 7. Jan 2007 17:35

Re: .dcu Datei aus .pas erstellen
 
Also ToolsAPI habe ich jetzt nur noch im Suchpfad drin. Das Package ist auch korrekt eingerichtet. DCUs sind auch gelöscht...
Nun habe ich in einem neuen Projekt die SmartListView Komponente eingebaut, aber es kommt die Fehlermeldung:

Delphi-Quellcode:
[Pascal Fataler Fehler] Unit1.pas(7): F1026 Datei nicht gefunden: 'DesignEditors.dcu'
Dann habe ich eine neue Unit mit dem Text von dir erstellt, aber was soll ich mit dieser machen? Ins Package reinmachen? Wenn ja, wo genau?

jbg 7. Jan 2007 17:42

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Dann habe ich eine neue Unit mit dem Text von dir erstellt, aber was soll ich mit dieser machen? Ins Package reinmachen? Wenn ja, wo genau?
Das war nur eine Testunit, mit der ich die DesignEditors Unit eingebunden habe.

Zitat:

Zitat von Yheeky
Delphi-Quellcode:
[Pascal Fataler Fehler] Unit1.pas(7): F1026 Datei nicht gefunden: 'DesignEditors.dcu'

Kann es sein, dass die DesignEditors Unit im Contains-Abschnitt des Packages steht (am besten direkt im Projekt-Quellcode (*.dpk) nachschauen.

Yheeky 7. Jan 2007 17:54

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nee, steht unter requires :-/

Weiss leider nicht, was ich da machen kann

mkinzler 7. Jan 2007 17:56

Re: .dcu Datei aus .pas erstellen
 
Ist DesignIDE eingebunden?

jbg 7. Jan 2007 18:05

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von Yheeky
Weiss leider nicht, was ich da machen kann

Das einzige was ich mir noch vorstellen kann, ist das es nicht mit dem dclusr100.bpl Package funktioniert. (glaube ich zwar nicht, aber wer weiß schon).

Geh mal nach meinem obigen "Step-By-Step" vor. Also nicht die dclusr100.dpk nutzen, sondern ein eigenen, neues Package anlegen und dann meine Beispiel-Unit in diesem Projekt erstellen. Danach das Package kompilieren. Wenn das auch nicht funktioniert, dann klingt das schon fast nach "Neuinstallation von BDS 2006"

Yheeky 7. Jan 2007 18:39

Re: .dcu Datei aus .pas erstellen
 
Da die Variante mit dem eigenen Package gerade nicht funktioniert hat (Standardpackage dclusr konnte nicht mehr geladen werden), installiere ich BDS 2006 jetzt einfach nochmal neu. Melde mich dann gleich wieder...

Yheeky 7. Jan 2007 19:21

Re: .dcu Datei aus .pas erstellen
 
Geht leider immer noch nicht (neu installiert und eigenes Package) :-(

SirThornberry 7. Jan 2007 19:37

Re: .dcu Datei aus .pas erstellen
 
aber du hast nicht zufällig in den Units die du dann ins Programm einbindest eine Register-Procedure oder dergleichen? Wenn ja ist klar das es nicht geht.

Yheeky 7. Jan 2007 19:54

Re: .dcu Datei aus .pas erstellen
 
Doch, in den Komponenten ist auch die Register-Prozedur drin...wie kann ich das denn auslagern?

MrKnogge 7. Jan 2007 20:12

Re: .dcu Datei aus .pas erstellen
 
Gar nicht, solche Units sind nicht zum einfach einbinden, sondern zum installieren gedacht.

Yheeky 7. Jan 2007 20:13

Re: .dcu Datei aus .pas erstellen
 
Aber irgendwie muss ich die Komponente (SmartListView) doch in BDS 2006 installieren können, oder?

Yheeky 7. Jan 2007 22:22

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal eine Doku gemacht, die zeigt, was ich alles schon gemacht habe...Bilder sind auch alles dabei.
Vor allem diejenigen, die dafür schonmal ein Tutorial gemacht haben, sollten sich das mal anschauen, denn scheinbar funktioniert es nicht auf allen Rechnern oder es wurden wichtige Details in den Tutorials vergessen (was ja nicht weiter schlimm ist).

Hier noch ein paar Fragen, die die Doku bzw. das Tutorial (http://www.delphipraxis.net/internal...ght=designintf) betreffen.
1.) Was ist der Unterschied zwischen Laufzeit- und Entwurf-Packages?
2.) Kann es sein, dass ältere Komponenten einfach nicht mehr installiert werden können? Wenn ja, wieso?
3.) Wieso muss ich in jedem neuen Projekt den Suchpfad neu eintragen?

Ich hoffe mir können Antworten auf meine Fragen geliefert werden, die durch die Beschreibung der Vorgänge in der Datei indirekt gestellt werden.

Yheeky 8. Jan 2007 00:01

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und nochmal ich ;)

Habe hier mal die Komponente angehängt. Vielleicht kann da jemand mal ein Package draus machen, was für BDS 2006 funktioniert. Vielleicht liegt´s ja auch an der Komponente und ich Mühe mich die ganze Zeit umsonst ab.
Ansonsten habe ich wirklich nahezu schon alles probiert...ich hoffe mir kann da jemand helfen, ich fühle mich gegenüber meinem Delphi 5 total schlecht ;)

Gute Nacht!

mkinzler 8. Jan 2007 05:12

Re: .dcu Datei aus .pas erstellen
 
Hat sich bei mir problemlos installieren lassen, mußte nur (wie erwähnt) designide in reguires aufnehmen, dsgnintf zu DesignIntf erweitern und DesignEditors ergänzen.

Yheeky 8. Jan 2007 06:43

Re: .dcu Datei aus .pas erstellen
 
Installieren kann ich es ja auch, aber ich nehme mal an, du meinst, dass du ein Projekt mit der Komponente erfolgreich kompilieren und starten kannst, richtig?

Okay gut. Somit weiss ich, dass das Problem woanders liegt. Welche Einstellungen könnten das Problem denn noch betreffen? Habe BDS 2006 wie gesagt gerade neu installiert, also habe noch nicht viel dran gemacht.
Ich wundere mich etwas darüber, dass du die Designide in die requires aufnehmen musstest, denn bei mir geschieht dies automatisch (vermutlich, weil ich das schon so oft probiert habe und das schlaue Delphi das merkt ;)).
Gibt´s womöglich Einstellungen, die man direkt nach der Installation unbedingt vornehmen muss? Zudem hat mein BDS 2006 Verzeichnis mehr als 8 Zeichen und außerdem Leerzeichen (liegt da bestimmt nicht dran, aber man weiss ja nie *g*)...

Hoffe, mir kann da jemand helfen.

mkinzler 8. Jan 2007 07:18

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Villeicht bringst dir mein Projekt und die Lib was

Yheeky 8. Jan 2007 07:28

Re: .dcu Datei aus .pas erstellen
 
Okay danke...werde ich heute Mittag mal austesten.
Wenn doch noch jemand Tipps bezüglich Einstellungen hat, dann kann er gerne hier posten.

jbg 8. Jan 2007 11:25

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von Yheeky
Installieren kann ich es ja auch

Habe ich da was verpasst?

Zitat:

aber ich nehme mal an, du meinst, dass du ein Projekt mit der Komponente erfolgreich kompilieren und starten kannst, richtig?
Ein Nutzen der Unit der Komponente in einem eigenen Projekt ist deswegen nicht möglich, weil der Komponentenhersteller bei dessen Erstellung keine strickte Trennung zwischen Design- und Runtime-Code gemacht hat. Da es dir nicht erlaubt ist, die halbe Delphi-IDE mit auszuliefern, muss du die Komponenten-Unit in zwei Units aufteilen. Die eine führt den Property-Editor (DesignEditors) und die Registrierung durch, und die andere enthält die eigentliche Komponente.

Yheeky 8. Jan 2007 14:58

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von jbg
Habe ich da was verpasst?

Wahrscheinlich ;-)
Ich habe in Posting #4 geschrieben, dass ich die Komponente auf einer Form platziert habe...das heisst ja quasi, dass sie "erfolgreich" installiert wurde.

Zitat:

Zitat von jbg
Ein Nutzen der Unit der Komponente in einem eigenen Projekt ist deswegen nicht möglich, weil der Komponentenhersteller bei dessen Erstellung keine strickte Trennung zwischen Design- und Runtime-Code gemacht hat. Da es dir nicht erlaubt ist, die halbe Delphi-IDE mit auszuliefern, muss du die Komponenten-Unit in zwei Units aufteilen. Die eine führt den Property-Editor (DesignEditors) und die Registrierung durch, und die andere enthält die eigentliche Komponente.

Aha, davon habe ich auch schonmal gehört. Leider habe ich es auch mit Anleitung nicht hinbekommen...könntest du mir da womöglich helfen?

Generell würde mich mal sehen, was der Unterschied zwischen Laufzeit- und Entwurfspackage ist...

Yheeky 8. Jan 2007 16:35

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 3)
Soooo...

Ich habe nun dein Package genommen und versucht das zu installieren. Es ging wesentlich problemloser, aber die Fehlermeldung der Proxies.dcu habe ich immer noch. Da ich die Datei, wie erwähnt, nicht auf dem PC finde und die Tutorials ja auch sagen, dass die Felhermeldung verschwindet, wenn ich die Designide.dcp unter Requires einfüge, muss das Problem anderweitig liegen.

Ich habe mal 2 Screenshots angehängt, die ein weiteres komisches Problem beschreiben:

Screen 1: Ein Bild von den Programmeinstellungen. Hier ist das ToolsAPI Verzeichnis im Suchpfad eingetragen und dennoch motzt der Compiler. Im ToolsAPI Verzeichnis gibt es allerdings eine DesignIntf.dcu Datei (s. Screen 3).

Screen 2: In den Projekteinstellungen wird nichts übertragen. Alles, was ich unter Programmeinstellungen in BDS 2006 eintrage wird quasi ignoriert. Wozu trage ich es sonst dort ein?!?

Es könnte also ein Problem bzw. einen Konflikt mit den Projekteinstellungen geben, was meint ihr?

mkinzler 8. Jan 2007 16:48

Re: .dcu Datei aus .pas erstellen
 
Liegt die ToolsApi auch im Bibliothekspfad? (Darf nicht)
Vielleicht liegt es auch an Vista.

Yheeky 8. Jan 2007 17:01

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von mkinzler
Liegt die ToolsApi auch im Bibliothekspfad? (Darf nicht)

Nee (s.Bild)

Zitat:

Zitat von mkinzler
Vielleicht liegt es auch an Vista.

Ist kein Vista, ist nur das Vista Transformation Pack 6.0...

jbg 8. Jan 2007 18:21

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von mkinzler
Liegt die ToolsApi auch im Bibliothekspfad? (Darf nicht)
Vielleicht liegt es auch an Vista.

Das eigentliche Problem ist, dass das Package in ein Design- und ein Runtime-Package gesplittet werden muss. Man kann zur Laufzeit (eigenes Programm) keinen Designtime-Code (Code der in der IDE läuft) nutzen. Das untersage die Lizenz und Borland hat das auch technisch verhindert.

Zitat:

Aha, davon habe ich auch schonmal gehört. Leider habe ich es auch mit Anleitung nicht hinbekommen...könntest du mir da womöglich helfen?
  • 1. Öffne die Projektoptionen des Packages und wähle unter "Verwenden für" den Eintrag "Laufzeit" aus. Dialog mit OK bestätigen.
  • 2. Entferne "designide" aus der requires-Liste
  • 3. Kopiere die SmartListView Unit und benenne die Kopie mit "SmartListViewReg.pas"
  • 4. Öffne die original Unit und entferne den "DesignEditors" und "DesignIntf" (sofern verwendet) aus den Uses-Klauseln.
  • 5. Entferne den PropertyEditor und die Register-Funktion
  • 6. Kompiliere das Package (alles was Fehler meldet einfach entfernen)
  • 6. Erzeuge ein neues Package (Datei/Neu/Package)
  • 7. Öffne die Projektoptionen und wähle unter "Verwenden für" den Eintrag "Entwurfszeit" aus. Dialog mit OK bestätigen.
  • 8. Füge "designide" zur requires-Liste hinzu
  • 9. Füge das Laufzeit-Package zur requires-Liste hinzu
  • 10. Füge die SmartListViewReg.pas zum Entwurfszeitpackage hinzu
  • 11. Öffne die SmartListViewReg.pas und entferne die Komponente, behalte aber alles, was du vorhin aus der anderen Datei entfernt hast.
  • 12. Füge die original-Unit in die uses-Klausel der SmartListViewReg.pas Datei hinzu.
  • 13. (Kompiliere und) Installiere das Laufzeitpackage


Ach ja, und lösche alle .dcu Dateien die du aus dem ToolsAPI Ordner erzeugt hast.

Yheeky 8. Jan 2007 19:05

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi jbg,

wow, super Beschreibung...danke, dass du dir soviel Zeit genommen hast.
Klingt auch alles logisch, nur leider wird immer noch die Proxies.dcu vermisst :-(

Habe dir mal einen Screenshot vom Aufbau meiner Packages gemacht. Das Package SmartLV ist das Laufzeit und SmartLV_D10 ist das Entwurfspackage, welches ich kompiliere/installiere.

jbg 8. Jan 2007 19:41

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Yheeky
nur leider wird immer noch die Proxies.dcu vermisst :-(

Das tritt bei mir nicht auf.

Yheeky 8. Jan 2007 20:37

Re: .dcu Datei aus .pas erstellen
 
Es ist vollbracht!
Nun geht´s! ABER!!!

Ich musste bei den beiden Packages die Einstellungen ändern. Ich musste das Entwurfspackage zum Laufzeitpackage machen und umgekehrt. Kannst du dir das erklären?
Nun funktioniert alles. Ich denke ich habe da nun auch etwas bei der Thematik durchgeblickt. Habe soeben auch noch eine eigene gestrickte Version OHNE DesignIntf und DesignEditors hinbekommen.

Danke nochmal an jbg und allen anderen, die mir hier geholfen haben! :thumb:

MaBuSE 8. Jan 2007 20:43

Re: .dcu Datei aus .pas erstellen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Yheeky
Hi jbg,
wow, super Beschreibung...danke, dass du dir soviel Zeit genommen hast.
Klingt auch alles logisch, nur leider wird immer noch die Proxies.dcu vermisst :-(

Hallo, ich habe Deine PN erhalten und antworte hier:

jbg hat Recht! So wie er es beschrieben hat funktioniert es.

Es gibt nur eine kleine Tücke, die der Programmierer eingebaut hat.
Er verwendet den Property Editor in der Komponente.
So was macht man nicht !!!

Es gibt wie immer im Leben mehrere Lösungen.
Ich stelle hier 2 Lösungen vor.
  1. Quick and Dirty
  2. So wird's richtig gemacht
Beim Ansehen des Quelltextes sieht man es geht eigentlich "nur" um den About Box Dialog der Komponente.

Im Property Editor steht bei About nur ein "(About)", wenn man in die Property geht, erscheint ein Button mit 3 Punkten [...].
Wird auf diesen Button gedrückt, erscheint ein Dialog in dem die Versionsnummer und das Copyright des Autors zu lesen ist.
  • Lösung 1: Quick and Dirty
    • Ansatz: "Wozu brauch ich einen About Dialog. Ist mir ja egal, wer die Komponente programmiert hat."
    • Vorgehensweise wie bei jbg:
      Entferne alles, was der Compiler anmeckert.
      Ich habe es durch Voranstellen eines "//" auskommentiert.
    • nur ein Package, das kann ein Entwurfs- und Laufzeitpackage sein.
    • -> Datei: "Quick and Dirty.zip" im Anhang
  • Lösung 2: So wird's richtig gemacht
    • Ansatz: "Ich möchte die Funktion des About Dialogs erhalten."
    • Vorgehensweise wie bei jbg:
      Entferne alles, was der Compiler anmeckert.
      Ich habe es durch Voranstellen eines "//" auskommentiert.
    • Ausnahmen:
      Delphi-Quellcode:
      ...
      type
        TSmartListView = class(TListView)
        private
      //    FAbout: TAboutButtonProperty;
      // neues About Property
          FAbout: string;
      //--
      ...
      published
      ...
      //    property About: TAboutButtonProperty read FAbout write FAbout;
      // neues About Property
          property About: string read FAbout write FAbout;
      //--
        end;
      ...
      Zusätzlich wird die komplette Register Procedure entfernt.
      Das Ganze wird in ein Package gepackt, was in den Optionen als "Laufzeitpackage" gekennzeichnet wird.
      Das Package kompiliert -> fertig mit dem Laufzeitpackage.
    • Nun brauchen wir ein Entwurfszeitpackage.
      In das Entwurfszeitpackage fügen wir nun die auskommentierten Stellen des Quelltextes ein.
    • Wichtig: Die Unit mit der Komponente muss natürlich in der uses Zeile eingebunden werden.
    • Wichtig: Die Zeile mit dem RegisterPropertyEditor muss geändert werden.
      Da die Eigenschaft About in der Komponente nun vom Typ string ist, muss beim Zuweisen des PropertyEditor natürlich auch string angegeben werden. -> TypeInfo(string)

      Das Package wird als Entwurfszeitpackage gekennzeichnet und lässt sich nun kompilieren.
    • -> Datei: "So wirds richtig gemacht.zip" ist im Anhang
    • Installation:
      1. Laufzeitpackage kompilieren. (Installieren geht nicht, da es nix zu installieren gibt.)
      2. Entwurfszeitpackage kompilieren
      3. Entwurfszeitpackage installieren -> Fertig

    Delphi-Quellcode:
    ...
    unit SmartListView_AboutDialog;

    interface

    uses
      Forms, Classes, Windows, SysUtils, SmartListView, DesignIntf, DesignEditors;

    type
      TAboutButtonProperty = class(TPropertyEditor)
      public
        procedure Edit; override;
        function GetAttributes: TPropertyAttributes; override;
        function GetValue: string; override;
      end;

    procedure Register;

    implementation

    procedure Register;
    begin
      RegisterComponents('Samples', [TSmartListView]);
      RegisterPropertyEditor(TypeInfo(string), TSmartListView, 'ABOUT', TAboutButtonProperty);
    end;

    procedure TAboutButtonProperty.Edit;
    var
       AboutTitle,
       AboutDesc: String;
    begin
       AboutTitle := 'About TSmartListView';
       AboutDesc := 'TSmartListView (Version 1.01)'+
       ^M^M+'Copyright © 1999 by Fabio De Pasquale'+
       ^M+ '<depa@pronet.it>'+
       ^M+ '<mes@freemail.it>' +
       ^M+ 'Check "http://members.xoom.com/MadElectron"'+
       ^M+ 'for latest version.';

       Application.MessageBox(PChar(AboutDesc), PChar(AboutTitle), MB_OK+ MB_ICONINFORMATION);
    end;

    function TAboutButtonProperty.GetAttributes: TPropertyAttributes;
    begin
        Result := [paMultiSelect, paDialog, paReadOnly];
    end;

    function TAboutButtonProperty.GetValue: string;
    begin
       Result := '(About)';
    end;


    end.

MaBuSE 8. Jan 2007 20:46

Re: .dcu Datei aus .pas erstellen
 
Zitat:

Zitat von Yheeky
Es ist vollbracht!
Nun geht´s!

Glückwunsch.
Ich war mal wieder 5 Min. zu langsam :mrgreen:

Trotzdem lies Dir mal meinen Beitrag durch, ich habe versucht es zu erklären.

In meinem Tutorial steht es ja eigentlich auch schon drinn.

Designtime Units (Property Editoren) haben in der Anwendung nichts zu suchen.
Deshalb muß man 2 Packages draus machen oder auf die Editoren verzichten. ;-)

mfg
MaBuSE

Yheeky 8. Jan 2007 21:07

Re: .dcu Datei aus .pas erstellen
 
Danke auch dir für die Mühe, die du dir gemacht hast. Die Beschreibung ist super!
Ich denke du könntest das noch in dein Tutorial nehmen (wenn es das ist, worauf ich auch in der PN eingegangen bin), denn das ist hier noch besser erklärt, finde ich.

Besten Dank nochmal!

DP-Maintenance 9. Jan 2007 18:58

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hier gehts definitiv um Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 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