Registriert seit: 20. Feb 2007
90 Beiträge
Delphi XE6 Professional
|
Re: Grafik als screenshot
8. Mär 2007, 14:55
Das klappt bei mir noch nicht nach beiden Seiten.
Mit dem folgenden Zeilen werden die Bundesländer zwar unterschiedlich gefärbt, speichere ich sie ab, erhalte ich nur einen schwarz-weiße Kopie.
Mit der schwarz-weiß-Kopie komme ich nicht zum Anzeigen der Ländernamen (als Doublette im Speicher).
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tform1 = class(TForm)
PaintBox1: TPaintBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure fromshow(sender:TObject);
procedure paintbox1paint(sender:TObject);
procedure einfaerben(sender:TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
form1: Tform1;
var bitmap1:tbitmap;
implementation
{$R *.dfm}
procedure tform1.fromshow(sender:TObject);
begin
form1.Width:=7*screen.Width DIV 8;
form1.Height:=19*screen.Height div 20;
form1.Left:=(screen.Width-form1.Width) DIV 2;
form1.Top:=(screen.Height-form1.Height) div 2;
paintbox1.Height:=645;
paintbox1.width:=486;
paintbox1.Left:=(form1.Width-paintbox1.Width) div 2;
paintbox1.Top:=(form1.Height-paintbox1.Height) div 2;
paintbox1paint(sender);
end;
procedure tform1. paintbox1paint(sender:TObject);
begin
Bitmap1 := TBitmap.Create;
Bitmap1.LoadFromFile('laender.bmp');
PaintBox1.Canvas.Draw(0,0,Bitmap1);
// Bitmap1.Free;
einfaerben(sender);
end;
procedure tform1.einfaerben(sender:TObject);
Var farbe:tcolor;
x,y:integer;
begin
with canvas do
with paintbox1 do
begin
brush.color:= clbackground; //NRW
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+120,paintbox1.Top+260,farbe, fsborder);
brush.color:= clskyblue; //RHPf
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+80,paintbox1.Top+400,farbe, fsborder);
brush.color:= clblack; //Nieders
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+170,paintbox1.Top+150,farbe, fsborder);
brush.color:= clred; //Hessen
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+130,paintbox1.Top+390,farbe, fsborder);
brush.color:= clfuchsia; //BaWü
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+230,paintbox1.Top+500,farbe, fsborder);
brush.color:= clmaroon; //Bayern
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+260,paintbox1.Top+450,farbe, fsborder);
brush.color:=clgreen; //Saarland
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+60,paintbox1.Top+460,farbe, fsborder);
brush.color:= claqua; //Schl.Holstein
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+200,paintbox1.Top+90,farbe, fsborder);
brush.color:= clmoneygreen; //Bremen
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+154,paintbox1.Top+160,farbe, fsborder);
floodfill(paintbox1.Left+150,paintbox1.Top+124,farbe, fsborder);
brush.color:= clmedgray; //Mecklenburg Vorpomm
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+289,paintbox1.Top+150,farbe, fsborder);
brush.color:= clappworkspace; //Brandenburg
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+350,paintbox1.Top+200,farbe, fsborder);
brush.color:= clhotlight; //SachsenAnhalt
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+370,paintbox1.Top+370,farbe, fsborder);
brush.color:= clyellow; //Sachsen
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+270,paintbox1.Top+270,farbe, fsborder);
brush.color:= clpurple; //Thüringen
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+250,paintbox1.Top+320,farbe, fsborder);
brush.color:= clolive; //Berlin
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+385,paintbox1.Top+200,farbe, fsborder);
brush.color:= cllime; //Hamburg
farbe:= pixels[X,Y];
floodfill(paintbox1.Left+220,paintbox1.Top+115,farbe, fsborder);
end;
end;
procedure Tform1.Button2Click(Sender: TObject);
begin
Bitmap1.Canvas.CopyRect(Rect(0, 0, Bitmap1.Width, Bitmap1.Height),
PaintBox1.Canvas, Rect(0, 0, Bitmap1.Width, Bitmap1.Height));
Bitmap1.SaveToFile('B.bmp');//wird jetzt überschrieben!
bitmap1.free;
end;
procedure Tform1.Button1Click(Sender: TObject);
begin
form1.close;
end;
end.
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
|