IDE Window: Extract Procedure/fi

From Free Pascal wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN)

Erota aliohjelma

Yleistä: "Erota aliohjelma" ottaa käyttäjän valitsemat Pascal-lauseet ja luo uuden aliohjelman / metodin tästä koodista. Tämä työkalu on hyödyllinen jakamaan suuria aliohjelmia tai helposti luomaan uuden aliohjelman jostakin osaa lähdekoodista.

Perusesimerkki:

 procedure DoSomething;
 begin
   CallSomething;
 end;

Valitse rivi "CallSomething;" ja suorita "Erota aliohjelma". Avaa valintaikkunan jossa voidaan valita tyypin ja aliohjelman nimen. Esimerkiksi: procedure, "NewProc". Tulos:

 procedure NewProc;
 begin
   CallSomething;
 end;
 
 procedure DoSomething;
 begin
   NewProc;
 end;

Niin kuin nähdään niin uusi aliohjelma "NewProc" luotiin valinnalla rungoksi ja vanha koodi korvattiin sen kutsulla.

Paikalliset muuttujat ja parametrit:
"Erota aliohjelma" skannaa käytetyt muuttujat ja luo automaattisesti parametriluettelon ja paikalliset muuttujat. Esimerkki:

 procedure TForm1.DoSomething(var Erni, Bert: integer);
 var
   i: Integer; // Comment
 begin
   Erni:=Erni+Bert;
   for i:=Erni to 5 do begin
   |
   end;
 end;

Valitse silmukka ja luo uusi aliohjelma "NewProc". Paikallista muuttujaa i käytetään vain valinnassa, joten se siirretään uuteen aliohjelmaan. Erniä käytetään myös jäljellä olevassa koodissa, joten siitä tulee parametri.

Tulos:

 procedure NewProc(const Erni: integer);
 var
   i: Integer; // Comment
 begin
   for i:=Erni to 5 do begin
   |
   end;
 end;
 
 procedure TForm1.DoSomething(var Erni, Bert: integer);
 begin
   Erni:=Erni+Bert;
   NewProc(Erni);
 end;

Nähdään, että "i" on siirretty uuteen aliohjelmaan (Huomaa: sen kommentti mukaan lukien) ja Erni.

Rajoitukset:

Pascal on hyvin tehokas ohjelmointikieli, joten ei pidä odottaa, että se toimii kaikkien koodien kanssa. Nykyiset rajoitukset / ToDos:

  • tarkista, onko valintarajat asetuksissa
  • "With" lause