|
| Lave mit eget comp. Fra : ~*~ Mivi ~*~ |
Dato : 04-09-01 08:19 |
|
Hej
Jeg har lige et spørgsmål.
Lad os antage, at jeg ofte bruger en TEdit på en given form.
Denne TEdit bliver ALTID rettet mht. fontstørrelse, fontfarve,
baggrundsfarve, maxlænge m.m.
Kunne det lade sig gøre, at lave et nyt comp., som har lige præcis de
egenskaber, som jeg alligevel altid sætter ?
Michael
| |
gusse (04-09-2001)
| Kommentar Fra : gusse |
Dato : 04-09-01 14:28 |
|
Ja da
"
unit minedit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
Tminedit1 = class(Tedit)
private
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MineKomponenter', [Tminedit1]);
end;
{ Tminedit1 }
constructor Tminedit1.Create(AOwner: TComponent);
begin
inherited;
Color:=clGreen;
Font.Size:=14;
Font.COlor:=clwhite;
Text:='Delphi rock !"
end;
end.
"
"~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
news:6g%k7.1058$9V5.80950@news000.worldonline.dk...
> Hej
>
> Jeg har lige et spørgsmål.
>
> Lad os antage, at jeg ofte bruger en TEdit på en given form.
> Denne TEdit bliver ALTID rettet mht. fontstørrelse, fontfarve,
> baggrundsfarve, maxlænge m.m.
>
> Kunne det lade sig gøre, at lave et nyt comp., som har lige præcis de
> egenskaber, som jeg alligevel altid sætter ?
>
>
> Michael
>
>
>
| |
gusse (04-09-2001)
| Kommentar Fra : gusse |
Dato : 04-09-01 14:35 |
|
den skal så lige registeres !!
component-> install component
"gusse" <brian@inndevelop.com> wrote in message
news:3b94d73e$0$290$edfadb0f@dspool01.news.tele.dk...
> Ja da
>
> "
> unit minedit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
> StdCtrls;
>
> type
> Tminedit1 = class(Tedit)
> private
> { Private declarations }
> protected
> { Protected declarations }
> public
> constructor Create(AOwner: TComponent); override;
> { Public declarations }
> published
> { Published declarations }
> end;
>
> procedure Register;
>
> implementation
>
> procedure Register;
> begin
> RegisterComponents('MineKomponenter', [Tminedit1]);
> end;
>
> { Tminedit1 }
>
> constructor Tminedit1.Create(AOwner: TComponent);
> begin
> inherited;
> Color:=clGreen;
> Font.Size:=14;
> Font.COlor:=clwhite;
> Text:='Delphi rock !"
> end;
>
> end.
>
> "
> "~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
> news:6g%k7.1058$9V5.80950@news000.worldonline.dk...
> > Hej
> >
> > Jeg har lige et spørgsmål.
> >
> > Lad os antage, at jeg ofte bruger en TEdit på en given form.
> > Denne TEdit bliver ALTID rettet mht. fontstørrelse, fontfarve,
> > baggrundsfarve, maxlænge m.m.
> >
> > Kunne det lade sig gøre, at lave et nyt comp., som har lige præcis de
> > egenskaber, som jeg alligevel altid sætter ?
> >
> >
> > Michael
> >
> >
> >
>
>
| |
~*~ Mivi ~*~ (04-09-2001)
| Kommentar Fra : ~*~ Mivi ~*~ |
Dato : 04-09-01 15:09 |
|
Det kan man sådan set gøre med ALT ?!
Michael
"gusse" <brian@inndevelop.com> wrote in message
news:3b94d8d7$0$265$edfadb0f@dspool01.news.tele.dk...
> den skal så lige registeres !!
>
> component-> install component
> "gusse" <brian@inndevelop.com> wrote in message
> news:3b94d73e$0$290$edfadb0f@dspool01.news.tele.dk...
> > Ja da
> >
> > "
> > unit minedit1;
> >
> > interface
> >
> > uses
> > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
> Dialogs,
> > StdCtrls;
> >
> > type
> > Tminedit1 = class(Tedit)
> > private
> > { Private declarations }
> > protected
> > { Protected declarations }
> > public
> > constructor Create(AOwner: TComponent); override;
> > { Public declarations }
> > published
> > { Published declarations }
> > end;
> >
> > procedure Register;
> >
> > implementation
> >
> > procedure Register;
> > begin
> > RegisterComponents('MineKomponenter', [Tminedit1]);
> > end;
> >
> > { Tminedit1 }
> >
> > constructor Tminedit1.Create(AOwner: TComponent);
> > begin
> > inherited;
> > Color:=clGreen;
> > Font.Size:=14;
> > Font.COlor:=clwhite;
> > Text:='Delphi rock !"
> > end;
> >
> > end.
> >
> > "
> > "~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
> > news:6g%k7.1058$9V5.80950@news000.worldonline.dk...
> > > Hej
> > >
> > > Jeg har lige et spørgsmål.
> > >
> > > Lad os antage, at jeg ofte bruger en TEdit på en given form.
> > > Denne TEdit bliver ALTID rettet mht. fontstørrelse, fontfarve,
> > > baggrundsfarve, maxlænge m.m.
> > >
> > > Kunne det lade sig gøre, at lave et nyt comp., som har lige præcis de
> > > egenskaber, som jeg alligevel altid sætter ?
> > >
> > >
> > > Michael
> > >
> > >
> > >
> >
> >
>
>
| |
gusse (04-09-2001)
| Kommentar Fra : gusse |
Dato : 04-09-01 17:03 |
|
Ja, men hvis der bare er fordi du vil sætte font størrelse og farve så vil
jeg nu gøre således :
Det er lidt omstændigt at skulle lave 117 forskellige componenter afhængig
af hvilken farve du vil have :)
var
I: integer;
begin
for I:=0 to ComponentCount-1 do
if Components[i] is TEdit then begin
Tedit(Components[i]).font.color:=clBlue;
Tedit(Components[i]).Font.size:=13;
Tedit(Components[i]).Color:=clGreen;
end;
"~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
news:Rf5l7.1331$9V5.89898@news000.worldonline.dk...
> Det kan man sådan set gøre med ALT ?!
>
> Michael
>
> "gusse" <brian@inndevelop.com> wrote in message
> news:3b94d8d7$0$265$edfadb0f@dspool01.news.tele.dk...
> > den skal så lige registeres !!
> >
> > component-> install component
> > "gusse" <brian@inndevelop.com> wrote in message
> > news:3b94d73e$0$290$edfadb0f@dspool01.news.tele.dk...
> > > Ja da
> > >
> > > "
> > > unit minedit1;
> > >
> > > interface
> > >
> > > uses
> > > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
> > Dialogs,
> > > StdCtrls;
> > >
> > > type
> > > Tminedit1 = class(Tedit)
> > > private
> > > { Private declarations }
> > > protected
> > > { Protected declarations }
> > > public
> > > constructor Create(AOwner: TComponent); override;
> > > { Public declarations }
> > > published
> > > { Published declarations }
> > > end;
> > >
> > > procedure Register;
> > >
> > > implementation
> > >
> > > procedure Register;
> > > begin
> > > RegisterComponents('MineKomponenter', [Tminedit1]);
> > > end;
> > >
> > > { Tminedit1 }
> > >
> > > constructor Tminedit1.Create(AOwner: TComponent);
> > > begin
> > > inherited;
> > > Color:=clGreen;
> > > Font.Size:=14;
> > > Font.COlor:=clwhite;
> > > Text:='Delphi rock !"
> > > end;
> > >
> > > end.
> > >
> > > "
> > > "~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
> > > news:6g%k7.1058$9V5.80950@news000.worldonline.dk...
> > > > Hej
> > > >
> > > > Jeg har lige et spørgsmål.
> > > >
> > > > Lad os antage, at jeg ofte bruger en TEdit på en given form.
> > > > Denne TEdit bliver ALTID rettet mht. fontstørrelse, fontfarve,
> > > > baggrundsfarve, maxlænge m.m.
> > > >
> > > > Kunne det lade sig gøre, at lave et nyt comp., som har lige præcis
de
> > > > egenskaber, som jeg alligevel altid sætter ?
> > > >
> > > >
> > > > Michael
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
| |
Stig Johansen (05-09-2001)
| Kommentar Fra : Stig Johansen |
Dato : 05-09-01 04:05 |
|
gusse wrote:
> Ja, men hvis der bare er fordi du vil sætte font størrelse og farve så vil
> jeg nu gøre således :
>
> Det er lidt omstændigt at skulle lave 117 forskellige componenter afhængig
> af hvilken farve du vil have :)
>
> var
> I: integer;
> begin
> for I:=0 to ComponentCount-1 do
> if Components[i] is TEdit then begin
> Tedit(Components[i]).font.color:=clBlue;
> Tedit(Components[i]).Font.size:=13;
> Tedit(Components[i]).Color:=clGreen;
>
> end;
Det er ikke så smart, at rette properties i koden. Det betyder, at det ikke
er wysiwytyg mere.
Tænk i stedet på, at IDE'en og komponenter er levende i design fasen.
Lav en komponent, TRetFont, og benyt dennes create til at rette i dine
edits.
Denne komponent lægger du så på din form, hvorefter den retter dine
properties til. Derefter sletter du den bare.
Nedarvede komponenter er primært hvor du har brug for ekstra properties.
Jeg har eksempelvis:
TEdit
|-- TNumberEdit
( og en masse mere )
I TNumberEdit, er der indledningsvis kontrol på, at det kun er tal, der
indtastes.
Derudover indføres eksempelvis TNumberEdit.AsInteger osv..
Som du selv er inde på, kan du gøre det på stort set alt. Men vær opmærksom
på, at der i tidligere versioner er bøvl med nedarvning af TForm.
Jeg ved det virker i D5
Jeg ved der var bøvl i D3
Jeg ikke huske om der var bøvl i D4
Hvis du skal til at bygge dit eget komponent bibliotek, så planlæg det nøje.
--
Med venlig hilsen / Best regards
Stig Johansen
linux@w3data.dk
| |
|
|