L'unité Windows ne veut pas de TBitmap ?
Bonsoir,
j'ai repris Lazarus et le Pascal depuis peu, et j'ai du rouiller.
Ce code, fait pour essayer de comprendre mon problème, fonctionne (il récupère une image, et l'assigne à un composant image).
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls;
..
procedure TForm1.FormCreate(Sender: TObject);
var
bmp : TBitmap;
begin
bmp := TBitmap.Create;
bmp.LoadFromFile('D:\Documents\Mes Projets\Mes programmes Lazarus\Test TImage\Capture.bmp');
Image.Picture.Assign(bmp);
bmp.Free;
end; |
Le code ci-dessous, récupéré dans la documentation, et destiné à faire un screenshot, me renvoie
Citation:
Identifier idents no member Create
Comme j'ai besoin de GetDC(), j'ai ajouté windows aux uses. Patatra, il semble que TBitmap n'existe plus, et qu'on m'impose TBITMAP.
Je suis passé à côté de quoi ? Mon problème n'est pas de faire un screenshot, mais de comprendre ce que j'ai mal fait. (au passage, je n'ai pas perdu trop de temps, la lecture de divers sites m'a prodigué une puissante révision. Mais pas la lumière. J'ai déjà honte de la réponse que je vais recevoir, je sens que ma question est d'une banalité affligeante...)
Merci à ceux qui m'apporteront l'illumination.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, Windows;
..
procedure TForm1.FormCreate(Sender: TObject);
var
bmp : TBitmap;
ScreenDC : HDC;
begin
bmp := TBitmap.Create; // <--- ligne pointée par le compilateur
ScreenDC := GetDC(0);
bmp.LoadFromDevice(ScreenDC);
Image.Picture.Assign(bmp);
ReleaseDc(0, ScreenDC);
bmp.Free;
end; |