![]() |
Probleme beim Laden von Bitmaps in ein Array vom Typ TBitmap
In der procedure laod_pics bricht der Debugger das Programm mit einer Zugriffsverletzung ab. Sieht jemand den Fehler?:
Delphi-Quellcode:
Vielen Dank für eure Hilfe.
unit mmousemove;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type Tmouse = Array [1..4] of TBitmap; Tmousemove = class(TForm) lbedCursorPos: TLabeledEdit; imMouse: TImage; procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormActivate(Sender: TObject); private { Private-Deklarationen } procedure load_pics (var Pics: TMouse); public { Public-Deklarationen } end; var mousemove: Tmousemove; mousepics: Tmouse; implementation {$R *.dfm} procedure Tmousemove.load_pics (var Pics: TMouse); begin //Die Bilder werden ins Array geladen Pics[1].LoadFromFile('mouse.bmp'); {<= hier gibt der Debugger eine Zugriffsverletzung aus} Pics[2].LoadFromFile('left.bmp'); Pics[3].LoadFromFile('middle.bmp'); Pics[4].LoadFromFile('right.bmp'); end; procedure Tmousemove.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin lbedCursorPos.Text := 'X: '+inttostr(x)+' ; Y: '+inttostr(Y); //Im Edit wird die aktuelle Cursorposition ausgegeben end; procedure Tmousemove.FormActivate(Sender: TObject); begin load_pics (mousepics); // Die Bilder werden ins Array geladen end; end. MfG Christian |
Re: Probleme beim Laden von Bitmaps in ein Array vom Typ TBi
Die Variablen müssen erst noch instantiiert werden. (zuweisen des Speichers)
Code:
Und vergiß nicht alles am Ende wieder freizugeben. (Programmeende)
procedure Tmousemove.FormCreate(Sender: TObject); {OnCreate}
begin mousepics[1] := TBitMap.Create; mousepics[2] := TBitMap.Create; mousepics[3] := TBitMap.Create; mousepics[4] := TBitMap.Create; mousepics[1].LoadFromFile('mouse.bmp'); mousepics[2].LoadFromFile('left.bmp'); mousepics[3].LoadFromFile('middle.bmp'); mousepics[4].LoadFromFile('right.bmp'); end;
Code:
In OnCreate werden die Bilder nur ein mal, beim erstellen des Formulars, erzeugt und geladen.
procedure Tmousemove.FormDestroy(Sender: TObject); {OnDestroy}
begin mousepics[1].Free; mousepics[2].Free; mousepics[3].Free; mousepics[4].Free; end; Und in OnActivate geschieht das jedes mal, wenn das Formular den Eingabefokus erhält. |
Re: Probleme beim Laden von Bitmaps in ein Array vom Typ TBi
Danke. Ist das erste mal, das ich Bitmaps in ein Array lade :oops:
MfG Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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