AGB  ·  Datenschutz  ·  Impressum  







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

Proxies.dcu-Problem

Ein Thema von CalganX · begonnen am 11. Jan 2003 · letzter Beitrag vom 10. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Proxies.dcu-Problem

  Alt 11. Jan 2003, 17:01
Hi,
ich habe gerade die mdControls neuzuinstallieren. Dabei ergab sich das Problem, dass die Proxies-Unit nicht gefunden wurde (nur bei der Run-Time).
Ich habe mir den Tipp in der Library bereits durchgelesen, verstehe aber nicht, was ich machen muss, damit ich nun die Kompo nutzen kann?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2
  Alt 11. Jan 2003, 17:21
Na Du kennst die Suche doch inzwischen, oder http://www.delphipraxis.net/viewtopic.php?t=1157
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 11. Jan 2003, 17:24
Moin Sakura,

Zitat:
Ich habe mir den Tipp in der Library bereits durchgelesen, verstehe aber nicht, was ich machen muss, damit ich nun die Kompo nutzen kann?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4
  Alt 11. Jan 2003, 17:44
SORRY SORRY

Du musst zwei Komponenten-Sammlungen anlegen. Eine für die Delphi-IDE (Design-Time) und eine für die EXE (Run-Time) zur Kompilation.

Die Design-Time-Editoren, welche durch Delphi definiert werden, dürfen lt. Lizenz nicht ausserhalb der IDE eingesetzt werden. Um Missbrauch vorzubeugen hat Borland seit D6 diese auch forciert.

Deshalb musst Du das Komponenten-Package welches Du jetzt hast in zwei aufteilen. Für eines stellst Du im Projekt-Manager Run-Time Only ein und für eines Design-Time Only. Letzterem fügst Du noch die DCP DesignIDE hinzu.

Anschließend musst Du im Run-Time Package alle Aufrufe zu den Methoden aus den Units DesignIntf und DesignEditors entfernen. Unter Umständen musst Du die Registrierung dieser Komponenten neu schreiben.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 11. Jan 2003, 18:17
Hä??? Wat???
Bitte noch einmal langsam... Erkläre mir das bitte etwas genauer, da ich immer noch nicht ganz verstanden habe, was du meinst...

Chris
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 27. Feb 2003, 20:15
*heul* Und wieder läuft nichts. Naja, jetzt habe ich zwei Packages: Eines mit Einstellungen "Designtime only" das andere mit "Runtime only". Ersteres hat das Package DesignIDE.dcp drin; das zweite nicht.
Wie mache ich jedoch jetzt dem Compiler das alles klar, denn er meint, die Proxies.dcu gibt es immer noch nicht...

Hat jemand da Hilfe?

Chris

PS: Denn eigentlich würde ich gerne das Programm ohne RTLs weitergeben...
PPS: Das hat mal problemlos geklappt: Install gedrückt; DsgnIntf ersetzt fertig. Keine RTLs nix... *help*
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 28. Feb 2003, 07:21
Hallo,
ich kann Dir nur posten, was ich durch meine 1. Komponente gelernt habe:

Seit Delphi 6 müssen Komponenten in ein Design- und Runtime-Package aufgeteilt werden,wenn sie Property-Editoren enthalten (aus lizenzrechtlichen Gründen, wegen der Designtime Editoren).

Ich verwende einen FileOpenDialog für ein Logfile.

Frei nach Jeff Overcash (TeamB):
http://community.borland.com/article...,27717,00.html [20.02.2003]

Das Designtime-Package (also FlappErrorReg) sollte folgendes Beinhalten:
1. Die Registrier-Anweisungen
2. alle Property Editioren
3. alle Komponenten Editoren
4. DesignIDE und alle RuntimePackages die die Komponente selbst benötigt

Das Runtime-Package (FlappError) sollte folgendes Beinhalten:
1. die Komponente selbst
2. Optional, alle Forms die die Editoren benützen können WENN die Komponente diese zur Laufzeit SELBST aufrufen kann.

Delphi-Quellcode:
package flappErr;

{$R *.res}
{$R 'FlappError.dcr'}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'Armin''s FlappException Component (c) Armin P'}
{$DESIGNONLY}
{$IMPLICITBUILD OFF}

REQUIRES
  rtl,
  designide,
  vcl,
  vclactnband,
  vclx,
  DJCL70,
  SMCmpntD7,
  indy;

CONTAINS
  FlappError IN 'FlappError.pas', // Die Komponente
  FlappErrorReg IN 'FlappErrorReg.pas', // Designtime Package
  FlappErrorDlg IN 'FlappErrorDlg.pas{fFlappErrorDlg}, // graphischer Teil der Kompo
  Flapp_Utils IN 'Flapp_Utils.pas';
END.
Delphi-Quellcode:
UNIT FlappErrorReg;

{$include Compilers.inc}

INTERFACE

USES
{$IFDEF DELPHI_6_UP}
  DesignIntf,
  DesignEditors,
{$ELSE}
  dsgnintf,
{$ENDIF}
  FlappError;

  TYPE
  TLogFileNameProperty = CLASS(TPropertyEditor)
    FUNCTION AllEqual: boolean; OVERRIDE;
    PROCEDURE Edit; OVERRIDE;
    FUNCTION GetAttributes: TPropertyAttributes; OVERRIDE;
    FUNCTION GetValue: STRING; OVERRIDE;
    PROCEDURE SetValue(CONST Value: STRING); OVERRIDE;
  END;
PROCEDURE Register;

IMPLEMENTATION

USES SysUtils,
  Forms,
  Dialogs,
  Classes;

PROCEDURE Register;
BEGIN
  RegisterPropertyEditor(TypeInfo(STRING), TFlappError, 'LogFileName',
    TLogFileNameProperty);
  RegisterComponents('APP', [TFlappError]);
END;

FUNCTION TLogFileNameProperty.AllEqual: boolean;
VAR
  FirstVal : STRING;
  i : Integer;
BEGIN
  FirstVal := GetStrValue;
  Result := True;
  i := 1;
  WHILE Result AND (i < PropCount) DO
    BEGIN
      Result := Result AND (GetStrValueAt(i) = FirstVal);
      Inc(i);
    END;
END;

PROCEDURE TLogFileNameProperty.Edit;
VAR
  Dlg : TOpenDialog;
BEGIN
  Dlg := TOpenDialog.Create(Application);
  TRY
    WITH Dlg DO
      BEGIN
        Dlg.Filter := 'Logfile (*.log)|*.log|Textfile (*.txt)|*.txt|all Files|*.*';
        Dlg.DefaultExt := '*.log';
        Title := 'File for ' + TComponent(GetComponent(0)).Name;
        FileName := Value;
        IF Execute THEN Value := FileName;
      END;
  FINALLY
    FreeAndNil(Dlg);
  END
END;

FUNCTION TLogFileNameProperty.GetAttributes: TPropertyAttributes;
BEGIN
  Result := [paDialog]
END;

FUNCTION TLogFileNameProperty.GetValue: STRING;
BEGIN
  Result := GetStrValue;
END;

PROCEDURE TLogFileNameProperty.SetValue(CONST Value: STRING);
BEGIN
  SetStrValue(Value);
END;

END.
Delphi-Quellcode:
UNIT FlappError;

{$INCLUDE Compilers.inc}

INTERFACE

USES
...
...
  TFlappError = CLASS(TComponent) // Hauptklasse FlappError
  PUBLIC
    FOptions: TOptions;
    CONSTRUCTOR Create(Owner: TComponent); OVERRIDE;
    DESTRUCTOR Destroy; OVERRIDE;
  PRIVATE
    FActive: Boolean;
    FEmailOptions: TEmailOptions;
    FLogFileOptions: TLogFileOptions;
    FFileName: STRING;
...
    PROPERTY LogFileName: STRING READ FFileName WRITE FFileName; // Hier ist der Property-Editor aktiv
...
...
END.
Falls Dir das obige zu konfus erscheint, kann ich folgende Links empfehlen (dort gibt es auch Beispiele zum saugen):


Creating Custom Delphi Components, Part I


Creating Custom Delphi Components, Part II


Creating Custom Delphi Components, Part III


lG Armin
Armin P. Pressler
  Mit Zitat antworten Zitat
clownxx

Registriert seit: 18. Jun 2003
63 Beiträge
 
#8
  Alt 18. Jun 2003, 12:43
Hallo, ich verzweifle auch noch bald an der Datei dsgnintf. ich habe sie schon durch die zwei neuen Units ersetz, aber nun findet der Compiler die Proxies.dcu nicht!! Das ist ja echt wahnsin dass das alles so kompliziert ist...! Ich möchte ja nicht mal ein Package erstellen oder installieren, sondern einfach nur mein Projekt öffnen (TSMS) welches ich mit downgeloadet habe! Da ist aber gar kein Package dabei...! Nur Lauter PAS Dateien, also quellcode! Wie soll ich das denn machen??
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#9
  Alt 18. Jun 2003, 13:24
Willst du Komponenten installieren, oder was?
  Mit Zitat antworten Zitat
clownxx

Registriert seit: 18. Jun 2003
63 Beiträge
 
#10
  Alt 18. Jun 2003, 13:29
ne eigendlich nicht, ich wollte nur das Projekt, das damit erstellt wurde kompilieren, diese benötigt eben die Units. Installieren wollte ich das nicht!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:07 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