AGB  ·  Datenschutz  ·  Impressum  







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

property Tbitmap

Ein Thema von Sebastian Nintemann · begonnen am 28. Sep 2003 · letzter Beitrag vom 4. Okt 2003
Antwort Antwort
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#1

property Tbitmap

  Alt 28. Sep 2003, 19:14
Hallo!

Also...

Ich hab eine Klasse (keine Komponente, habs trotzdem mal hier reingestellt weils denk ich das gleiche Problem bei einer Komponente gibt), die eine Eigenschaft Image vom Typ TBitmap hat. Also etwa so:

Delphi-Quellcode:
type TTest = class(TObject)
  private
    FImage: TBitmap;
    procedure SetImage(const ABitmap: TBitmap);
  public
    constructor Create;
    destructor Destroy; override;
    property Image: TBitmap read FImage write SetImage;
end;

implementation

constructor TTest.Create;
begin
  inherited Create;
  FImage := TBitmap.Create;
end;

destructor TTest.Destroy;
begin
  FreeAndNil(FImage);
  inherited Destroy;
end;

procedure TTest.SetImage(const ABitmap: TBitmap);
begin
  FImage.Assign(ABitmap);
  ShowMessage('ausgelöst');
end;
Wie zu sehen ist, hab ich zu Testzwecken in der SetImage-Methode ein ShowMessage eingebaut. Weise ich nun ein Bild mit
Test.Image := Bitmap; zu, so wird mir die auch brav angezeigt.
Wenn ich aber folgendes mache
Test.Image.LoadFromFile('C:\test.bmp'); dann wird Image verändert, ohne dass ich Kontrolle darüber habe, SetImage wird nicht aufgerufen. Wichtig wird das, wenn ich später auf bestimmte Sachen beim Zuweisen des Bildes achten muss.
Jemand ne Idee wie ich in solchen Fällen die Kontrolle behalten/ das Problem umgehen kann?

Gruß, Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#2

Re: property Tbitmap

  Alt 28. Sep 2003, 20:06
Meine Idee zu dem Thema:

Delphi-Quellcode:
type TTest = class(TObject)
  private
    FImage: TBitmap;
  protected
    procedure BitmapChanged(Sender: TObject);
    procedure SetImage(const ABitmap: TBitmap);
  public
    constructor Create;
    destructor Destroy; override;
    property Image: TBitmap read FImage write SetImage;
  end;

var
  Form1: TForm1;
  Test: TTest;

implementation

{$R *.dfm}

constructor TTest.Create;
begin
  inherited Create;
  FImage := TBitmap.Create;
  FImage.OnChange := BitmapChanged;
end;

destructor TTest.Destroy;
begin
  FreeAndNil(FImage);
  inherited Destroy;
end;

procedure TTest.BitmapChanged(Sender: TObject);
begin
  ShowMessage('ausgelöst');
end;

procedure TTest.SetImage(const ABitmap: TBitmap);
begin
  FImage.Assign(ABitmap);
  ShowMessage('ausgelöst');
end;
Damit bekommt man dann mit, ob sich was an FImage geändert hat. Ne andere Idee hätte ich sonst auch erstmal nicht.

Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#3

Re: property Tbitmap

  Alt 4. Okt 2003, 16:42
Hallo Wormid!

Danke für die Idee, ich habs jetzt erstmal so gemacht!
Ich dachte nur, die write Methode wäre dazu da, Kontrolle über den zu setzenden Wert zu haben. Aber was solls, so gehts ja auch

Gruß, Sebastian
  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: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