|
| C++ builder 5, variabelerklæring Fra : Jens Cortsen |
Dato : 28-10-01 21:02 |
|
Hej
Hvor skal variabelerklæringen skrives, således den kan bruges i flere
forme.
Dvs. Overfører en værdi fra en form til en anden form.
Hilsen Jens
| |
Mogens Hansen (29-10-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 29-10-01 10:31 |
|
"Jens Cortsen" <jens.cortsen@city.dk> wrote in message
news:3BDC6455.7277EA6E@city.dk...
>
> Hvor skal variabelerklæringen skrives, således den kan bruges i flere
> forme.
Der er mange muligheder.
En (eller flere) global variable er en mulighed - men ikke umiddelbart
anbefalelsesværdigt.
Følg hellere de naturlige afhængigheder i programmet.
> Dvs. Overfører en værdi fra en form til en anden form.
Hvis f.eks. den ene form er hovedformen, lad os kalde den TMainForm, og den
anden er en dialogboks, hvor brugeren skal indtaste information, lad og
kalde den TDialogForm. TMainForm åbner en TDialogForm, når et menupunkt
aktiveres.
De naturlige afhængigheder er at TMainForm kender TDialogForm, men
TDialogForm kender ikke TMainForm.
Det vil derfor være naturligt (for at følge de afhængigheder, der findes) at
TMainForm tilgår informationen i TDialogFrom via properties som TDialogForm
stiller til rådighed (skrevet frit fra leveren, og ikke compileret):
void __fastcall TMainForm::ButtonClick(TObject* Sender)
{
// ...
if(mrOK == dialogForm->ShowModel()) {
// ...
address = dialogFrom->AdressEdit->Text;
// ...
}
}
Venlig hilsen
Mogens Hansen
| |
Jens Cortsen (29-10-2001)
| Kommentar Fra : Jens Cortsen |
Dato : 29-10-01 20:25 |
|
Hej
Jeg vil gerne høre om "En (eller flere) global variable er en mulighed" da det
er lige sådan en tybe jeg skal bruge.
Hilsen Jens
Mogens Hansen wrote:
> "Jens Cortsen" <jens.cortsen@city.dk> wrote in message
> news:3BDC6455.7277EA6E@city.dk...
> >
> > Hvor skal variabelerklæringen skrives, således den kan bruges i flere
> > forme.
>
> Der er mange muligheder.
> En (eller flere) global variable er en mulighed - men ikke umiddelbart
> anbefalelsesværdigt.
> Følg hellere de naturlige afhængigheder i programmet.
>
> > Dvs. Overfører en værdi fra en form til en anden form.
>
> Hvis f.eks. den ene form er hovedformen, lad os kalde den TMainForm, og den
> anden er en dialogboks, hvor brugeren skal indtaste information, lad og
> kalde den TDialogForm. TMainForm åbner en TDialogForm, når et menupunkt
> aktiveres.
> De naturlige afhængigheder er at TMainForm kender TDialogForm, men
> TDialogForm kender ikke TMainForm.
> Det vil derfor være naturligt (for at følge de afhængigheder, der findes) at
> TMainForm tilgår informationen i TDialogFrom via properties som TDialogForm
> stiller til rådighed (skrevet frit fra leveren, og ikke compileret):
>
> void __fastcall TMainForm::ButtonClick(TObject* Sender)
> {
> // ...
> if(mrOK == dialogForm->ShowModel()) {
> // ...
> address = dialogFrom->AdressEdit->Text;
> // ...
> }
> }
>
> Venlig hilsen
>
> Mogens Hansen
| |
Mogens Hansen (30-10-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 30-10-01 15:58 |
|
"Jens Cortsen" <jens.cortsen@city.dk> wrote
> Jeg vil gerne høre om "En (eller flere) global variable er en mulighed" da
det
> er lige sådan en tybe jeg skal bruge.
>
Det var egentligt ikke ment som en anbefaling (hvilket jeg også skrev).
Globale variable er typisk noget snavns, som giver problemer over tid.
En global variabel er en variabel, som er erklæret i globalt namespace, som
alle kan tilgå.
Hvis du alligevel vil gøre det, så kan du lave en header fil, hvor der
f.eks. står
extern int globalInt;
og en implementeringsfil, hvor der står
int globalInt;
Alle filer, der vil tilgå variablen skal blot includere headerfilen.
Jeg vil klart anbefale den anden løsning, som jeg skitserede.
Venlig hilsen
Mogens Hansen
| |
|
|