Einzelnen Beitrag anzeigen

Hartfrid Krause

Registriert seit: 20. Feb 2007
90 Beiträge
 
Delphi XE6 Professional
 
#1

"verdeckt" liegende bitmap abfragen

  Alt 17. Mär 2007, 16:34
Ich habe eine mit unterschiedlichen Farben gefüllt Karte deutscher Bundesländer.(bitmap2)
Wenn ich auf diese Farben stoße, wird der Name des Bundeslandes angezeigt.
Ich will eine gleichgroße - an gleicher Stelle - neue Landkarte der BRD drüber legen(bitmap1) und sie nach den Parteien einfärben.
Nun will ich über die neu Landkarte (bitmap1) drüber fahren und aus der "bunten" Karte mit onmousemove den Namen der Bundeslandes abfragen.
Das Klappt nicht.
Hier die beiden Karten:
Delphi-Quellcode:
procedure tform1. paintbox2paint(sender:TObject);
begin
Bitmap2 := TBitmap.Create;
 Bitmap2.LoadFromFile('laenderbunt.bmp');
 paintbox2.Canvas.Draw(0,0,Bitmap2);
 bitmap2.free;
 Bitmap1 := TBitmap.Create;
 Bitmap1.LoadFromFile('laender.bmp');
 paintbox1.Canvas.Draw(0,0,Bitmap1);
 bitmap1.free;
end;
Und hier die Abfrage über die bitmap2
Delphi-Quellcode:
procedure TForm1.paintbox2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
with canvas do begin
    if (X <= paintbox2.Width) and (Y <= paintbox2.Height) then
    case paintbox2.canvas.pixels[X, Y] of
      clcream:label1.Caption:='Nordrhein-Westfalen';
      $0005727A:label1.Caption:='Rheinland-Pfalz';
      $006F6F11:label1.Caption:='Niedersachsen';
      $00C551D9:label1.Caption:='Hessen';
      $0031F97C:label1.Caption:='Baden-Würthemberg';
.....//mit diesen Farben sind die Bundesländer gefüllt.
end;end;end;
Lege ich die bunte nicht direkt über die bitmap1, so kann ich bei den Bundesländer, die sichtbar sind, über die bitmap1 fahren und den Namen erkennen.

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat