Zitat von
Bernd29bln:
wie bekommt man die Bilder übereinander , also so das man nur eine LED sehen Kann ?
Wie ist das gemeint ?
Das erste BitBlt zeichnet alle "Aus"-LED's, das zweite BitBlt zeichnet darüber die LED's die "An" sein sollen.
Möchtest du die LED's einzeln An,-bzw. Ausschalten (zB. die Erste und die Letzte) so must du das zweite BitBlt in einer Schleife oder in einem
Case-Statement ausführen und nur die LED(s) zeichnen lassen die "An" sein soll.
Zum Bleistift:
Delphi-Quellcode:
procedure TForm1.SetLEDs(QuellImage, ZiehlImage: TImage; LEDs: String);
var
i: Byte;
h,w: Integer;
begin
// LEDs zeichnen
for i := 1 to Length(LEDs) do
begin
if LEDs[i] <> '0'
then h := 0
else h := QuellImage.Height div 2;
w := QuellImage.Width * (i-1);
BitBlt(
ZiehlImage.Canvas.Handle,
w,
0,
QuellImage.Width * i,
QuellImage.Height div 2,
QuellImage.Picture.Bitmap.Canvas.Handle,
0,
h,
SrcCopy);
end;
// Ziehl-Image neu zeichnen lassen
ZiehlImage.Repaint;
end;
//Wenn die zwei mittleren leuchten sollen, Aufruf zB.:
SetLEDs(Image1, Image2, '00011000');
... auch als Anhang zu haben: