home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 January
/
Chip_1999-01_cd.bin
/
zkuste
/
delphi
/
D4
/
COOLFORM.ZIP
/
MaskEditor.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-09-15
|
2KB
|
91 lines
unit MaskEditor;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, maskgenerator, dsgnintf;
type
TCoolMaskEditor = class(TPropertyEditor)
private
FValue:string;
public
destructor destroy;override;
procedure Edit;override;
function GetAttributes: TPropertyAttributes;override;
function getname:string; override;
function getValue:string; override;
published
property Value:string read FValue write FValue;
end;
var
FormCreated:boolean=false;
implementation
uses
CoolForm;
function TCoolMaskEditor.getname:string;
begin
result:='Mask';
end;
function TCoolMaskEditor.getValue:string;
begin
result:='Mask';
end;
destructor TCoolMaskEditor.Destroy;
begin
if Formmaskgenerator<>nil then
begin
FormMaskGenerator.Free;
FormMaskGenerator:=nil;
FormCreated:=false;
end;
inherited;
end;
function TCoolMaskEditor.GetAttributes: TPropertyAttributes;
begin
// Make Delphi display the (...) button in the objectinspector
Result := [paDialog];
end;
procedure TCoolMaskEditor.Edit;
//******************* Unknown *************************
begin
// Create the maskeditorform if it doesn`t exist yet
if not assigned(FormMaskGenerator) then
begin
formMaskGenerator:=TFormMaskGenerator.Create(nil);
formMaskGenerator.OriginalRegionData:=nil;
formMaskGenerator.SaveOriginalRegionData;
FormCreated:=true;
end;
with formMaskGenerator do
begin
// Set the existing mask in the editor
formMaskGenerator.Rgn1:=hrgn(TRegionType(GetOrdValue).Fregion);
// copy the bitmap into the editor
Image1.picture.bitmap.Assign(TRegionType(GetOrdValue).owner.picture.bitmap);
opendialog1.filename:='';
Showmodal;
// get the new region from the editor
hrgn(TRegionType(GetOrdValue).Fregion):=formMaskGenerator.Rgn1;
// note: the editorform must not be freed here
// if done, delphi eats lines of the sourcecode of the form in which coolform is used
// (every line where a visible component is defined) ... rather strange
end;
end;
end.