Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu Type (https://www.delphipraxis.net/16608-frage-zu-type.html)

Pseudemys Nelsoni 20. Feb 2004 07:13


Frage zu Type
 
hi,

wenn man ein neues programm startet hat man doch folgendes mit im source:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Frage1 dazu: worauf bezieht sich das "end;"
Frage2 dazu: wieso ist Edit1 mit im Typ teil? muss ein neuer typ nicht mit = statt : zugewisen werden?

mirage228 20. Feb 2004 07:15

Re: Frage zu Type
 
Hi!

zu 1.: Das End; bezieht sich auf das "type"
zu 2.: Edit1 ist eine Variable vom Typ TEdit. (Der neue Typ ist das Formular (TForm1), dass von der Basisklasse TForm abgeleitet ist!)

mfG
mirage228

SirThornberry 20. Feb 2004 07:23

Re: Frage zu Type
 
Das "end" bezieht sich auf "TForm1 = class(TForm)" - Irgendwie muss ja der Compiler wissen wo die Klassendefinition (oder isses die Klassendeklaration?) aufhört

Pseudemys Nelsoni 20. Feb 2004 07:26

Re: Frage zu Type
 
wenn ich eigene typen definiere haben die nie ein "end;", wieso dieses?

EDIT: achja, und ist es also möglich (wäre wohl unnütz), private und public in jeder type anweisung mit reinzubringen?

SirThornberry 20. Feb 2004 07:58

Re: Frage zu Type
 
wenn du zum Beispiel
Delphi-Quellcode:
 TmyType = (mtMeins, mtDeins);
einen Type definierst kommt kein end weil hier das ";" verwendet wird.

Eigentlich sollte man seine Elemente immer in Private, Public, Published oder Protected definieren. Oberhalb (also außerhalb dieser Bereiche) sind eigentlich nur Elemente aufgeführt die über die Delphi-IDE hinzugefügt wurden, vermutlich zu besseren Umsetzung der Visuellen Darstellung in der IDE. Du kannst ja mal versuchen das Edit was dort automatisch plaziert wurde in den Privateteil zu verschieben, dann dürfte es zu Problemen in der IDE kommen. Oder es wird dort oben einfach zur besseren übersicht definiert damit nicht in den selbst deklarierten privat-, und public-part der ganze ide-müll mit drin steht

Pseudemys Nelsoni 20. Feb 2004 08:03

Re: Frage zu Type
 
hoi,

wenn ich es (das edit) in private/public packe kriege ich ne AV: EClassNotFound.

wieso kennt der dann den typ TEdit nicht?

SirThornberry 20. Feb 2004 08:09

Re: Frage zu Type
 
Wenn du zum Beispiel ein TEdit auf deinem Formular plazierst wird in der .dfm datei die Position und die ganzen anderen einstellungen die du über den Objectinspektor machst gespeichert. Wenn du dann das TEdit in den Public, Private..-teil verfrachtest findet die IDE das TEdit nicht mehr weil es ja nicht mehr außerhalb von private, public etc. ist. Und somit kommt es zu einer AV wenn die eintellungen wie left, right, height etc. dem Edit zugewiesen werden sollen das nicht mehr vorhanden ist (zumindest nicht mehr dort vorhanden wo die ide danach sucht)

Pseudemys Nelsoni 20. Feb 2004 08:36

Re: Frage zu Type
 
danke :]

Luckie 20. Feb 2004 10:06

Re: Frage zu Type
 
Edit1 ist eine (Objekt-)Variable vom Typ TEdit. Genau wie:
Delphi-Quellcode:
procedure Foo;
var
  sl: TStringList;
begin


end;
sl hier eine Variable vom Typ TStringlist ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz