Avatar billede hebo Nybegynder
19. januar 2006 - 16:22 Der er 6 kommentarer og
1 løsning

Oprette sub properties

Jeg er ved at lave en komponent og i den forbindelse skal man have muligheden for at vælge om de enkelte hjørner skal være afrundede. Så jeg har brug for at der er en property som kan udvides med 4 boolean felter. Det er lykkedes mig at lave en class som bliver vist med plusset men når man trykker på plusset bliver det bare til et minus, der kommer ikke mere frem.
Hvordan i alverden skal jeg gøre?
Avatar billede rocco_siffredi Nybegynder
21. januar 2006 - 12:27 #1
Prøv at nedarve din klasse, med boolean-felterne på, fra TPersistent.

// Rocco
Avatar billede hebo Nybegynder
21. januar 2006 - 14:04 #2
Jeg er ret ny i komponent programmering og jeg har prøvet alt synes jeg selv.
Så jeg ville foretrække et lille eksempel der rent faktisk virker :-)
Avatar billede rocco_siffredi Nybegynder
21. januar 2006 - 16:10 #3
Noget i stil med:

TBooleanObj = Class(TPersistent)
Private
  FBoolValue : Boolean;
Published
  Property BoolValue : Boolean Read FBoolValue Write FBoolValue;
end;

TBooleanComponent = Class(TComponent)
Private
  FBooleanObj : TBooleanObj;
Public
  Constructor Create(Owner : TComponent); Override;
  Destructor Destroy; Override;
Published
  Property BooleanObj : TBooleanObj Read FBooleanObj Write FBooleanObj;
end;

Constructor TBooleanComponent.Create(Owner : TComponent);
begin
  Inherited Create(Owner);
  FBooleanObj := TBooleanObj.Create;
end;

Destructor TBooleanComponent.Destroy;
begin
  FreeAndNil(FBooleanObj);
  Inherited Destroy;
end;


// Rocco
Avatar billede hebo Nybegynder
21. januar 2006 - 18:59 #4
Ja lige præcis. Det var den dumme create sub property jeg havde glemt.
Ved du også hvor jeg kan få den til at vise dem der er "true" ud for den post hvor +/- er ligesom den indbyggede "anchors" ?
Svar så du kan få point rocco og tak.
Avatar billede rocco_siffredi Nybegynder
22. januar 2006 - 00:15 #5
For at vise ligesom "Anchors", skal du lave din egen propertyeditor.
Jeg kan ikke lige huske i hovedet hvordan, men prøv at kigge i onlinehjælpen under klassen TPropertyEditor.
Der findes flere specialicerede propertyeditors, men de er desværre ikke beskrevet i onlinehjælpen. Der må du nok søge på Google (noget med +"propertyeditor" +"delphi").
Jeg ved at der f.eks. findes "TStringProperty", "TClassProperty", "TComponentProperty"...

Du skal benytte to pakker (som desværre ikke findes som DCU'er):

Uses
  DesignIntf, DesignEditors;

Idet at de ikke findes som DCU'er gør at de kun kan benyttes i dine komponentpakker, og ikke i almindelige units.


// Rocco
Avatar billede hebo Nybegynder
22. januar 2006 - 10:30 #6
tak for hjælpen rocco
Avatar billede rocco_siffredi Nybegynder
22. januar 2006 - 12:23 #7
Velbekomme
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester