/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste