[delphi] procedure | i wlasciwie co to jest?

0

Procedure (a:string); coś;
begin
end;

właściwie to co można wstawić za te coś?
Jest jakiś spis tego razem z opisem do czego to służy?
A może nie jest tego dużo i by ktoś tu opisał?
Dzieki :]

0

To w ogóle sie kupuy nie trzyma. albo chcesz napisać procedure np.

Procedure NazwaProcedury(parametr1: Integer);

albo funkcję

Function NazwaFunkcji(parametr1: Integer): TypZwracany;

Różnica jest taka, że funkcjia zwraca wartość, a procedura nie. I właśnie typ tej wartości pisze się na końcu po dwukropku.

Lepiej przeczytaj jakiś kursik, bo to są absolutne podstawy podstaw!

0

jak widzisz tam nie ma dwokropka tylko srednik ;
Dodaje sie tam takie cos jak -> szukaj procedury nie zaleznie czy jest napisana nad toba

I rozne inne dopowiedzenia takie :)
Nie umiem tego wyjasnic dlatego pisze tutaj z nadzieja az ktos mi to jakos wytlumaczy troche :]

0

Jest to w tablicach Turbo Pascala ale nie jest dokładnie wytłumaczone:

assembler - procedura assemblerowa
np.

procedure dodaj; assembler;
asm
 Instrukcje;
end;

export - brak opisu

external - definiuje procedury i funkcje zewnętrzne (np. z DLLa)
np.

function Zsumuj(X,Y:Integer):Integer far; external 'TestDll' name 'DODAJ';

far - zastepuje dyrektywy kompilatora {$F+}...{$F-}

interrupt - występuje w deklaracji procedury sterującej przerwaniami

near - oznacza tzw. bliskie wywołanie

procedure Skok; near;

forward - funkcja lub procedura zapowiadająca. Domyślna dla deklaracji metod obiektu;

virtual - procedura (funkcja) dynamiczna

procedure Pisz; virtual;
0

O to właśnie mi chodziło dzięki :]

0

To ja jeszcze dodam jak działa overload

Przykład zastosowania overload. Mamy jakąś klasę bazową TKlasaBazowa, która posiada np. funkcję "Save(FileName: String)". Załóżmy, że chcialibyśmy teraz napisać klasę pochodną od TKlasaBazowa o nazwie TKlasaPochodna. Chcemy żeby klasa TKlasaPochodna też posiadała funkcję "Save(FileName: String)". W takim przypadku w klasie TKlasaPochodna deklarujemy tą funkcję i obok niej wpisujemy overload;

0

Przykład zastosowania overload. Mamy jakąś klasę bazową TKlasaBazowa, która posiada np. funkcję "Save(FileName: String)". Załóżmy, że chcialibyśmy teraz napisać klasę pochodną od TKlasaBazowa o nazwie TKlasaPochodna. Chcemy żeby klasa TKlasaPochodna też posiadała funkcję "Save(FileName: String)". W takim przypadku w klasie TKlasaPochodna deklarujemy tą funkcję i obok niej wpisujemy overload;

To opisałeś klauzulę override, a nie overload - odsyłam do lektury helpa ( a poza tym u Ciebie jest to statyczna metoda klasy więc i tak nie będzie działać).

0

Overloading w artykułach kiedyś opisałem: "Przeciążanie funkcji"

a jeszcze dostępne są:
dynamic
static
stdcall

w helpie opisane co powodują...

0
tiger napisał(a)

assembler - procedura assemblerowa

W Delphi zachowane tylko w celu wstecznej kompatybilności, procedury/funkcje całkowicie assemblerowe można deklarować równie dobrze bez użycia słowa kluczowego

assembler

. Tak samo niekonieczne jest używanie far

, <code class="delphi">near

, interrupt

, nie wiem, jak jest z <code class="delphi">forward

; niby niepotrzebne, ale kiedyś mi się kompilator kłócił o brak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1