AGB  ·  Datenschutz  ·  Impressum  







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

Property-Editor

Offene Frage von "cYaONE"
Ein Thema von cYaONE · begonnen am 31. Jul 2003 · letzter Beitrag vom 1. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#1

Property-Editor

  Alt 31. Jul 2003, 09:15
Servus,

ich bin gerade dabei, eine eigene Komponente zu schreiben!
Jetzt hab ich nur das Problem, das ich nicht weiß wie ich mit so einem Property Editor umgehen muss ...

Könnt ihr helfen?

PS: Ich muss übrigens auf ein TStrings-Objekt zugreifen!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Property-Editor

  Alt 31. Jul 2003, 09:32
Die Suche nach Hier im Forum suchenProperty and Editor bringt die Tiefen der DP ans Licht:

http://www.delphipraxis.net/viewtopic.php?t=6916

Als kleiner Start. Wenn Du noch mehr Tipps benötigst, dann gib uns Bescheid

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#3

Re: Property-Editor

  Alt 31. Jul 2003, 10:05
Das Beispiel hab ich mir schon einmal angesehen, aber nicht wirklich verstanden ...
Gibt's denn kein Tutorial darüber?
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#4

Re: Property-Editor

  Alt 31. Jul 2003, 11:06
Ich hab den Code von dir jetzt bei mir eingefügt:

Delphi-Quellcode:
unit TestComponent;

interface

uses
  SysUtils, Classes, DesignEditors, DesignIntf;

type
  TTestComponent = class(TComponent)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }

  end;
  TComponentMeineAuswahlEditor = class(TStringProperty)
  public
    procedure GetValues(Proc: TGetStrProc); override;
    function GetAttributes: TPropertyAttributes; override;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('cYaONE', [TTestComponent]);
  RegisterPropertyEditor(TypeInfo(String), TTestComponent,
      'MeineAuswahl', TComponentMeineAuswahlEditor);

end;

function TComponentMeineAuswahlEditor.GetAttributes: TPropertyAttributes;
begin
  // the property editor will provide a sorted list of possible values
  Result := [paValueList, paSortList];
end;

procedure TComponentMeineAuswahlEditor.GetValues(Proc: TGetStrProc);
begin
  // for each possibility call proc with the string
  Proc('Wert 1');
  Proc('Wert 2');
  Proc('Wert 3');
  Proc('Wert 4');
  Proc('Wert 5');
  Proc('Wert 6');
end;

end.
Das lässt sich auch einwandfrei kompilieren, doch im Objektinspektor ist nichts zu sehn ...
... ich weiß, das liegt daran das ich noch keine Property gesetzt habe, aber auf was muss die Property verweisen?
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Property-Editor

  Alt 31. Jul 2003, 16:57
Hallo,

du must das noch mit RegisterPropertyEditor in der Register - Procedure registrieren, dann solte es funktionieren

Mfg Matthias
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Property-Editor

  Alt 31. Jul 2003, 16:59
Sorry nochwas vergessen,

ich habe bei mir noch die funktion "procedure Edit; override;" eingefügt, vielleicht liegts auch daran

Mfg Matthias
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#7

Re: Property-Editor

  Alt 31. Jul 2003, 17:32
Wo muss da noch die Edit-Procedure rein?

Könntest du es mal ausprobieren und dann den kompletten Code posten?
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Property-Editor

  Alt 31. Jul 2003, 17:52
Hallo,

der Code:

Delphi-Quellcode:
     TAboutXPComboBox = class(TPropertyEditor)
     Public
       procedure Edit; override;
       function GetAttributes: TPropertyAttributes; override;
       function GetValue: string; override;
     end;


procedure TAboutXPListBox.Edit;
begin
  //Aboutdialog anzeigen
  MessageDlg('Huhu das ein Info - Dialog',mtInformation, [mbOK], 0);
end;

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

function TAboutXPListBox.GetValue: string;
begin
  Result := '(Info)';
end;

Procedure Register
begin
  RegisterPropertyEditor(TypeInfo(TAboutXPListBox), TXPListBox, 'ABOUT', TAboutXPListBox);
end;
Das hab ich zumindest und es funktioniert bei mir.

Es erscheinen ein Property About mit dem Wert "(Info)" und wenn es angeklickt wird einem Button mit drei Punkten auf der rechten Seite und wenn es angeklickt wird erscheint die MessageBox.

Achso du benötigst die Unit DsgnIntf um das das funktioniert

Mfg Matthias

[edit=sakura]Delphi-Tags gesetzt. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Property-Editor

  Alt 31. Jul 2003, 17:55
achso ich vergass, du definierst das Property mit:

type TXPListBox = class(TCustomControl)
private
fAbout: TAboutXPListBox;
published
property About: TAboutXPListBox read fAbout write fAbout;
end;
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#10

Re: Property-Editor

  Alt 31. Jul 2003, 20:05
Jipi! Endlich funktioniert es!
Aber wie kann ich jetzt einen String Editor öffnen lassen und diese Strings in ein TStrings-Objekt schreiben/daraus lesen?

Hier nochmal der komplette Code:

Delphi-Quellcode:
unit uTestComp;

interface

uses
  SysUtils, Classes, Controls, Dialogs, DesignIntf, DesignEditors;

type
  TAboutXPListBox = class(TPropertyEditor)
  Public
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
  end;
  TXPListBox = class(TCustomControl)
  private
    fAbout: TAboutXPListBox;
  published
    property About: TAboutXPListBox read fAbout write fAbout;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterPropertyEditor(TypeInfo(TAboutXPListBox), TXPListBox, 'ABOUT', TAboutXPListBox);
    RegisterComponents('cYaONE', [TXPListBox]);

end;


procedure TAboutXPListBox.Edit;
begin
//Aboutdialog anzeigen
MessageDlg('Huhu das ein Info - Dialog',mtInformation, [mbOK], 0);
end;

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

function TAboutXPListBox.GetValue: string;
begin
Result := '(Info)';
end;


end.
  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 23:56 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