/ 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
Hvor hører formen til?
Fra : Niels


Dato : 28-03-01 18:19

Hejsa

Jeg er i gang med nogen nye komponenter der skal kunne styre designet af
ens program. Det betyder at man skal kunne lægge et koponent på en
hvilken som helst form i ens projekt og så kan det blandt andet styre
baggrundsfarven på alle forms. Problemet er at jeg ikke vil til at lave
en ny klasse der arver fra TForm (som man så bliver nødt til at bruge i
stedet), og derfor kører jeg gennem Screen.Forms når jeg vil opdatere
alle forms i programmet.
Nu kommer problemet så: Desværre så er Delphi's egne vinduer (Object
Inspector osv.) også inkluderet i Screen.Forms mens man er i
design-time, så derfor ændrer de *også* farve! Og det ser ikke ligefrem
kønt ud. Er der en måde hvorved jeg nemt (helst kun en eller to linier
kode) kan kende Delphi's vinduer fra de forms der hører til i
programmet?
Indtil videre tjekker jeg bare for (csDesigning in ComponentState), men
problemet med den metode er at man ikke kan se sine ændringer i
design-time, og det er jo ikke så godt.

Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages

 
 
N/A (29-03-2001)
Kommentar
Fra : N/A


Dato : 29-03-01 16:11



Niels (29-03-2001)
Kommentar
Fra : Niels


Dato : 29-03-01 16:11

Just as I expected, Thomas Riedel, LogiHouse came up with this:

>procedure setformscolor(newcolor : tcolor)
>var i : integer;
>begin
> with application do
> for i := 0 to Componentcount-1 do
> if components[i] is tform then
> with components[i] as tform do
> color := newcolor;
>end;

Det svarer vel til at løbe gennem Screen.Forms array'en.(Ikke prøvet.)
Men problemet for mig er jo at når jeg har et komponent jeg bruger i
Delphi, så er komponenten en del af *Delphi* og ikke det program jeg er
ved at udvikle! Altså er det hele Delphi's Application variabel jeg
henviser til når jeg skriver Application i min kode. Prøv selv at lave
et nyt komponent der har et property der udfører den funktion du lige
har beskrevet når det sættes til True og se hvad der sker når du ændrer
propertien fra Object Inspector.

Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages

N/A (30-03-2001)
Kommentar
Fra : N/A


Dato : 30-03-01 14:41



Niels (30-03-2001)
Kommentar
Fra : Niels


Dato : 30-03-01 14:41

Just as I expected, Thomas Riedel, LogiHouse came up with this:

>> Det svarer vel til at løbe gennem Screen.Forms array'en.(Ikke prøvet.)
>Nej
>Application er kun din egen application.

Well, nu har jeg fundet en anden løsning der også er mere fleksibel.
Jeg har simpelthen lavet et *nyt* komponent man putter på alle forms der
skal affekteres af design-ændringen.

Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste