AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bild wird bei eigener Komponente im Image nicht angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Bild wird bei eigener Komponente im Image nicht angezeigt

Ein Thema von Dagon · begonnen am 21. Dez 2003 · letzter Beitrag vom 26. Dez 2003
Antwort Antwort
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#1

Bild wird bei eigener Komponente im Image nicht angezeigt

  Alt 21. Dez 2003, 14:03
Hallo ihr Leute

Ich habe eine Komponente von TPanel abgeleitet (TImagePanel). Die neue Komponente hat ein Image oben drauf. Ich habe es so programmiert, das man das Bild des Images über eine Eigenschaft Picture im OI wählen kann. Das wird dann zur Entwurdfzeit auch angezeigt. Aber sobald ich das Programm ausführe, wird nur das Panel angezeigt, ohne Bild. Erst wenn ich, während dem Laufen des Programms, dem Image ein Bild zu weise, wird eins angezeigt.

Das merkwürdige daran ist, das folgender Aufruf auch ein Anzeigen des Bildes bewirkt:
ImagePanel1.Picture := ImagePanel1.Picture; Was muss ich tun, damit das Bild direkt angezeigt wird, ohne diesen Aufruf?
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 21. Dez 2003, 14:44
Wahrscheinlich hast du nach dem Zuweisen in deiner komponente vergessen sie neu zeichnen zu lassen ?

Delphi-Quellcode:

procedure TImagePane.SetPic(const Value: TPicture);
begin
  FPic.Assign(Value);
  Paint;
end;
---------------------

Nightshade
Christian
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#3

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 21. Dez 2003, 14:55
Nein, das hat leider nichts damit zu tun .

Irgend etwas muss ich falsch gemacht, oder vergessen haben .
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#4

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 21. Dez 2003, 16:21
Hier gibt es doch bestimmt jemand, der weiss an was das liegt, oder?

Warum wird das Bild nicht auch zur Laufzeit direkt angezwigt, sondern erst wenn ich schreibe ImagePanel1.Picture := ImagePanel1.Picture; oder
ImagePanel1.Picture := Image1.Picture;
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 22. Dez 2003, 14:12
Vielleicht zeigst du dann mal ein wenig mehr Code, dann kann man dir vielleicht auch weiterhelfen.....



-------------

Nightshade
Christian
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#6

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 24. Dez 2003, 13:30
Also hier ist mal der Code:

Delphi-Quellcode:
unit ImagePanel;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls, Graphics, Dialogs,
  StdCtrls;

type
  TImagePanel = class(TPanel)
  private
    { Private-Deklarationen }
    FImage: TImage;
    FPicture: TPicture;
    procedure SetPicture(const Value: TPicture);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    property Picture: TPicture read FPicture write SetPicture;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Test', [TImagepanel]);
end;

{ TImagepanel }

constructor TImagepanel.Create(aOwner: TComponent);
begin
  inherited Create (aOwner);
  FPicture := TPicture.Create;
  FImage := TImage.Create(self);
  with FImage do
  begin
    Parent := self;
    Align := alClient;
    Stretch := True;
  end;
end;

destructor TImagePanel.Destroy;
begin
  FreeAndNil(FPicture);
  FreeAndNil(FImage);
  inherited Destroy;
end;

procedure TImagePanel.SetPicture(const Value: TPicture);
begin
  FPicture.Assign(Value);
  FImage.Picture := Value; // ? Ist diese Zeile nötig ?
  Paint;
end;

end.
Was muss ich ändern, damit das Problem verschwindet?
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#7

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 26. Dez 2003, 10:59
Kann mir hier wirklich niemand helfen?
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#8

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 26. Dez 2003, 11:49
Ich denke, Du solltest die Loaded-Methode überschreiben und dort das Image neu zeichnen.
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 26. Dez 2003, 11:50
Moin TheMaster,

such' hier mal nach Hier im Forum suchenCreateWnd.
In dieser Methode müsstest Du den Parent des Images zuweisen. Dann sollte es funktionieren.
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
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#10

Re: Bild wird bei eigener Komponente im Image nicht angezeig

  Alt 26. Dez 2003, 11:57
Vielen Dank, jetzt funktionierts!
  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 13:22 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