Skocz do zawartości

[Delphi] Przeładowanie operatora


Force

Polecane posty

Temat trochę dziwny, bo nie chodzi o to jak coś zrobić, ale czey komuś sie to udało, bo jak to zrobić to teorie mam. Czy komuś się udało w Turbo Delphi przeładować operator, ale dla klasy? Chodzi mi przede wszystkim o oba operatory przypisania. Postepuję zgodnie z helpem, z którego wynika że da się, jedyny example to z rekordem liczby zespolonej i działa, a ja chce na klasie operatory przeładować. "Nie działa" - rzuca mi errory, że w sekcji może być tylko property, procedure/itp., var, tak dla każdej sekcji. Komuś się udało więc przeładować operator dla klas?

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Działa to dla Delphi for .NET, a obiektom z .NET bliżej do tych z normalnego Delphi (btw. co ładnie widać w C++/CLI).

 

Blind - nie ma to nic do rzeczy :P, przeładowania to tylko opakowanie w procedury / funkcje. Po prostu mieli pewnie sporo problemów z tym - w końcu klasy a rekordy... Wydaje mi się, że nie mieli tyle czasu, albo było to dość problematyczne w implementacji i pojawi się w niedalekiej przyszłości.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Macie:

KOD

 

TBColor = record

Red : byte;

Green : byte;

Blue : byte;

Alpha : byte;

end;

 

 

TGUIColor = class(TGUIChangable)

strict private

FColor : TBColor;

(..)

procedure SetColor2(value : TBColor);

public

property BEngineColor : TBColor read FColor write SetColor2;

(..)

 

class operator Implicit(color : TBColor):TGUIColor;

class operator Explicit(color : TGUIColor):TBColor;

end;

 

(..)

 

procedure TGUIColor.SetColor2(value : TBColor);

begin

FColor := value;

Change();

end;

 

class operator TGUIColor.Explicit(color: TGUIColor): TBColor;

begin

Result := color.BEngineColor;

end;

 

class operator TGUIColor.Implicit(color: TBColor): TGUIColor;

begin

Result.BEngineColor := color;

end;

 

Nie ma tego co nieistotne. Jak widać po prostu nie chce robić: MojaKlasa.BEngineColor := Color (typu TBColor), ale MojaKlasa := Color.

Edit:

Chyba rozwikłałem: "Delphi for .NET and Delphi for Win32 allow certain functions, or "operators" to be overloaded within record declarations. Delphi for .NET also allows overloading within class declarations." (Ja podkreśliłem). Potrzebowałem roku czytania tej strony helpa aby skumać :D Chyba zaraziłem się od Tostera chorobą kiepskiego czytania :P Idę się linczować

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Ale jeśli się postarać można zrobić przeciążenia operatorów w Delphi 6-7 :) - ale o tym w mojej książce "Delphi Pro Skill", bo wyszedłby z tego cały rozdział ;)

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Książka jest w opracowaniu. Zbieram moją cała ciekawszą wiedzę o Delphi w jedno miejsce, bo kto wie, któregoś dnia wpadnę pod coś warczącego i cała wiedza przepadnie xD...

 

"Delphi Pro Skill" a w nim w opracowaniu takie rozdziały jak :

 

-Przeciążenia operatorów w Delphi 6 >=

-Charakter skryptowy Delphi (ukryta moc) i coś czego nie ma i mieć nie będzie C++

-Interfejsy - przewaga nad wielokrotnym dziedziczeniem

-RTTI

-Zaawansowane RTTI

-Twoje klasy i automatyzacja zapisu do plików

-Delphi - zrozumieć potęgę

-DLL zlinkowane w plikach EXE jako unity

-Łączenie kodu C++/C i Delphi

-Metody anonimowe (to do)

-Generics (to do)

-FPC vs Delphi

-Zaawansowany FPC

-Triki i kod jakiego nie widziałeś

+/- Leksykon z najważniejszymi rzeczami

 

Taka mała biblia.

 

Ale to ściśle tajne ;)... Na razie zbiór artów :P, które łączę w książkę i jeśli bóg da to będzie gotowa najwcześniej na październik 2008. Książka wymaga ode mnie sporego nakładu pracy, bo uporządkować tyle rzeczy to nie lada wyzwanie (no i czekam na Delphi 2008, FPC 2.4 by dopisać kilka rozdziałów) nie wspominając o tym, że są tam rzeczy których nie ma w dokumentacji bądź jest w takich strzępach że uniemożliwia normalne używanie.

 

Ale się rozpisałem xD.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Ja bym może kupił, mam nadziej, że to Delphi >=6 oznacza, np. TD lub D2007, a nie że D6 lub D7 :) I gratuluje zaparcia i książki, której nie ma, ale będzie więc brawo :)

Mógłbyś podać jakieś podrozdziały dla:

-Charakter skryptowy Delphi (ukryta moc) i coś czego nie ma i mieć nie będzie C++

-Zaawansowane RTTI

? Tylko nagłówki podrozdziałów czy jakiś tam sekcji bo bardo ogólnikowo a mnie ciekawi :)

I nie rób e-book-a :P

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Stroustrup nie robił e-booka :>, więc raczej będę się trzymał tradycji :P

 

Oznacza to że w D6 i 7 jest przeciążanie operatorów :P...

 

Rozdział "Charakter skryptowy Delphi (ukryta moc) i coś czego nie ma i mieć nie będzie C++" będzie rozbity na dwa rozdziały. A ten charakter skryptowy... I bardzo dobrze, że ciekawi :). Jak książka będzie miała wyjść to przeczytasz spis treści, teraz jest to po prostu art a podrozdziały są ogólne i i tak nie zaspokoją Twej ciekawości :P.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Mnie łatwo zaspokoić, mnie tylko interesuje czy chodzi o pisanie języka skryptowego :)

I proponuje aby mod przeniósł cześć postów do nowego tematu o książce HNB (trza stworzyć) bo na temat to już nie jest :)

A do tych operatów to chodzi mi czy ta metoda zadziała w TD

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Zadziała :)

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Mnie łatwo zaspokoić, mnie tylko interesuje czy chodzi o pisanie języka skryptowego :)

I proponuje aby mod przeniósł cześć postów do nowego tematu o książce HNB (trza stworzyć) bo na temat to już nie jest :)

Popieram. :) Bardzo chciałbym poczytać coś o własnych językach skryptowych w Delphi (gdzieś tam może kiedyś napiszę swój).

Link do komentarza
Udostępnij na innych stronach

Chodzi raczej o wbudowane mechanizmy, bo Delphi samo w sobie może być językiem skryptowym i wspiera pisanie języków skryptowych.

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

coś czego nie ma i mieć nie będzie C++

 

ciekawe czego nie będzie mieć C++, chyba dużych plików wykonywalnych :lol:

 

Pozdrawiam!

 

P.S. też chętnie kupiłbym Twoją książkę, bierz się do pracy... abyśmy nie musieli długo czekać :rolleyes:

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...