/ 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
Enabled := False på alle knapper mv.
Fra : Søren Aaholm Møller


Dato : 10-11-01 17:54

Hej,

Jeg har en form som består af et utal af indstillingsmuligheder mv...

Men alle disse muligheder skal det være muligt at slå fra. Er der en
kommando der kan gøre det for alle 'enhedre' på formen?

Eller er jeg nødt til at gå den kedelige vej og lave en procedure for det?

// Søren





 
 
Micki Pedersen (11-11-2001)
Kommentar
Fra : Micki Pedersen


Dato : 11-11-01 23:21

> Men alle disse muligheder skal det være muligt at slå fra. Er der en
> kommando der kan gøre det for alle 'enhedre' på formen?

Ja du kan lave en for-løkke, men da det er lang tid siden jeg har brugt
Delphi, kan jeg ikke huske det, jeg kan dog prøve at kigge på det hvis det
skulle være...

> Eller er jeg nødt til at gå den kedelige vej og lave en procedure for det?

Nej, mon ikke nogle andre herinde lige kan lave den for-løkke? ;)

> // Søren
- Micki Pedersen



Claus Nielsen (11-11-2001)
Kommentar
Fra : Claus Nielsen


Dato : 11-11-01 23:45

>> Eller er jeg nødt til at gå den kedelige vej og lave en procedure for det?

>Nej, mon ikke nogle andre herinde lige kan lave den for-løkke? ;)

Okay, så lad gå da... Én måde at løse problemet på kan være sådan her:

procedure TForm1.SaetStatus(bStatus: Boolean);
var
iTaeller: Integer;
begin
for iTaeller := 0 to Form1.ComponentCount - 1 do
if Form1.Components[iTaeller].ClassType = TButton then
TButton(Form1.Components[iTaeller]).Enabled := bStatus;
end;

Bemærk at vi løber alle komponenter igennem, der tilhører Form1. Hvad
man herefter gør kan være forskelligt. Jeg har valgt at sammenligne
med om aktuelle komponent er af typen TButton. Og hvis det er
tilfældet, så sætter jeg aktuelle komponents tilstand til True eller
False. Dette gør jeg ved at typecaste komponenten som en TButton -
hvilket jeg kan tillade mig, da jeg forinden lige har sikret mig, at
det virkelig også ér en button. Det vil ellers give problemer, hvis
jeg f.eks. forsøger at... hmm, typecaste en label-komponent som en
button, hvis jeg bruger en property der ikke findes i TLabel klassen,
men kun i TButton klassen.

Mulighederne her er uendelige - og kan virkelig gøre ens kode noget
pænere og smartere. Man kan jo begynde at kombinere det med Tag numre
og så videre... Typecasting er cool! :)

Mvh, Claus Nielsen
--
e-mail: cnn@post6.tele.dk
homepage: http://home6.inet.tele.dk/cnn

Micki Pedersen (12-11-2001)
Kommentar
Fra : Micki Pedersen


Dato : 12-11-01 10:52

> Okay, så lad gå da... Én måde at løse problemet på kan være sådan her:
>
> procedure TForm1.SaetStatus(bStatus: Boolean);
> var
> iTaeller: Integer;
> begin
> for iTaeller := 0 to Form1.ComponentCount - 1 do
> if Form1.Components[iTaeller].ClassType = TButton then
> TButton(Form1.Components[iTaeller]).Enabled := bStatus;
> end;

Yep, det var nogenlunde det stykke kode jeg havde set før...

> Mulighederne her er uendelige - og kan virkelig gøre ens kode noget
> pænere og smartere. Man kan jo begynde at kombinere det med Tag numre
> og så videre... Typecasting er cool! :)
>

Agree...

- Micki Pedersen



Uffe Kousgaard (11-11-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 11-11-01 23:36

Søg på ComponentCount i hjælpen og læs eksemplet. Så skulle du være et godt
stykke på vej.

Hilsen
Uffe

"Søren Aaholm Møller" <swdata@image.dk> wrote in message
news:HZcH7.2961$Gt.196023@news000.worldonline.dk...
> Hej,
>
> Jeg har en form som består af et utal af indstillingsmuligheder mv...
>
> Men alle disse muligheder skal det være muligt at slå fra. Er der en
> kommando der kan gøre det for alle 'enhedre' på formen?
>
> Eller er jeg nødt til at gå den kedelige vej og lave en procedure for det?
>
> // Søren
>
>
>
>



R. A. Larsen (12-11-2001)
Kommentar
Fra : R. A. Larsen


Dato : 12-11-01 20:46

"Søren Aaholm Møller" <swdata@image.dk> wrote:
>
> Hej,
>
> Jeg har en form som består af et utal af indstillingsmuligheder mv...
>
> Men alle disse muligheder skal det være muligt at slå fra. Er der en
> kommando der kan gøre det for alle 'enhedre' på formen?

Nej, der findes ikke en indbygget kommando, men jeg har fundet en unit på
"Delphi Super Page" <URL:http://sunsite.icm.edu.pl/delphi/>, som kan gøre det.
Du skal dog selv angive hvilke "enheder" du vil deaktivere. Her er et uddrag
fra informationen:

[DSP upload]
Filename=Toola.zip
Replacements=
Version=1.00
FileURL=
Description=Tools unit allows you the reduce code size in about a half since
you wouldn't have to deal with : Button1.Enabled:=... Button2.Enabled:= insted
just write : EnableControls([Button1,Panel1,Panel2],not Empty); Best way to
recude code size !


MVH, René
--
Using Virtual Access
http://www.vamail.com


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

Månedens bedste
Årets bedste
Sidste års bedste