AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Komponte: Eigene Grafiken einbinden

Ein Thema von Ares · begonnen am 7. Mär 2007 · letzter Beitrag vom 7. Mär 2007
 
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Eigene Komponte: Eigene Grafiken einbinden

  Alt 7. Mär 2007, 14:06
Hallo!

Ich hatte gestern ja schon geschrieben, dass ich mir zur Übung eine eigene Komponente schreiben will. Es geht um ein Panel das ein Hintergrundbild anzeigt. In der Ursprünglichen Version konnte man das Bild über die Eigenschaft HintergrundBild einstellen. Im nächsten Schritt soll das Hintergrundbild fest in der Kompontene verankert sein. Jedes Panel dieser Art soll also den gleichen, nicht änderbaren Hintergrund anzeigen.

Aber wie füge ich das Bild in die Komponente ein?

Ich habe folgendes Versucht:

Delphi-Quellcode:
unit MyPanelUnit;

{$R 'background.res' 'background.rc'}

interface

uses ExtCtrls, Graphics, Classes;

type
   TMyPanel = class(TPanel)
   private
     { private-Deklarationen }
     FHindergrundBild: TPNGObject;

   protected
     { protected-Deklarationen }
     procedure Paint; override;
   public
     { public-Deklarationen }
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;

   published
     { published-Deklarationen }
   end;


procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Eigene', [TMyPanel]);
end;

constructor TMyPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FHindergrundBild := TPNGObject.Create;

  //FHindergrundBild.LoadFromFile('MeinHintergrund.png');
  FHindergrundBild.LoadFromResourceName(HInstance, 'hintergrund');
end;

destructor TMyPanel.Destroy;
begin
  FHindergrundBild.Free;
  inherited;
end;

procedure TMyPanel.Paint;
begin
   inherited;
   Canvas.Draw(0, 0, FHindergrundBild);

   Canvas.TextRect(ClientRect, 5, 5, IntToStr(FHindergrundBild.Width)+'x'+IntToStr(FHindergrundBild.Height)) ;

   Canvas.Refresh;
end;

end.
Ich habe also einmal versucht die Grafik aus einer Datei zu laden und einmal eine Ressource-Datei anzubinden. Beides funktioniert nicht. Die Komponente lässt sich zwar fehlerfrei compilieren und ich kann auch entsprechende Panels auf ein Formular setzten und diesen compilieren, es wird jedoch kein Hintergrundbild angezeigt...

Die Ausgabe BreitexHöhe funktioniert aber korrekt. Es wird also die korrekte Breite und Höhe des Bildes ausgegeben. Irgendwie wird das Bild also richtig eingebunden aber nicht richtig ausgegeben.

Habt ihre eine Idee was ich falsch mache? Bzw. was ich anders machen muss?

Besten Dank
Ares
  Mit Zitat antworten Zitat
 


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 09:57 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