AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi property mit Combobox im Objektinspektor (Typ String)
Thema durchsuchen
Ansicht
Themen-Optionen

property mit Combobox im Objektinspektor (Typ String)

Ein Thema von danielA · begonnen am 4. Jul 2003 · letzter Beitrag vom 13. Mai 2004
Antwort Antwort
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1
  Alt 13. Mai 2004, 10:18
Zitat von sakura:
Dazu musst Du einen Property-Editor schreiben und registrieren. Hier ein kleines Beispiel, aber leider nicht die Zeit, es großartig zu erklären.

In der Procudure Register, in welcher Du Deine Komponente registrierst, musst Du nach deren Registrierung den Editor registrieren.
Delphi-Quellcode:
// Beispiel
  RegisterPropertyEditor(TypeInfo(String), TMeineKomponente,
      'MeineAuswahl', TComponentMeineAuswahlEditor);
Hier noch die Klasse des Editors:
Delphi-Quellcode:
type
  TComponentMeineAuswahlEditor = class(TStringProperty)
  public
    procedure GetValues(Proc: TGetStrProc); override;
    function GetAttributes: TPropertyAttributes; override;
  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;
......
So, das hab ich gleich mal versucht. Hab die "DesignIntf" eingebunden und meine Proc Register sieht so aus:

Code:
procedure Register;
begin
  RegisterComponents('QuickRep 4 (SK)',[TSKQRAdressLabel]);
  RegisterPropertyEditor(typeinfo(string), TSKQRAdressLabel, 'Strings', TAdressLabelPropertyEditor);
end;
Als ich dann den Type "TAdressLabelPropertyEditor" deklarieren wollte ging es nicht. Der Code:

Code:
type TAdressLabelPropertyEditor = class(TStringProperty)
  public
    procedure GetValues(Proc: TGetStrProc); override;
    function GetAttributes: TPropertyAttributes; override;
  end;
Problem: Der Type "TStringProperty" ist undefiniert. Hab zwar die Unit gefunden (DesignEditors.pas) aber wenn ich die einbinde, findet er in der Unit DesignEditors.pas die Datei "Proxies.dcu /.pas" nicht. Was soll ich machen?? Kann die Datei nirgends finden

Frage: Reicht das was du geschrieben hast um ne Property vom Typ String auszulesen und zu schreiben?
Sebastian
Ehemals bekannt als General2004
  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:32 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