AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Klassenmethoden

Ein Thema von billi · begonnen am 1. Feb 2004 · letzter Beitrag vom 5. Feb 2004
Antwort Antwort
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#1

Re: Problem mit Klassenmethoden

  Alt 2. Feb 2004, 14:15
Zitat von billi:
kannst du mir das mal erklären, bin noch nicht soo der superheld in delphi (DialogSeite As TLayout)
Du deklarierst DialogSeite als TFrame. TFrame bringt aber von Hause aus keine Methoden LayoutLoad etc. mit. D.h der Compiler weiss an dieser Stelle nicht, welche Methode er aufrufen soll.DialogSeite.LayoutLoad; brächte den Compilerfehler 'Undefinerter Bezeichner'. Entweder deklarierst Du DialogSeite als TLayout, was unpraktisch wäre, weil Du verschiedene Frames brauchst, oder Du castest DialogSeite auf den Typ, den Du gerade brauchst. Genau das macht der as-Operator. Er sagt dem Compiler, dass er DialogSeite nicht als TFrame sondern als TLayout betrachten soll, denn TLayout beinhaltet die gewünschte Methode. Für den Fall, dass DialogSeite irgendetwas anderes ist als ein Abkömmling von TFrame, kriegst Du einen Exception.

Der Vollständigkeit halber: Du kannst auch ohne den as-Operator casten, das sähe dann so aus:TLayout(DialogSeite).LayoutLoad; Hat den Vorteil, dass es ein kleines bisschen flotter ist, weil die Typüberprüfung nicht gemacht wird, aber den Nachteil, dass Du, wenn Du DialogSeite keine Methode LayoutLoad haben sollte (z.B. weil durch einen Programierfehler nicht vom Typ TLayout) der Aufruf ins Nirvana geht. Wenn man weiss, was man tut, ist diese Möglichkeit aber auch völlig ok.

Ich sehe gerade, dass Du von der zweiten Möglichkeit schon ausgiebig Gebrauch machst.

Probier mal folgendes:
farbe := TEdit(FindComponent('E' + name)).text; Bist Du sicher, dass 'E'+name etwas sinnvolles ergibt? Wird name richtig gesetzt?

Gruß, teebee
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 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-2025 by Thomas Breitkreuz