pl.comp.lang.delphi
[Top] [All Lists]

Re: Modelowanie w Delphi

Subject: Re: Modelowanie w Delphi
From: "Wojciech \"Spook\" Sura"
Date: Thu, 31 Jul 2008 08:22:53 +0200
Newsgroups: pl.comp.lang.delphi


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! \/) \ !

<Prev in Thread] Current Thread [Next in Thread>
Privacy Policy