Gå til innhold

Delphi - Procedures, hvordan gjenbruke kode?


Anbefalte innlegg

Skrevet (endret)

Er ganske fersk når det kommer til Delphi, og har derfor et lite spørsmål ang. procedures. Tenkte å lage en procedure som utførte en spes. ting for meg, så jeg slapp å bruke den samme koden flere ganger, men opplever at det ikke helt vil funke.. Her er et eksempel på hva som fungerer:

 

procedure TForm1.Refresh1Click(Sender: TObject);
begin

IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));

   XMLDoc.FileName := IniFile.ReadString('feed', 'url', '');
   XMLDoc.Active:=True;

   StartItemNode := XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item');
   ANode := StartItemNode;
   repeat
     sTitle := ANode.ChildNodes['title'].Text;
     sLink := ANode.ChildNodes['link'].Text;

     with LV.Items.Add do
     begin
       Caption := sTitle;
       Subitems.Add(sLink);
     end;


     ANode := ANode.NextSibling;
   until ANode = nil;
   DeleteFile(ADPLocalFile);

   Screen.Cursor:=crDefault;

   IniFile.Free;

end;

 

Dette fungerer helt problemfritt, men derimot hvis jeg bytter ut procedure TForm1.Refresh1Click(Sender: TObject); delen med noe annet som feks procedure Test(Sender: TObject); så kommer det mange mange mange røde streker.. Noen som kan fortelle meg hvorfor? De er jo i samme filen så jeg trodde ikke at dette ville funke fint jeg. Som sagt, veldig fersk :blush:

 

#Topic endret av moderator#

Endret av Jankee
Videoannonse
Annonse
Skrevet

Het oppe på side i deklarasjonen av TForm1 er proseduren også, endre navn og parameter der og det burde fungere.

Skrevet

Prøvde det også, men fortsatt får jeg en hel haug med feilmeldinger..

 

[Error] Main.pas(47): E2003 Undeclared identifier: 'FileName'

[Error] Main.pas(48): E2003 Undeclared identifier: 'Active'

[Error] Main.pas(50): E2003 Undeclared identifier: 'DocumentElement'

[Error] Main.pas(50): E2066 Missing operator or semicolon

[Error] Main.pas(50): E2066 Missing operator or semicolon

[Error] Main.pas(50): E2066 Missing operator or semicolon

[Error] Main.pas(56): E2003 Undeclared identifier: 'LV'

[Error] Main.pas(58): E2003 Undeclared identifier: 'Caption'

[Error] Main.pas(59): E2003 Undeclared identifier: 'Subitems'

[Error] Main.pas(23): E2065 Unsatisfied forward or external declaration: 'TForm1.RefreshFeed'

 

 

 

Får ikke noen av disse feilene hvis jeg lager en knapp på form1 og kopierer over koden dit, men med engang jeg lager en ny procedure og prøver koden der så popper alle disse feilmeldingene opp..

Skrevet

Det fungerer når deklarasjonen ser san ut:

 

procedure Test;

 

og lengre nede:

 

 

procedure TForm1.Test;

  • 3 uker senere...
Skrevet (endret)

Bare et lite tips.

 

hvis du skriver procedure test; øverst og trykker ctrl-shift-c så vil delphi automatisk lage

procedure TForm1.test;

begin

 

end;

Endret av gerri28

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...