Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: werd ich Delphi 2005 können?

  Alt 17. Nov 2004, 10:52
Zitat von Robert_G:
"strict" ist ein Keyword von Delphi.Net und macht aus einem private/protected ein richtiges private/protected.
kleiner Bleistift:
Delphi-Quellcode:
type EineKlasse = class
  strict private fStrictPrivate :Integer;
         private fPrivate :Integer;
  strict protected fStrictProtected :Integer;
         protected fProtected :Integer;
end;

type EineAbleitung = class(EineKlasse)
  private procedure DoSomething;
end;

type EineGanzAndereKlasse = class
  private procedure DoSomething;
end;

procedure EineAbleitung.DoSomething;
begin
  fStrictPrivate := 1; // boom
  fPrivate := 1; // geht
  fStrictProtected := 1; // geht
  fPrivate := 1; // geht
end;

procedure EineGanzAndereKlasse.DoSomething;
begin
  fStrictPrivate := 1; // boom
  fPrivate := 1; // geht
  fStrictProtected := 1; // boom
  fProtected := 1; // geht
end;
Das das Wort "Assembly" aus der .Net-Welt stammt sollte dir auch schon untergekommen sein.

Zitat von Pseudemys Nelsoni:
muss ich delphi nachher noch komplett neu lernen oder wie :\
Glaube mir, unter .Net willst du kein Delphi benutzen.
Es ist in .Net normale (und auch gewollte) Praxis eine öffentliche Eigenschaft nach ihrem Typen zu benennen.
Da der Delphi compiler einfach nicht schlau genug ist um herauszufinden, wann du das gleiche Wort als Typ und wann als Eigenschaft benutzt, wirst du fast dazu gezwungen, den Typen in einer anderen Unit und unter einem anderen NameSpace zu deklarieren. Und dann musst du natürlich den Typen _IMMER_ inklusive kompletten NameSpace-Pfad ( ) angeben.
Jeder .Net-Delphianer wird diesen Schnipsel nur zu gut kennen (und hassen) gelernt haben:
Code:
  If SomeDialog.ShowDialog() = [b]System.Window.Forms.[/b]DialogResult.OK then
Ein TTypName kannst du unter .Net getrost vergessen, jeder C#'ler/VB.Net'ler wird sich bei dir "bedanken" für diese ollen Ts;

Edit: Schlectschreibung...


hallo robert, danke für deinen code, nur ganz verstehe ich ihn nicht.
z.B hier:

Delphi-Quellcode:
procedure EineGanzAndereKlasse.DoSomething;
begin
  fStrictPrivate := 1; // boom
  fPrivate := 1; // geht
  fStrictProtected := 1; // boom
  fProtected := 1; // geht
end;
wie können 2 felder daon gehen? Sie ist ja nicht von "EineKlasse" abgeleitet.

waren die alten "Private/Protected" felder keine "echten" ?

oh hab gar nicht gesehen das du noch mehr geschrieben hatttest....jo ich finde das auch doof das messagebox nun so aussieht: MessageBox.Show() O_o
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat