![]() |
TImage zur Laufzeit mit weiteren Properties ausstatten
Hallo Wissende,
ich erzeuge zur Laufzeit in einem Tool TImage und lade darin PNG´s. Alles kein Problem und easy. Da ich die sich darin befindlichen Bilder nun auch noch drehe und skaliere und sonstwie bearbeite, benötige ich in der TImage weitere Eigenschaften, in die ich z.B. die diversen Zustände schreiben und später speichern kann. Ich benötige zum Beispiel die Properties Angle, Scaling:integer; Invers:boolean; usw. Ist es möglich die TImage einfach zu überschreiben und ihr noch diese weiteren Eigenschaften zu geben? Wenn ja, wie? Ich habe natürlich die Suche hier benutzt, aber nichts finden können, wohl weil ich nicht die richtigen Stichwörter hatte!? Sollte es nicht gehen, wäre ich für andere Vorschläge dankbar... |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
überschreiben ist was anderes. Das was du machen müsstest wäre von TImage eine ableiten und deine neue Komponente eben mit den neuen Sachen zu erweitern.
|
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Verebung von Klassen wäre da das richtige Stichwort
Delphi-Quellcode:
So, und jetzt nimmst du statt TIamge, TmyImage und schon hast du auch die Eigenschaft FEigenschaft.
type TMyImage=class(TImage)
private FEigenschaft:integer; end; |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Klingt plausibel. Dies wird aber nun mein erster Versuch. Wie und wo muss ich Deinen Beispiel-Code nun einsetzen?
Bisher ist es bei mir so:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, pngimage, ExtCtrls,Math, StdCtrls, jpeg ; type TForm1 = class(TForm) img_src: TImage; img_bg: TImage; ScrollBar1: TScrollBar; img_dest: TImage; ScrollBar2: TScrollBar; lbl_size: TLabel; lbl_angle: TLabel; procedure FormCreate(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar2Change(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, pngimage, ExtCtrls,Math, StdCtrls, jpeg ; type TMyImage=class(TImage) private FEigenschaft:integer; //Methoden fehlen hier auch noch end; TForm1 = class(TForm) img_src: TMyImage; img_bg: TMyImage; ScrollBar1: TScrollBar; img_dest: TImage; ScrollBar2: TScrollBar; lbl_size: TLabel; lbl_angle: TLabel; procedure FormCreate(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar2Change(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Also ich habe es nun so eingebunden, aber ich erhalte leider nicht die Möglichkeit die
Delphi-Quellcode:
so anzusprechen nachdem ich im OnCreate des Formulares das TmyImage erzeugt habe.
type
TMyImage=class(TImage) private new_width:integer; angle:integer; //Methoden fehlen hier auch noch end; TForm1 = class(TForm)
Delphi-Quellcode:
Auch kann ich kein Bild reinladen usw...War das der hinweis mit den Methoden? Ich brauche einfach die komplette Funktionalität einer TImage PLUS der 2-5 Eigenschaften...Also was fehlt mir denn da nun noch?
procedure TForm1.FormCreate(Sender: TObject);
begin TMyImage.Create(form1); img_src.Picture.LoadFromFile('0.png'); img_dest.Picture.LoadFromFile('0.png'); end; Vielleicht steckt ja hier schon der richtige und wichtige Hinweis drin? Zitat:
|
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Delphi-Quellcode:
Edit: Methoden fehlen dir nicht unbedingt, es sei denn du willst noch weitere hinzufügen.
img_src:=tmyimage.create(self);
Du musst auch nicht unbedingt alles unter "private" legen. Ist nur für Variablen der übliche Platz. |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Stimmt, habe es inzwischen auch gefunden. War mal wieder zu schnell mit meiner Meldung. Ist nur doof, dass mein Komponententool, welches automatisch alle sich auf dem Form befindlichen Controls in einer DFM-Datei abspeichern kann, die neuen Eigenschaften NICHT mitspeichert...Werde ich wohl mal die Erzeuger des Produktes anschreiben, ob die da was tun können...
|
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Da kannst du auch selber was tun :mrgreen:
"published properties" dürften die Lösung sein. |
Re: TImage zur Laufzeit mit weiteren Properties ausstatten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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