/ 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
Hvorfor kan compileren ikke finde variable
Fra : Kurt Guldbæk


Dato : 22-07-03 22:30

Hej NG!

Jeg har efterhånden mange gange været ude for, at compileren melder følgende
fejl:
[Error] MAIN.pas(294): Undeclared identifier: 'EjendomImage'

Det sker typisk i følgende tilfælde:

Jeg har en procedure, der fungerer. Da noget af den skal bruges flere steder
laver jeg selv en ny procedure med et nyt navn og kopierer programstumpen
derover for at anvende den generelt.
Nu melder compileren [Error] MAIN.pas(294): Undeclared identifier:
'EjendomImage'

EKS:

Under Uses i toppen er bl.a. følgende erklæring
EjendomImage : TImage;

og senere følgende procedure:

//------------------------------------------------------------------
procedure TEjendomsForm.dbgBillederEjendomDblClick(Sender: TObject);
Var
F : TextFile;
S, BilledNavn, BilledExt : String;
FilFormat, ScreenFormat : Real; // Bredde/Hojde i fil og på skærm

begin
If EditMode Then
Begin
If OpenPictureDialog.Execute Then
Begin
BilledNavn :=
AnsiLowerCase(ExtractFileName(OpenPictureDialog.FileName));
BilledExt := AnsiLowerCase(ExtractFileExt(BilledNavn));
If (BilledExt = '.jpg') Or (BilledExt = '.bmp') Then
Begin
EjendomBilledFilNavn := ProgDir+'\Billeder\'+BilledNavn;
tbEjendomsBilleder.Open;
if not (tbEjendomsBilleder.State in [dsEdit]) then
tbEjendomsBilleder.Edit;
tbEjendomsBilleder.FieldByName('Filnavn').Text := BilledNavn;
tbEjendomsBilleder.Post;
.
.
// Reset til default
EjendomImage.Height := StartEjendomBilledHojde;<----- Fejler IKKE
her
.
.
.....................................

Derefter laver jeg:

//------------------------------------------------------------------
procedure FormatterEjendomBillede;
Begin
// Reset til default
EjendomImage.Height := StartEjendomBilledHojde; <----- Fejler her
EjendomImage.Width := StartEjendomBilledBredde;
EjendomImage.Left := StartEjendomBilledVenstre;
EjendomImage.Top := StartEjendomBilledTop;
.
.
End;

Hvad gør jeg forkert?

Mvh Kurt Gulkdbæk




 
 
Ib Jakobsen (22-07-2003)
Kommentar
Fra : Ib Jakobsen


Dato : 22-07-03 22:39

"Kurt Guldbæk" wrote:

>
>
> Hvad gør jeg forkert?

Er det ikke fordi det er en lokal variabel?. Knyttet til den første procedure.




--
Med venlig hilsen

Ib Jakobsen



Kurt Guldbæk (23-07-2003)
Kommentar
Fra : Kurt Guldbæk


Dato : 23-07-03 09:14

Hej Ib!
Det forstår jeg ikke rigtigt. Kan en egenskab være lokal, når den 'hænger'
på en komponent, som er erklæret under 'type'?
Der er ikke noget i vejen for at bruge egenskaberne i andre procedurer, bare
D5 selv får lov at lave erklæringen ved at jeg trykker på en EVENT.

Hvad skal jeg da gøre for at egenskaberne kan ses fra mine egne procedurer?

Mvh Kurt Guldbæk



"Ib Jakobsen" <senator@post.tele.dk> wrote in message
news:3F1DAF0D.5EFF630F@post.tele.dk...
> "Kurt Guldbæk" wrote:
> >
> > Hvad gør jeg forkert?
>
> Er det ikke fordi det er en lokal variabel?. Knyttet til den første
procedure.
> --
> Med venlig hilsen
>
> Ib Jakobsen



Uffe Kousgaard (23-07-2003)
Kommentar
Fra : Uffe Kousgaard


Dato : 23-07-03 11:06

"Kurt Guldbæk" <kurt@guldbaek.net> wrote in message
news:3f1e5969$0$48908$edfadb0f@dtext02.news.tele.dk...
>
> Hvad skal jeg da gøre for at egenskaberne kan ses fra mine egne
procedurer?

Du skal erklære din procedure under f.eks. private sektionen i
forbindelse med TEjendomsForm = class(TForm)

Derefter skal der stå følgende i implementeringsdelen:
procedure TEjendomsForm.FormatterEjendomBillede

Hilsen
Uffe


Kurt Guldbæk (23-07-2003)
Kommentar
Fra : Kurt Guldbæk


Dato : 23-07-03 22:31

Tak, Uffe, det vil jeg prøve om jeg kan få til at virke.
Mvh Kurt

"Uffe Kousgaard" <uffe@routeware.dk> skrev i en meddelelse
news:3f1e5e0f$0$83060$edfadb0f@dtext01.news.tele.dk...
> "Kurt Guldbæk" <kurt@guldbaek.net> wrote in message
> news:3f1e5969$0$48908$edfadb0f@dtext02.news.tele.dk...
> >
> > Hvad skal jeg da gøre for at egenskaberne kan ses fra mine egne
> procedurer?
>
> Du skal erklære din procedure under f.eks. private sektionen i
> forbindelse med TEjendomsForm = class(TForm)
>
> Derefter skal der stå følgende i implementeringsdelen:
> procedure TEjendomsForm.FormatterEjendomBillede
>
> Hilsen
> Uffe
>



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

Månedens bedste
Årets bedste
Sidste års bedste