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 :]
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 :]
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!
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 :]
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;
O to właśnie mi chodziło dzięki :]
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;
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ć).
Overloading w artykułach kiedyś opisałem: "Przeciążanie funkcji"
a jeszcze dostępne są:
dynamic
static
stdcall
w helpie opisane co powodują...
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.