AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Kein Zugriff auf öffentliche Methoden eines Objekts
Thema durchsuchen
Ansicht
Themen-Optionen

Kein Zugriff auf öffentliche Methoden eines Objekts

Ein Thema von Pfoto · begonnen am 23. Dez 2005 · letzter Beitrag vom 23. Dez 2005
Antwort Antwort
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#1

Kein Zugriff auf öffentliche Methoden eines Objekts

  Alt 23. Dez 2005, 10:12
Hallo zusammen,

ich versuche mir gerade, ein indiviudelles Hint zu basteln, in dem z.B. auch Bilder angezeigt werden können. Es funktioniert sogar, aber eine Sache verstehe ich nicht:

Wieso findet der Compiler nicht die von mir hinzugefügten Elemente, wenn ich von Außen darauf zugreifen will? Er zeigt stets nur die Basismethoden von THintWindow an.
Also z.B. der Zugriff auf "Image" wird verweigert, bzw. als "undefiniert" bezeichnet. Obwohl es doch "public" ist.

So hab ich das Ganze aufgebaut:
Delphi-Quellcode:
type
  TMyHintWindow = class(THintWindow)
  private
    FImage: TImage;
  protected
    procedure paint; override;
  public
    MaxWidth: integer;
    property Image : TImage read FImage write FImage;
    constructor Create;
    destructor destroy; override;
  end;

// In TForm dann:
  MyHint: TMyHintWindow


// Dies funktioniert nicht
Form1.MyHint.Image.... <- Image sei undefiniert


Gibt mir doch bitte mal en Tipp, vielleicht hab' ich ja auch grad en Brett vorm Kopf...

Dank und Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Kein Zugriff auf öffentliche Methoden eines Objekts

  Alt 23. Dez 2005, 10:37
Hai Pfoto,

bei mir geht es. Allerdings habe ich den Constructor angepasst da der Constructor von THindWindow mit Create (aOwner : TComponent) deklariert ist.
Delphi-Quellcode:
type
  TMyHintWindow = class(THintWindow)
  private
    FImage: TImage;
  protected
    procedure Paint; override;
  public
    MaxWidth: integer;
    property Image : TImage read FImage write FImage;
    constructor Create (aOwner : TComponent);
    destructor Destroy; override;
  end;

{ TMyHintWindow }
constructor TMyHintWindow.Create (aOwner : TComponent);
begin
  inherited Create(aOwner);
end;

destructor TMyHintWindow.Destroy;
begin
  inherited;
end;

procedure TMyHintWindow.Paint;
begin
  inherited;
end;
Und im Programm dann:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  MyHint := TMyHintWindow.Create (self);
  MyHint.Image := Image1;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Kein Zugriff auf öffentliche Methoden eines Objekts

  Alt 23. Dez 2005, 11:19
Mein Code hat danach leider immer noch nicht funktioniert,
aber Du hast mir trotzdem geholfen, denn das Problem war ganz simpel (und doof):


Ich habe in meinem tatsächlichen Code (anders als ich oben beschrieben hatte), MyHint von der Basisklasse abgeleitet:
  MyHint: THintWindow; Dann kann natürlich kein Image gefunden werden...
Das passiert mir garantiert nicht wieder...


Dank und Gruß
Pfoto
Jürgen Höfs
  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 22:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz