2012-05-06 19 views
9

muszę przetworzyć zestaw plików bmp wykorzystujących aplikację konsoli, używam klasy TBitmap, ale kod nie kompiluje bo tego błęduTBitmap.Create nie działa w aplikacji konsoli delphi

E2003 Undeclared identifier: 'Create' 

ta aplikacja odtwarza próbki kwestia

{$APPTYPE CONSOLE} 

{$R *.res} 

uses 
System.SysUtils, 
Vcl.Graphics, 
WinApi.Windows; 

procedure CreateBitMap; 
Var 
    Bmp : TBitmap; 
    Flag : DWORD; 
begin 
    Bmp:=TBitmap.Create; //this line produce the error of compilation 
    try 
    //do something 
    finally 
    Bmp.Free; 
    end; 
end; 

begin 
    try 
    CreateBitMap; 

    except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
    end; 
end. 

dlaczego ten kod nie kompiluje?

Odpowiedz

19

Problem jest w porządku swojej klauzuli zastosowań, WinApi.Windows i Vcl.Graphics jednostki mają typ zwany TBitmap, gdy kompilator znaleźć niejednoznaczne typ postanawia typ korzystając ostatnią jednostkę listy uses gdzie jest obecny. w tym przypadku użyć TBitmap urządzenia z systemem Windows, który wskazuje na WINAPI struktury BITMAP, aby rozwiązać ten zmienić kolejność jednostek

uses 
System.SysUtils, 
WinApi.Windows, 
Vcl.Graphics; 

lub można zadeklarować typ przy użyciu pełnej nazwy kwalifikowanej jak tak

procedure CreateBitMap; 
Var 
    Bmp : Vcl.Graphics.TBitmap; 
    Flag : DWORD; 
begin 
    Bmp:=Vcl.Graphics.TBitmap.Create; 
    try 
    //do something 
    finally 
    Bmp.Free; 
    end; 
end; 
Powiązane problemy