Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehlermeldung beim Erzeugen eines BMP (https://www.delphipraxis.net/54948-fehlermeldung-beim-erzeugen-eines-bmp.html)

japetos 13. Okt 2005 22:12


Fehlermeldung beim Erzeugen eines BMP
 
Wenn ich ein BMP von meiner TreeView Komponente erzeugen will,
dann kommt immer folgende Fehlermeldung:

Range check error

Allerdings taucht das Phaenomaen nicht immer auf.
machmal klappts, manchmal nicht.

Woran liegt das.

himitsu 13. Okt 2005 22:32

Re: Fehlermeldung beim Erzeugen eines BMP
 
Es wäre natürlich praktisch, wenn du uns eventuell mal zeigen würdest, wie du das BitMap erzeugst.
Denn zumindestens ich bin noch kein Hellseher und kann so nur ganz schwer auf den Fehler zeigen ._.


Mit freundlichen Grüßen dat kleine Engelchen ^^

japetos 13. Okt 2005 22:34

Re: Fehlermeldung beim Erzeugen eines BMP
 
jop soory, war bloed von mir.

Delphi-Quellcode:
procedure TForm1.PrintToFile1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.Width := KADaoDBTreeView1.Width;
    bmp.Height := KADaoDBTreeView1.Height;
    bmp.Canvas.Lock;
      try
        KADaoDBTreeView1.Perform(WM_PRINT, bmp.Canvas.Handle, PRF_CHILDREN or PRF_CLIENT or PRF_NONCLIENT);
      finally
        bmp.Canvas.UnLock;
        bmp.SaveToFile('tree.bmp');
        Form2.Image1.Picture.LoadFromFile('tree.bmp')
      end;
  finally
    bmp.Free;
  end;
    Form2.Visible := True;
end;
Delphi-Quellcode:
procedure TForm1.DrawImage(Canvas: TCanvas; DestRect: TRect; ABitmap: TBitmap);
var
  Header, Bits: Pointer;
  HeaderSize: DWORD;
  BitsSize: DWORD;
begin
  GetDIBSizes(ABitmap.Handle, HeaderSize, BitsSize);
  Header := AllocMem(HeaderSize);
  Bits := AllocMem(BitsSize);
  try
    GetDIB(ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
    StretchDIBits(Canvas.Handle, DestRect.Left, DestRect.Top,
      DestRect.Right, DestRect.Bottom,
      0, 0, ABitmap.Width, ABitmap.Height, Bits, TBitmapInfo(Header^),
      DIB_RGB_COLORS, SRCCOPY);
  finally
    FreeMem(Header, HeaderSize);
    FreeMem(Bits, BitsSize);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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