Zitat von
NamenLozer:
Also am einfachsten machst du dir ein zweites bitmap im speicher, auf dem jedes bundesland eine andere farbe hat. dann fragst du ab, welche farbe dieses bitmap an der mausposition hat und gibst den namen aus, der dieser farbe zugeornet ist.
@Hartfrid Krause: NamenLozer meint du könntest dir noch ein 2. Bild erstellen, diesmal aber mit verschiedenfarbigen Bundesländern und dann lädst du das Bild in den Speicher:
Delphi-Quellcode:
private
BildBundeslaender: TBitmap;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Pfad: AnsiString;
begin
BildBundeslaender:= TBitmap.Create;
Pfad:= 'FarbigeBundesländer.bmp';
if FileExists(Pfad) then
BildBundeslaender.LoadFromFile(Pfad);
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
label1.caption:= '';
if (X <= BildBundeslaender.Width) and (Y <= BildBundeslaender.Height) then
case BildBundeslaender.canvas.pixels[X, Y] of
clred: label1.caption := 'Bayern';
clblue: label1.caption := 'hessen';
cllime: label1.caption := 'Rheinland-Pfalz';
//...
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
BildBundeslaender.Free;
end;
Bis auf die Farben, sollten beide Bilder, also stärkste Fraktionen und farbige Bundesländer aber identisch sein.