AGB  ·  Datenschutz  ·  Impressum  







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

TPropertyEditor

Ein Thema von Pseudemys Nelsoni · begonnen am 19. Jun 2005 · letzter Beitrag vom 19. Jun 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

TPropertyEditor

  Alt 19. Jun 2005, 14:01
Moin,

ich habe schon ALLES hier im Forum gelesen was TPropertyEditor angeht, falls gleich kommt "Suche benutzen", hab auch deren Links zu anderen (englischen) Seiten gelesen usw...

Aber irgendwie kapier ichs immernoch nicht, mal steht da was von 2 Packages und in extra unit packen usw, aber irgendwie werd ich da nicht schlau draus, auch nicht aus den Methoden die man da überschreibt, z.b diese:

Delphi-Quellcode:
  function TFileNameProperty.GetAttributes: TPropertyAttributes;
  begin
    Result := [paDialog]
  end {GetAttributes};
Kann mir jemand genau beschreiben wie ich einen einfach Info Dialog erstelle, den ich vom OI aus aufrufen kann?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TPropertyEditor

  Alt 19. Jun 2005, 14:24
wann soll denn der Info-Dialog kommen? bei einem Doppelklick auf die Komponente (wäre ein Component-Editor) oder beim klick auf "..." bei einem Property. Und wozu einen Info-Dialog? Property-Editoren sind dazu da properties zu verändern...
Am besten du sagst mal was du überhaupt vorhast...
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: TPropertyEditor

  Alt 19. Jun 2005, 14:32
moin SirThornberry,

ich möchte natürlich keinen Info-Dialog, aber ich denke soetwas wäre vielleicht am einfachsten zu erklären....

Also es ist so,

ich brauche eine Property die ca so aussieht:

Zitat:
[MeineProperty [...]]
Bei einem klick auf den "[...]" Button soll sich ein von mir erstellter Dialog mit einem Listview öffnen, in dem man verschiedene Sachen eintragen kann.
So sollte die ListView ca aussehen:

http://80.171.82.129/prop.JPG


Hast du ne Idee wie ich das machen könnte?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TPropertyEditor

  Alt 19. Jun 2005, 14:39
also gehts um einen PropertyEditor.
Am besten du legst dir erstmal ein neues Form an für deinen Propertyeditor und baust dieses so das es voll funktionsfähig ist. Wenn du dies fertig hast kannst du dann daran gehen das ganze als property-editor zu registrieren.

Delphi-Quellcode:
unit uPropertyEditors;

interface

uses
  DesignEditors, DesignIntf, TheUnitOfYourComponent;

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


implementation

procedure Register;
begin //If it's an Integer Property
  RegisterPropertyEditor(TypeInfo(integer), TYourComponent, 'YourPropertyName', TYourPropertyEditor);
end;


procedure TYourPropertyEditor.Edit;
var LObj: TYourComponent;
    LEditForm: TYourEditForm;
begin
  if (GetComponent(0) is TYourComponent) then
  begin
    LObj := TYourComponent(GetComponent(0));
    //Now You can do something with LObj
    //For exampel you can show a form for Editing
    {
    LEditForm := TYourEditForm.Create(nil);
    if LEditForm.ShowModal = mrOK then
    begin
      LObj.YourPropertyName := EditingForm.Value;
      //If the Property has Changed
      Self.Designer.Modified;
    end;
    LEditForm.Free;
    }

  end;
end;

function TYourPropertyEditor.GetAttributes: TPropertyAttributes;
begin
   Result := [paMultiSelect, paDialog, paRevertable];
end;

end.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: TPropertyEditor

  Alt 19. Jun 2005, 14:41
Besten Dank

Edit: Schaut super aus, danke für deine Mühe

Noch ein paar Fragen:

wozu ist der erste Parameter von "RegisterPropertyEditor"? eine Property könnte ja auch strings UND integer enthalten, oder?

Was ist GetComponent(), bzw was ist die 0 darin? in der Hilfe steht das es ein Index sei, aber auf was bezieht sich der?

MfG
Mario
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TPropertyEditor

  Alt 19. Jun 2005, 15:23
Mit dem "GetComponent(0)" wird die Instanz zur aktuellen Componente geholt. Wenn du mehrere Componenten markierst solltest du über "GetComponent" alle markierten Componenten ansprechen können. In diesem beispiel wird nur die erste Componenten editiert. Über "PropCount" solltest du die Anzahl der markierten Componenten herausfinden können. Der Erste Parameter bei "RegisterPropertyEditor" gibt den Typ an. Je nach dem um welchen Typ es sich handelt musst du da eben was anderes hinschreiben (die Hilfe ist dein Freund)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:26 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