AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TBitmap Property in eigener Komponente

Ein Thema von Culxxaw · begonnen am 18. Feb 2010 · letzter Beitrag vom 18. Feb 2010
Antwort Antwort
Culxxaw

Registriert seit: 21. Okt 2008
40 Beiträge
 
#1

TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 20:05
Hallo Leute,

ich wollte nur mal schnell fragen, ob es möglich ist eine Bitmap als Property zu erklären, sodass man später über den Objektinspektor eine Bitmap wählen kann. (Mit dem typischen Bild-Wählen-Dialog etc.) Aus irgendwelchen Gründen erhalte ich jedes Mal eine Fülle an Fehlermeldungen.

Gibt bestimmt schon zig Threads, die dieses Thema mal hatten, habe jedoch leider keinen gefunden.

Danke im Voraus!
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#2

Re: TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 20:16
Was machst du denn genau?
Und was bekommst du für Fehlermeldung?

Gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Culxxaw

Registriert seit: 21. Okt 2008
40 Beiträge
 
#3

Re: TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 20:23
Unter Private hab ich:
FGlyph : TBitMap; und dann unter Published das hier:
property Glyph : TBitMap read FGlyph write FGlyph; Wie bei allen anderen Eigenschaften auch (was wahrscheinlich der Fehler ist)...

Dann im OnCreate ein FGlyph := TBitMap.Create; und das dazugehörige Free im OnDestroy

Als Fehlermeldung bekomme ich sowas wie z.B.: "Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000.", wenn ich eine Bitmap laden möchte...
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#4

Re: TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 20:45
Objekte kann man soweit ich weiß nicht direkt in den OI packen.
Beim Erzeugen im Konstruktor sollte man auf csDesigning in Delphi-Referenz durchsuchenComponentState prüfen.

Was dich aber bestimmt zum Ziel führt ist der Delphi-Referenz durchsuchenTPropertyEditor.
Ein gutes Video dazu ist bestimmt dieses hier.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 20:46
So kann das nicht gehen. In deinem Create reservierst du Speicher für ein Bitmap (mit TBitmap.Create). Wenn aber ein neues Bitmap gesetzt wird, so wird dein FGlyph einfach nur auf den Speicher des zugewiesenen Bitmaps zeigen und der Speicher den du im Create angefordert hast ist nicht mehr referenziert. Du solltest eine Set-Methode verwenden und das übergebene Bitmap darin auf das andere Assignen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#6

Re: TBitmap Property in eigener Komponente

  Alt 18. Feb 2010, 21:34
Zitat von SirThornberry:
So kann das nicht gehen. ...
Also schau dir einfach mal .Picture bei TImage, bzw. Bitmap bei TPicture an.

Fazit: Wenn das Objekt in der Klasse erstellt wird, dann sollte dessen Instanz auch nur innerhalb dieser Elternklasse verändert/verwaltet werden.
Und ein direkter Schreibzugriff ala WRITE ist damnach inakzeptabel.


Delphi-Quellcode:
property Glyph : TBitMap read FGlyph write Assign;

procedure Assign(AGlyph : TBitMap);
begin
  FGlyph.Assign(AGlyph);
  // oder die einzelnen Werte manuell setzen
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:54 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