IDE Window: Extract Procedure/fi

From Lazarus wiki
Jump to navigationJump to search

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