|
|
Jeśli komuś by się chciało, niech spróbuje przetestować modelowanie w Delphi
2007 - proszę utworzyć pusty projekt, dodać do niego moduł i wrzucić do
niego następujący kod:
<code>
unit Unit2;
interface
type TKlasa = class(TObject)
private
/// <summary>Pole</summary>
FPole : Integer;
protected
public
/// <summary>Konstruktor</summary>
constructor create;
/// <summary>Destruktor</summary>
destructor destroy;
published
end;
///<summary>Druga klasa</summary>
TDrugaKlasa = class(TObject)
private
///<summary>Prywatne pole</summary>
FPrivate : TKlasa;
///<summary>Drugie</summary>
FSecond : TDrugaKlasa;
protected
function GetWlasnosc2(index: integer; index2: boolean): TKlasa;
procedure SetWlasnosc2(index: integer; index2: boolean; const Value:
TKlasa);
public
///<summary>Konstruktor</summary>
///<param name="AData">Parametr konstruktora</param>
constructor create(AData : TKlasa);
/// <summary>Metoda klasowa</summary>
/// <param name="par1">Parametr 1</param>
/// <param name="par2">Parametr 2</param>
class procedure Metoda(par1, par2 : string);
/// <summary>Destruktor</summary>
destructor destroy; override;
/// <summary>Własność 1</summary>
property Wlasnosc1 : TKlasa read FPrivate write FPrivate;
/// <summary>Własność tablicowa</summary>
property Wlasnosc2[index : integer; index2 : boolean] : TKlasa read
GetWlasnosc2 write SetWlasnosc2;
published
end;
type TTrzeciaKlasa = class(TObject);
implementation
{ TDrugaKlasa }
constructor TDrugaKlasa.create(AData: TKlasa);
begin
inherited create;
end;
class procedure TDrugaKlasa.Metoda(par1, par2 : string);
begin
end;
destructor TDrugaKlasa.destroy;
begin
inherited;
end;
function TDrugaKlasa.GetWlasnosc2(index: integer; index2: boolean): TKlasa;
begin
result:=FPrivate;
end;
procedure TDrugaKlasa.SetWlasnosc2(index: integer; index2: boolean;
const Value: TKlasa);
begin
if index2 then
FPrivate:=Value;
end;
constructor TKlasa.create;
begin
inherited;
end;
destructor TKlasa.destroy;
begin
inherited;
end;
{ TKlasa }
end.
</code>
U mnie nie widzi kompletnie klasy TKlasa, próba przeniesienia TDrugaKlasa do
innego modułu (przy pomocy diagramu) powoduje że klasa znika kompletnie z
diagramu (znika z Unit2 i już nigdzie się nie pojawia), a do drugiego modułu
przenoszona jest tylko sekcja interface'u klasy. Jeśli w module TKlasę
zadeklarujemy jako forward (i jeszcze na domiar złego zdefiniujemy
///<summary></summary> dla tego forwardu), to nie wyświetla się Help Insight
dla wszystkich klas, ich metod i pól, a ściślej - wyświetla się summary z
forwarda.
Po wywaleniu całego cache'u modelowania, wszystkich plików DCU, RES, DPROJ
itp., w modelowaniu pojawiła się TDrugaKlasa. TTrzeciaKlasa już nie pokazał,
niestety.
Żeby było śmieszniej, w wersji 2006 wszystko działa *bez problemu*.
Argh.
Bardzo proszę kilka osób, które mają D2007 o sprawdzenie, czy u nich będą
podobne objawy - może to z moją wersją jest coś nie tak? Bo jeśli nie... to
kiedy możemy oczekiwać na poprawki do 2007, które NIE będą nazywały się 2008
albo 2009?
Pozdrawiam -- Spook.
--
! ._______. Warning: Lucida Console sig! //) !
! || spk || www.spook.freshsite.pl / _ """*!
! ||_____|| spook at op.pl / ' | ""!
! | ___ | tlen: spoko_ws gg:1290136 /. __/"\ '!
! |_|[]_|_| May the SOURCE be with you! \/) \ !
|
|