Einzelnen Beitrag anzeigen

Stefanie

Registriert seit: 12. Aug 2004
21 Beiträge
 
#9

Re: Komponentennamen mit Leerzeichen möglich ???

  Alt 26. Okt 2009, 16:36
Zitat:
Welche Delphi-Version setzt du denn ein?
momentan RAD Studio 2007 - das Problem ist aber unter Delphi 7 identisch

Zitat:
Ich glaube, dass das DDE-Topic gar keine Leerzeichen haben darf.
Das ist gut möglich, aber so ist's nun mal. Da hält sich scheibar nicht jeder dran.

Zitat:
Wenn der Sourcecode vorhanden ist wäre ein kopie der Sourcen DDEMan möglich um die direkte verwendung des Namens (if (Ctrl.Name = ItemName) and ..) durch eine property "DDEName" zu ersetzen.
Das wäre durchaus möglich, hab sowas aber noch nie gemacht. Eine Kopie in meinem Projektordner kann ich ja problemlos modifizieren.
Wo und wie müßte man denn da ansetzen?
Hier die Deklaration des TDdeServerItem aus der ddeman.pas

Delphi-Quellcode:
{ TDdeServerItem }

  TDdeServerItem = class(TComponent)
  private
    FLines: TStrings;
    FServerConv: TDdeServerConv;
    FOnChange: TNotifyEvent;
    FOnPokeData: TNotifyEvent;
    FFmt: Integer;
    procedure ValueChanged;
  protected
    function GetText: string;
    procedure SetText(const Item: string);
    procedure SetLines(Value: TStrings);
    procedure SetServerConv(SConv: TDdeServerConv);
    procedure Notification(AComponent: TComponent;
      Operation: TOperation); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function PokeData(Data: HDdeData): LongInt;
    procedure CopyToClipboard;
    procedure Change; dynamic;
    property Fmt: Integer read FFmt;
  published
    property ServerConv: TDdeServerConv read FServerConv write SetServerConv;
    property Text: string read GetText write SetText;
    property Lines: TStrings read FLines write SetLines;
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
    property OnPokeData: TNotifyEvent read FOnPokeData write FOnPokeData;
  end;


implementation

uses SysUtils, Dialogs, Consts, Clipbrd;

type
  EDdeError = class(Exception);
  TDdeSrvrConv = class;

{ TDdeSrvrItem }

  TDdeSrvrItem = class(TComponent)
  private
    FConv: TDdeSrvrConv;
    FItem: string;
    FHszItem: HSZ;
    FSrvr: TDdeServerItem;
  protected
    procedure SetItem(const Value: string);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function RequestData(Fmt: Word): HDdeData;
    procedure PostDataChange;
    property Conv: TDdeSrvrConv read FConv write FConv;
    property Item: string read FItem write SetItem;
    property Srvr: TDdeServerItem read FSrvr write FSrvr;
    property HszItem: HSZ read FHszItem;
  end;
  Mit Zitat antworten Zitat