Avatar billede skindbeni Nybegynder
26. juli 2008 - 14:15 Der er 2 kommentarer og
1 løsning

Bygge en custom property i en komponent

Hej.

Jeg er ikke så skrap til det der med at skrive eller rette i komponenter. Er
der en eller to, der er klogere end mig herinde på det område?

Jeg har købt en komponentpakke med en grid. I grid'ens rækker/celler er der
en form for padding i toppen og bunden af hver række/celle, således der
visuelt vises noget luft. Det irriterer mig og jeg vil gerne have denne
"luft" fjernet, således rækkerne står mere tæt og mere eller mindre kun kun
fylder tekstens højde.

Jeg har skrevet til firmaet, der har leveret grid'en, som har skrevet
følgende:

1. When working with a stand-alone editor, you can utilize its
ContentParams.Offsets property, for example

  cxTextEdit1.ContentParams.Offsets := Rect(5, 0, 0, 0); // Add a 5 pixel
margin at the left

2. For in-place editors, it is impossible to use ContentParams.Offset at
present. It is necessary to develop a custom Properties descendant and
override its CreateViewData method. To do the same operation at the Grid's
level, override the TcxCustomGridTableItem.CreateEditViewData method and
change the ViewData.EditContentParams value accordingly.

Hvordan kringles det lige?
Avatar billede hrc Mester
26. juli 2008 - 22:26 #1
Det er ikke svært. Jeg bruger det selv til at lave en generel styring af adgangskontrollen i mine programmer.

type
  TMyGrid = class(TMFGrid)
  private
  public
  end;

Hvis gridden har en protected sektion hvori Offsets-properties skriver du bare
  ..
  public
    property Offsets;
  end;

Det lader til at være tilfældet. Hvis ikke har den sikkert en privat attribut der hedder fOffsets og så er konstruktionen således:

  public
    property Offsets: TRect read fOffsets write fOffsets;
  end;

For at bruge din komponent er der to måder:
  1. Enten lave en komponent og registrere den til Delphis IDE
  2. En almindelig brugt "Quick'n'dirty" tilgang hvor du bruger den originale
    komponent, men retter klassenavnet til dit. Hvis du har MyGrid: TMFGrid så retter
    du det til MyGrid: TMyGrid hvorefter du kan bruge ovenstående properties.

Fordelen ved den sidste er at det er meget let at tilrette din klasse. Det er ikke nødvendigt at oversætte og registrere til Delphi. Du retter og oversættes.
Avatar billede skindbeni Nybegynder
27. juli 2008 - 12:00 #2
Klasse.

Lækkert at dygtige folk gider bruge deres tid herinde.

Tak for det, jeg afventer svar.
Avatar billede hrc Mester
28. juli 2008 - 08:40 #3
Med tak for komplimenten, et svar
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