IDE Window: Extract Procedure/fi
Deutsch · English · Español · Français · Slovenčina · Suomi · Русский · 中文(中国)
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
From the Free Pascal wiki, page "IDE Window: Extract Procedure/fi", as it stood on 2020-02-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.