HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Caption property szerkesztő


Példaprogram letöltése

6215 bájt

A Label komponens Caption property-jében akár több soros sztring is megadható, erre azonban az Object Inspector-ban nem nagyon van lehetőség. Készítünk hát egy property szerkesztőt a TControl osztályból származó komponensek Caption property-jéhez, amelyben a property értéke kényelmesen szerkeszthető.

A mellékelt példaprogram megnyitása előtt a CaptEdit.pas-ban lévő property szerkesztőt telepítenie kell a Delphi alá.
A property szerkesztőhöz készítünk egy Form-ot, amelyen egy Memo komponens található. A Caption property maximum 255 karakter hosszú sztringet tartalmazhat, így a Memo komponens MaxLength property-jének értékét ennyire állítjuk.
A property szerkesztőt a TStringProperty osztályból fogjuk származtatni. Ennek GetAttributes függvényét felülírjuk, és a tulajdonságoknál megadjuk a paDialog értéket is:
Result := inherited GetAttributes + [paDialog];
Szükség van még az Edit eljárás felülírására is. Ebben először is létrehozzuk a Form-ot, majd beállítjuk a Memo komponens WantReturns property-jét. Ez a property azt mondja meg, hogy a szövegben több sor is megadható-e. A property szerkesztő az összes TControl-ból származó komponens Caption property-jéhez használható, így például a Form Caption property-jéhez is. Nyilvánvaló, hogy ott nem használhatunk több sort, így ezt eleve nem is engedélyezzük. A több sor megadási lehetőséget csak a TCustomLabel osztályból származtatott komponenseknél engedélyezzük:
Memo.WantReturns:=GetComponent(0) is TCustomLabel;
A GetStrValue függvénnyel lekérdezzük a property jelenlegi értékét, és átadjuk a Memo komponens Text property-jének.
Memo.Text:=GetStrValue;
A Form-ot a ShowModal függvénnyel jelenítjük meg. Ha ennek visszatérési értéke mrOK (OK gomb), akkor a SetStrValue eljárással beállítjuk az új értéket.
SetStrValue(Memo.Text);
A Form-nál is el kell végeznünk egy-két dolgot. Ha a Memo komponensben nem engedélyezett az Enter használata, akkor az OKButton komponensnél a Default property-t hamisra kell, illetve érdemes állítani. Ebben az esetben a Form bezárásakor gondoskodunk az Enter karakterek törléséről is, hiszen a vágólapról bármilyen szöveg beillesztése lehetséges a WantReturns property értékétől függetlenül.
if not Memo.WantReturns then begin
  Memo.Text:=StringReplace(Memo.Text, #13#10, '', [rfReplaceAll]);
end;
Kell még egy Register eljárás is, amiben az új property szerkesztőt hozzárendeljük a TControl osztály Caption property-jéhez. Ezt a RegisterPropertyEditor eljárással tesszük meg:
RegisterPropertyEditor(TypeInfo(TCaption), TControl, 'Caption', TCaptionPropertyEditor);

Cikksorozat

#IDKategóriaCikk címeSorozat
1018DelphiVonalkód készítő komponens1. rész
1028DelphiVonalkód nyomtatása a QuickReport-al2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 63. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |