Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: viele componenten auf visible := false setzen?

  Alt 20. Okt 2003, 00:33
Moin silent,

Zitat von silent:
das:

TEdit('Edit' + IntToStr(laufVar)).Enabled funzt bei mir nicht, ich bekomme eine zugriffsverletzung
kann auch nicht klappen.

'Edit' + IntToStr(laufVar) ist ein String. Der normale Hugestring ist ein Pointer und mit der o.g. Konstruktion erzwingst Du einen Typecast eines Stringpointers auf einen TEdit Pointer zur Laufzeit, und das führt zur AV, da ein String kein TEdit Objekt ist.

Verallgemeinert:

Mit
TKlassenBezeichner(WasAuchImmerFuerEinPointerHierAngegebenWird) erzwingst Du, dass der in den Klammern stehende Pointer vom Compiler als vom Typ TKlassenBezeicher angesehen wird. Kann man machen, wenn sichergestellt ist, dass der Pointer vom Typ TKlassenBezeichner, oder eine davon abgeleitete Klasse ist.
Wichtig ist, dass der Programmierer bei dieser Konstruktion die Verantwortung dafür übernimmt, dass die Typen zusammen passen.

Machst Du es hingegen so

(WasAuchImmerFuerEinPointerHierAngegebenWird AS TKlassenBezeichner) übernimmt der Compiler schon beim Compilieren die Typüberprüfung, und meckert wenn's nicht passt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat