/ 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
Brug af variabler og konstanter
Fra : Skindbeni


Dato : 24-06-05 12:00

I et program, som jeg skal i gang med, indgår der fra start en lang
række konstanter, som skal kunne bruges af (næsten) alle programmets
forme m.v.

Derudover skal brugerne kunne vælge nogle oplysninger, som skal slå
igennem og bruges i beregninger og visninger i samtlige forms i
programmet.

Ligeledes ender de forskellige forms og units med at give nogle
mellemresultater på udregninger, som igen skal kunne bruges i samtlige
forms.

Hvad vil i foreslå og hvordan kan det laves? Hvornår bør man anvende
konstanter, variabler eller nøjes med direkte læsning fra editbokse
m.v.? Hvornår bør man anvende public, private og lokale variabler i
forhold til hinanden? (der er vel ikke andre muligheder)

Og så et tillægsspørgsmål.

Er det rigtigt defineret, at forskellen på en coolbar og en toolbar
er, at toolbaren er et "færdigt element" i sig selv og derfor kan stå
alene i et program, mens coolbaren "kræver" at der indsættes mindst en
toolbar for at den har en funktion i et program.

 
 
Finn Bindeballe (24-06-2005)
Kommentar
Fra : Finn Bindeballe


Dato : 24-06-05 12:34

hej...

det gir lidt sig selv.... konstanter bruges, naar de IKKE ændres....
modsat variabler.
en megt brugt maade at gøre det paa, er at lave en unit, med alle dine
const. og vars.... saa skal du bare skrive den unit med i 'uses' ......

jeg gør ofte det, at oprettet en 'SettingsClass' som indeholder alle de
ting der skal kunne trimmes paa i min app. Den er saa nem og overskulig
at gemme - hvis det er hvad man vil. enten i reg, eller i en ini fil.

mht privat og public, har det egentligt ikke noget med sagen at gøre...
det er noget man bruger paa objecter ( classer) og beskriver hvordan og
hvad der kan tilgaaes 'udefra' - public kan tilgaaes af alle ....
private kan kun tilgaaes INDE fra dit object.

/F

Skindbeni (24-06-2005)
Kommentar
Fra : Skindbeni


Dato : 24-06-05 13:51

"Finn Bindeballe" <postmaster@127.0.0.1> skrev i en meddelelse
news:42bbef9a$0$300$edfadb0f@dread11.news.tele.dk...
> hej...

Hej Finn.

> det gir lidt sig selv.... konstanter bruges, naar de IKKE ændres....
> modsat variabler.

Selvfølgelig. Så langt så godt. Jeg tænkte mere på, hvornår det kunne svare
sig at ændre indholdet i en editboks til en variabel, som man læser fra i
stedet for at læse direkte fra editboksen, når man laver udregninger.

> en megt brugt maade at gøre det paa, er at lave en unit, med alle dine
> const. og vars.... saa skal du bare skrive den unit med i 'uses' ......

Ok. lyder som en god ide.

> jeg gør ofte det, at oprettet en 'SettingsClass' som indeholder alle de
> ting der skal kunne trimmes paa i min app. Den er saa nem og overskulig at
> gemme - hvis det er hvad man vil. enten i reg, eller i en ini fil.

Det afsnit faldt jeg af i

> mht privat og public, har det egentligt ikke noget med sagen at gøre...
> det er noget man bruger paa objecter ( classer) og beskriver hvordan og
> hvad der kan tilgaaes 'udefra' - public kan tilgaaes af alle .... private
> kan kun tilgaaes INDE fra dit object.

Okay, der var jeg vist så også gået lidt galt i byen. Hvad så, når hverken
public eller privat er anvendt, hvilket de stort set aldrig har været, hvor
jeg har set det.



Finn Bindeballe (27-06-2005)
Kommentar
Fra : Finn Bindeballe


Dato : 27-06-05 07:56

hej....

det er nok fordi du programere Pascal, som man gjorde i GL. dage.... det
er der heller ikke noget galt i , men du mister en masse smarte
muligheder, og dit program bliver (næsten) helt sikkert meget mere
uverskueligt end det var nødvendigt.

Hvis jeg var dig , villle jeg købe en bog som heder 'mastering DElphi 5'
af ham her : http://www.marcocantu.com/ -den er fremragende, og kan
købes for en slik.... evt paa ebay. - der er ingen grund til at købe en
nyere end MD5 , der staar strotset det sammen i dem ....

han har ogsaa skrevet en lille 'tutor' som er gratis, som ogsaa kan
hentes paa siden ,,,, jeg har ikke læst den ,men manden skriver godt, og
jeg vil tro at den er god....

mit raad er , at sætte dit project paa hold i et par uger, og saa læse
ovennævnte.... det lyder maaske trals, men det betaler sig i sidste
ende....

/F

Ukendt (07-07-2005)
Kommentar
Fra : Ukendt


Dato : 07-07-05 22:51

"Finn Bindeballe" <postmaster@127.0.0.1> skrev i en meddelelse
news:42bfa2e8$0$261$edfadb0f@dread11.news.tele.dk...
> hej....
>
> det er nok fordi du programere Pascal, som man gjorde i GL. dage.... det
> er der heller ikke noget galt i , men du mister en masse smarte
> muligheder, og dit program bliver (næsten) helt sikkert meget mere
> uverskueligt end det var nødvendigt.
>
> Hvis jeg var dig , villle jeg købe en bog som heder 'mastering DElphi 5'
> af ham her : http://www.marcocantu.com/ -den er fremragende, og kan
> købes for en slik.... evt paa ebay. - der er ingen grund til at købe en
> nyere end MD5 , der staar strotset det sammen i dem ....
>
> han har ogsaa skrevet en lille 'tutor' som er gratis, som ogsaa kan hentes
> paa siden ,,,, jeg har ikke læst den ,men manden skriver godt, og jeg vil
> tro at den er god....
>
> mit raad er , at sætte dit project paa hold i et par uger, og saa læse
> ovennævnte.... det lyder maaske trals, men det betaler sig i sidste
> ende....

Til denne tråd om konstanter og variabler har jeg et spørgsmål.

Kan ikke helt se sammenhængen eller forskellen på brugen af

=
eller
:=
eller
:

Så vidt jeg ved, skal konstanter erklæres med = og variabler skal erklæres
med : og så er der andre gange det skal erklæres med :=

Er der tommelfinger regler om det?



Michael Haase (08-07-2005)
Kommentar
Fra : Michael Haase


Dato : 08-07-05 08:13

Hans Larsen skrev:

> Til denne tråd om konstanter og variabler har jeg et spørgsmål.
>
> Kan ikke helt se sammenhængen eller forskellen på brugen af
>
> =
> eller
> :=
> eller
> :
>
> Så vidt jeg ved, skal konstanter erklæres med = og variabler skal erklæres
> med : og så er der andre gange det skal erklæres med :=
>
> Er der tommelfinger regler om det?
>
>
= bruges i const delen, når en konstant skal sættes lig noget.

: bliver brugt når konstantens/variablens type skal defineres, så du kan
f.eks. have:

const
suite : array[1..4] of string = ['hjerter','klør','ruder','spar'];

dvs et "konstant array" som består af 4 strenge, der er hjerter, klør,
ruder og spar.



:= bruges indenfor begin-end når der foretages en beregning, og der kan
man så sige at a:=4; er en beregning af a, selvom det måske ikke ændres
resten af programmet og dermed faktisk er en konstant.
Indenfor begin-end bruger man mig bekendt ikke :, og = bruges i
sammenligninger.

--
Michael Haase

Ukendt (23-07-2005)
Kommentar
Fra : Ukendt


Dato : 23-07-05 12:38

"Michael Haase" <micvans@netscape.net> skrev i en meddelelse
news:1012c$42ce274c$3e3d8433$18641@news.arrownet.dk...
> Hans Larsen skrev:
>
>> Til denne tråd om konstanter og variabler har jeg et spørgsmål.
>>
>> Kan ikke helt se sammenhængen eller forskellen på brugen af
>>
>> =
>> eller
>> :=
>> eller
>> :
>>
>> Så vidt jeg ved, skal konstanter erklæres med = og variabler skal
>> erklæres med : og så er der andre gange det skal erklæres med :=
>>
>> Er der tommelfinger regler om det?
> = bruges i const delen, når en konstant skal sættes lig noget.
>
> : bliver brugt når konstantens/variablens type skal defineres, så du kan
> f.eks. have:
>
> const
> suite : array[1..4] of string = ['hjerter','klør','ruder','spar'];
>
> dvs et "konstant array" som består af 4 strenge, der er hjerter, klør,
> ruder og spar.
>
>
>
> := bruges indenfor begin-end når der foretages en beregning, og der kan
> man så sige at a:=4; er en beregning af a, selvom det måske ikke ændres
> resten af programmet og dermed faktisk er en konstant.
> Indenfor begin-end bruger man mig bekendt ikke :, og = bruges i
> sammenligninger.

Hvis jeg så har oprettet en unit, som jeg ønsker skal slå igennem i alle
mine forms (hvad angår konstanter og variabler), hvordan gør jeg så det her?

I min interface del af unit'en har jeg oprettet et afsnit med "const" og et
med "var".

Men jeg ønsker jo også at tildele variablerne en værdi, for at de kan slå
igennem.

Fx (tror jeg da) vil det være hensigtsmæssigt at gemme værdien i en given
tekstboks i en variabel, hvis den skal bruges til beregning i flere
forskellige forme.

Men hvordan får jeg både erklæret og tildelt variablen. Erklæringen går fint
nok, men tildelingen giver problemer.

Jeg går ud fra, at det er fordi tildelingen skal ske under implementation og
i en begin-end blok.

Men er det eneste mulighed for at opnå, hvad jeg ønsker? Og er det den
rigtige løsning, jeg søger efter?.

Hvad skal jeg skrive _før_ begin. Der er jo ikke tale om en "normal"
procedure



Michael Haase (23-07-2005)
Kommentar
Fra : Michael Haase


Dato : 23-07-05 13:21

Hans Larsen skrev:

> Men hvordan får jeg både erklæret og tildelt variablen. Erklæringen går fint
> nok, men tildelingen giver problemer.
>
> Jeg går ud fra, at det er fordi tildelingen skal ske under implementation og
> i en begin-end blok.
>
> Men er det eneste mulighed for at opnå, hvad jeg ønsker? Og er det den
> rigtige løsning, jeg søger efter?.
>
> Hvad skal jeg skrive _før_ begin. Der er jo ikke tale om en "normal"
> procedure
>
>
Jeg ved ikke om det virker, men prøv noget lignede med

var a,b,c : integer;
x : real;

Procedure Unit2.TildelVarible;
begin
a:=combobox1.itemindex;
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
x:=strtofloat(edit1.text);
end;

Hvis der så ændres i værdierne kalder du proceduren igen med

Unit2.TildelVariable;

Nu må du ikke hænge mig op på om der er nogle fejl; men hvis jeg har
forstået dig rigtigt, så er det det princip jeg ville prøve med.

--
Michael Haase

Haastrup (20-07-2005)
Kommentar
Fra : Haastrup


Dato : 20-07-05 12:53

On Thu, 7 Jul 2005 23:51:26 +0200, "Hans Larsen" <Nospam> wrote:

>Til denne tråd om konstanter og variabler har jeg et spørgsmål.
>
>Kan ikke helt se sammenhængen eller forskellen på brugen af
>
>=
>eller
>:=
>eller
>:
>
>Så vidt jeg ved, skal konstanter erklæres med = og variabler skal erklæres
>med : og så er der andre gange det skal erklæres med :=
>
>Er der tommelfinger regler om det?

Ikke tommelfingerregler men helt firkantede regler.

Din forvirring skyldes at du sammenblander variabelerklæringer og
konstanterklæringer med variabeltildelinger ( := ) .
Erklæringer skal ske først. Tildelinger senere.

Eksempel

Const A=42 // kontanterklæring

Var B:integer // definerer B som et heltal

Begin

B:=2; // tildeler B værdien to
A:=2; // fejl. A er en kontant og kan ikke ændre værdi.

End.







Regards S. Haastrup.

N. Foldager (20-07-2005)
Kommentar
Fra : N. Foldager


Dato : 20-07-05 16:50


Haastrup:

> Ikke tommelfingerregler men helt firkantede regler.
>
> Din forvirring skyldes at du sammenblander variabelerklæringer og
> konstanterklæringer med variabeltildelinger ( := ) .
> Erklæringer skal ske først. Tildelinger senere.

Ja.

Men jeg vil nu give Hans Larsen ret i, at det ikke er et logisk valg,
Wirth gjorde dér i sin tid. Der havde jo ikke været noget i vejen
for, at man i CONST-delen havde kunnet tilskrive konstanterne deres
værdier vha. := . Sådan at det var konsekvent gennem hele
Pascal-sproget, at

:= betyder "sættes til"

og

= betyder "er lig med".

(Og så nævner jeg ikke ":" i type-erklæringerne.)

Venlig hilsen

Niels Foldager

Haastrup (20-07-2005)
Kommentar
Fra : Haastrup


Dato : 20-07-05 21:40

On Wed, 20 Jul 2005 17:49:34 +0200, N. Foldager
<nfoldager-takethisaway@yahoo.com> wrote:

>
>Haastrup:
>
>> Ikke tommelfingerregler men helt firkantede regler.
>>
>> Din forvirring skyldes at du sammenblander variabelerklæringer og
>> konstanterklæringer med variabeltildelinger ( := ) .
>> Erklæringer skal ske først. Tildelinger senere.
>
>Ja.
>
>Men jeg vil nu give Hans Larsen ret i, at det ikke er et logisk valg,
>Wirth gjorde dér i sin tid.

Skrev Hans det? Det så jeg ikke

> Der havde jo ikke været noget i vejen
>for, at man i CONST-delen havde kunnet tilskrive konstanterne deres
>værdier vha. := . Sådan at det var konsekvent gennem hele
>Pascal-sproget, at

>:= betyder "sættes til"
>
>og
>
>= betyder "er lig med".
>
>(Og så nævner jeg ikke ":" i type-erklæringerne.)

Jeg synes dog at erklæringen af initieret variabel
som

Const a:integer=2

tager prisen. Og så navnet "typed constant".... Der
er jo ikke tale om en konstant.
Men, det er jo iøvrigt ikke Wirth's skyld at Borland
valgte en så tåbelig navngivning.


Regards S. Haastrup.

N. Foldager (21-07-2005)
Kommentar
Fra : N. Foldager


Dato : 21-07-05 13:42


> >Men jeg vil nu give Hans Larsen ret i, at det ikke er et logisk valg,
> >Wirth gjorde dér i sin tid.

Haastrup:

> Skrev Hans det? Det så jeg ikke

Nej. men han tænkte det!

> Jeg synes dog at erklæringen af initieret variabel
> som
>
> Const a:integer=2
>
> tager prisen. Og så navnet "typed constant".... Der
> er jo ikke tale om en konstant.

Det må man sige.

Venlig hilsen

Niels Foldager

N. Foldager (20-07-2005)
Kommentar
Fra : N. Foldager


Dato : 20-07-05 10:27

Finn Bindeballe:


> det er nok fordi du programere Pascal, som man gjorde i GL. dage.... det
> er der heller ikke noget galt i , men du mister en masse smarte
> muligheder, og dit program bliver (næsten) helt sikkert meget mere
> uverskueligt end det var nødvendigt.


Vil du uddybe det en smule?

Venlig hilsen

Niels Foldager

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

Månedens bedste
Årets bedste
Sidste års bedste