Article View: pl.comp.lang.delphi
Article #334849Re: [outro] ]Re: Delphi do zastosowan domowych
From: Krzysztof Szyszka
Date: Thu, 19 Jan 2012 19:23
Date: Thu, 19 Jan 2012 19:23
45 lines
2968 bytes
2968 bytes
Użytkownik "R.e.m.e.K" napisał w wiadomości ...
> Dnia Thu, 19 Jan 2012 19:12:48 +0100, Krzysztof Szyszka napisał(a):
>
>> Użytkownik "R.e.m.e.K" napisał w wiadomości ...
>>> Nie twierdze, ze to tak samo wygodne - ale mozliwe - a o to byl spor :-D
>>
>> Spór był o to, że w Delphi nie da się deklarować zmiennych w obszarze
>> kodu i Twój przykład niczego nowego nie pokazuje. Nadal wszystkie
>> zmienne musisz deklarować po nagłówku procedury/funkcji, a przed
>> blokiem begin end.
>
> Nie do konca, to nie jest funkcja sensu stricte, bo nie da sie jej wywolac
> znikad, ona jest jakby poleceniem wykonywanym wewnatrz metody, tylko
> odroznia sie tym ze ma begin i end, tak jak klamry pokazane przez Johna:
>
> {
> int i;
> ...
> }
>
> I moze byc wsadzona w dowolne miejsce bloku kodu.
Jeśli nie widzisz różnicy, to John zadeklarował ZMIENNĄ w obszarze kodu,
a Ty zdefiniowałeś kompletną FUNKCJĘ z nagłówkiem, parametrami,
typem wyniku, zmiennymi lokalnymi i blokiem kodu, ale bez nazwy,
bo zrobiłeś to w miejscu jej jednorazowego użycia (wywołania).
Równie dobrze mógłbyś tej funkcji nadać dowolną nazwę i zadeklarować
ją jako funkcję lokalną, bo jej anonimowość nic szczególnego nie wnosi
poza pogorszeniem czytelności programu.
Użycie anonimowej funkcji ma swoje uzasadnienie dla purystów OOP,
którzy starają się zawrzeć 100% kodu danej klasy w obrębie jej definicji
i nie korzystać wewnątrz klasy z żadnych funkcji i procedur deklarowanych
na poziomie globalnym, a czasem muszą przekazać funkcję lub procedurę
jako parametr metody. Wtedy definicję takiej funkcji mogą napisać w miejscu
jej użycia.
--
pozdrowienia
Krzysztof Szyszka, X-Files Software
Developer of X-Files Components
Borland/CodeGear/Embarcadero Technology Partner
_________________________________________
Website: http://www.x-files.pl/ E-mail: news@x-files.pl
Technical Details
Message-ID:
<jf9qjm$fep$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<1nva6kty8t73b$.dlg@hell.heaven> <jf99kg$t6e$1@news.dialog.net.pl> <1uz0wn2wlz8k3.dlg@hell.heaven> <jf9mf7$27m$1@inews.gazeta.pl> <r7hsg3fxv351.dlg@hell.heaven>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Krzysztof Szyszka" <nomail@gazeta.pl> Newsgroups: pl.comp.lang.delphi Subject: Re: [outro] ]Re: Delphi do zastosowan domowych Date: Thu, 19 Jan 2012 20:23:27 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 46 Message-ID: <jf9qjm$fep$1@inews.gazeta.pl> References: <1nva6kty8t73b$.dlg@hell.heaven> <jf99kg$t6e$1@news.dialog.net.pl> <1uz0wn2wlz8k3.dlg@hell.heaven> <jf9mf7$27m$1@inews.gazeta.pl> <r7hsg3fxv351.dlg@hell.heaven> NNTP-Posting-Host: 89-78-213-108.dynamic.chello.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1327001014 15833 89.78.213.108 (19 Jan 2012 19:23:34 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 19 Jan 2012 19:23:34 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Priority: 3 X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-User: kszyszka1 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit