Thema: Delphi Image Problem???

Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Image Problem???

  Alt 16. Nov 2005, 10:31
Du kopierst von einer Paintbox in ein Image, soll das so herum sein ?

Code:
BitBlt([color=#ff0000]Ziehl.Canvas.Handle[/color], 0, 0, PaintBox1.Width div 2, PaintBox1.Height,
       [color=#ff003f]Quelle.Canvas.Handle[/color], 0, 0, SrcCopy);
Ist das Bitmap in der Paintbox oder im Image und wohin soll es kopiert werden?

// Edit:

Ein Beispielcode:

Delphi-Quellcode:
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // "Antiflacker" (für diesen Beispielcode nützlich - wegen dem Repaint)
  {Form1.} DoubleBuffered := True;

  // Groesse des 2. Images an Groesse von Bitmap in Image 1 anpassen
  Image2.Width := Image1.Width;
  Image2.Height := Image1.Height div 2;

  // Alle "Aus"-LEDs zeichnen lassen
  SetLEDs(Image1, Image2, 0);
end;

procedure TForm1.SetLEDs(QuellImage, ZiehlImage: TImage; LEDOn: Byte);
begin
  // Alle "Aus"-LEDs zeichnen
  BitBlt(
    ZiehlImage.Canvas.Handle,
    0,
    0,
    QuellImage.Width,
    QuellImage.Height div 2,
    QuellImage.Picture.Bitmap.Canvas.Handle,
    1,
    QuellImage.Height div 2,
    SrcCopy);

  if LEDOn > 0 then
  begin
    BitBlt(
      ZiehlImage.Canvas.Handle,
      0,
      0,
      (QuellImage.Width div 8) * LEDOn,
      QuellImage.Height div 2,
      QuellImage.Picture.Bitmap.Canvas.Handle,
      0,
      0,
      SrcCopy);
  end;

  // Ziehl-Image neu zeichnen lassen
  ZiehlImage.Repaint;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  // LEDs zeichnen wenn TrackBar1 geändert wird
  SetLEDs(Image1, Image2, TrackBar1.Position);
end;
Angehängte Dateien
Dateityp: zip beispiel_658.zip (5,6 KB, 14x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat