Difference between revisions of "BGRABitmap tutorial/de"

From Lazarus wiki
Jump to navigationJump to search
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 10: Line 10:
  
 
Die Unit des Hauptformulars sollte so aussehen:
 
Die Unit des Hauptformulars sollte so aussehen:
<delphi>unit UMain;
+
<syntaxhighlight>unit UMain;
  
 
{$mode objfpc}{$H+}
 
{$mode objfpc}{$H+}
Line 38: Line 38:
 
   {$I UMain.lrs}
 
   {$I UMain.lrs}
  
end.</delphi>
+
end.</syntaxhighlight>
  
 
Falls Sie sie nicht finden, zeigt Ihnen '''Strg-F12''' eine Dateiliste an.
 
Falls Sie sie nicht finden, zeigt Ihnen '''Strg-F12''' eine Dateiliste an.
Line 48: Line 48:
 
Fügen Sie in der Uses-Klausel gleich hinter 'Dialogs' eine Referenz auf BGRABitmap und BGRABitmapTypes ein.
 
Fügen Sie in der Uses-Klausel gleich hinter 'Dialogs' eine Referenz auf BGRABitmap und BGRABitmapTypes ein.
  
<delphi>uses
+
<syntaxhighlight>uses
 
   Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 
   Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
   BGRABitmap, BGRABitmapTypes;</delphi>
+
   BGRABitmap, BGRABitmapTypes;</syntaxhighlight>
  
 
Gehen Sie zu den Compileroptionen mit dem Menüpunkt '''Projekt > Projekteinstellungen > Compilereinstellungen'''. Im Pfad für 'Andere Units' fügen Sie den relativer Pfad zu BGRABitmap hinzu. Zum Beispiel, wenn BGRABitmap in einem Verzeichnis neben dem Ihres Projektes ist, würde der relative Pfad lauten: "..\BGRABitmap".
 
Gehen Sie zu den Compileroptionen mit dem Menüpunkt '''Projekt > Projekteinstellungen > Compilereinstellungen'''. Im Pfad für 'Andere Units' fügen Sie den relativer Pfad zu BGRABitmap hinzu. Zum Beispiel, wenn BGRABitmap in einem Verzeichnis neben dem Ihres Projektes ist, würde der relative Pfad lauten: "..\BGRABitmap".
Line 61: Line 61:
  
 
Fügen Sie ein Ereignis zum Zeichnen hinzu. Dazu klicken Sie auf das Formular, gehen zum Objektinspektor, zum Karteireiter Ereignisse und doppelklicken Sie auf die Zeile 'OnPaint'. Lazarus fügt der Unit des Hauptformulars automatisch einen FormPaint-Handler hinzu. Ergänzen Sie zum Beispiel den folgenden Code:
 
Fügen Sie ein Ereignis zum Zeichnen hinzu. Dazu klicken Sie auf das Formular, gehen zum Objektinspektor, zum Karteireiter Ereignisse und doppelklicken Sie auf die Zeile 'OnPaint'. Lazarus fügt der Unit des Hauptformulars automatisch einen FormPaint-Handler hinzu. Ergänzen Sie zum Beispiel den folgenden Code:
<delphi>procedure TForm1.FormPaint(Sender: TObject);
+
<syntaxhighlight>procedure TForm1.FormPaint(Sender: TObject);
 
var bmp: TBGRABitmap;
 
var bmp: TBGRABitmap;
 
begin
 
begin
Line 68: Line 68:
 
   bmp.Draw(Canvas, 0, 0, True);                          //render BGRABitmap on the form
 
   bmp.Draw(Canvas, 0, 0, True);                          //render BGRABitmap on the form
 
   bmp.Free;                                              //free memory
 
   bmp.Free;                                              //free memory
end;</delphi>
+
end;</syntaxhighlight>
  
 
Wie Sie sehen, deklarieren wir eine Variable TBGRABitmap und erzeugen sie anschließend. Es gibt mehrere unterschiedliche Konstruktoren für TBGRABitmap. Dieser  hier verwendete erzeugt eine Bitmap der Größe ClientWidth x ClientHeight und füllt sie mit Schwarz. ClientWidth und ClientHeight sind Eigenschaften des Formulars, die den für Zeichnungen verfügbaren Platz des Formulars angeben.
 
Wie Sie sehen, deklarieren wir eine Variable TBGRABitmap und erzeugen sie anschließend. Es gibt mehrere unterschiedliche Konstruktoren für TBGRABitmap. Dieser  hier verwendete erzeugt eine Bitmap der Größe ClientWidth x ClientHeight und füllt sie mit Schwarz. ClientWidth und ClientHeight sind Eigenschaften des Formulars, die den für Zeichnungen verfügbaren Platz des Formulars angeben.
Line 81: Line 81:
  
 
Sie sollten jetzt den folgenden Code haben:
 
Sie sollten jetzt den folgenden Code haben:
<delphi>unit UMain;
+
<syntaxhighlight>unit UMain;
  
 
{$mode objfpc}{$H+}
 
{$mode objfpc}{$H+}
Line 122: Line 122:
 
   {$I UMain.lrs}
 
   {$I UMain.lrs}
  
end.</delphi>
+
end.</syntaxhighlight>
  
 
=== Starten Sie das Programm ===
 
=== Starten Sie das Programm ===

Revision as of 14:51, 24 March 2012

Deutsch (de) English (en) español (es) français (fr) русский (ru)

Home | Tutorial 1 | Tutorial 2 | Tutorial 3 | Tutorial 4 | Tutorial 5 | Tutorial 6 | Tutorial 7 | Tutorial 8 | Tutorial 9 | Tutorial 10 | Tutorial 11 | Tutorial 12 | Tutorial 13 | Tutorial 14 | Tutorial 15 | Tutorial 16 | Edit

Dieses erste Tutorial zeigt, wie Sie die Bibliothek BGRABitmap einsetzen können.

Erzeugen Sie ein neues Projekt

Erzeugen Sie eine grafische Anwendung über den Menüpunkt Projekt > Neues Projekt....

Die Unit des Hauptformulars sollte so aussehen:

unit UMain;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;

type

  { TForm1 }

  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

initialization
  {$I UMain.lrs}

end.

Falls Sie sie nicht finden, zeigt Ihnen Strg-F12 eine Dateiliste an.

Speichern Sie Ihr Projekt in der Nähe der Bibliothek 'BGRABitmap' über den Menüpunkt Datei > Alles speichern.

Eine Referenz auf BGRABitmap hinzufügen

Fügen Sie in der Uses-Klausel gleich hinter 'Dialogs' eine Referenz auf BGRABitmap und BGRABitmapTypes ein.

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  BGRABitmap, BGRABitmapTypes;

Gehen Sie zu den Compileroptionen mit dem Menüpunkt Projekt > Projekteinstellungen > Compilereinstellungen. Im Pfad für 'Andere Units' fügen Sie den relativer Pfad zu BGRABitmap hinzu. Zum Beispiel, wenn BGRABitmap in einem Verzeichnis neben dem Ihres Projektes ist, würde der relative Pfad lauten: "..\BGRABitmap".

Wenn Sie die BGRABitmap-Dateien in Ihren Projektordner kopieren, brauchen Sie keinen solchen Suchpfad angeben. Dennoch, das ist nicht empfehlenswert, weil es bei mehreren Projekten, die diese Bibliothek verwenden, umständlich wäre, auf eine neue Version der Bibliothek zu aktualisieren.

Wenn Sie sich jetzt mit den relativen Pfaden verirrt haben, können Sie auch die Unit BGRABitmap zu Ihrem Projekt hinzufügen (und damit auch den relativen Pfad). Öffnen Sie dazu innerhalb Ihres Projektes die Datei 'bgrabitmap.pas'. Wählen Sie den Menüpunkt Projekt > Datei im Editor ins Projekt aufnehmen. Lazarus fragt Sie dann, ob Sie die Datei und das Verzeichnis zu Ihrem Projekt hinzufügen wollen.

Fügen Sie einige Zeichenbefehle hinzu

Fügen Sie ein Ereignis zum Zeichnen hinzu. Dazu klicken Sie auf das Formular, gehen zum Objektinspektor, zum Karteireiter Ereignisse und doppelklicken Sie auf die Zeile 'OnPaint'. Lazarus fügt der Unit des Hauptformulars automatisch einen FormPaint-Handler hinzu. Ergänzen Sie zum Beispiel den folgenden Code:

procedure TForm1.FormPaint(Sender: TObject);
var bmp: TBGRABitmap;
begin
  bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
  bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet);  //fill an orange rectangle
  bmp.Draw(Canvas, 0, 0, True);                           //render BGRABitmap on the form
  bmp.Free;                                               //free memory
end;

Wie Sie sehen, deklarieren wir eine Variable TBGRABitmap und erzeugen sie anschließend. Es gibt mehrere unterschiedliche Konstruktoren für TBGRABitmap. Dieser hier verwendete erzeugt eine Bitmap der Größe ClientWidth x ClientHeight und füllt sie mit Schwarz. ClientWidth und ClientHeight sind Eigenschaften des Formulars, die den für Zeichnungen verfügbaren Platz des Formulars angeben.

Die Prozedur FillRect erwartet die üblichen Parameter zum Zeichnen eines Rechtecks, das ist die obere, linke Ecke gefolgt von der unteren, rechten Ecke plus 1. Das bedeutet, dass das Pixel bei (100,40) vom Rechteck ausnommen ist.

Anschließend folgen ein Farbparameter mit den Komponenten rot/grün/blau und ein Zeichenmodus. Bei 'dmSet' werden einfach die Pixel ersetzt.

Vergessen Sie nicht, das Objekt nach der Verwendung wieder frei zu geben, um Speicherlecks zu vermeiden.

Resultierender Code

Sie sollten jetzt den folgenden Code haben:

unit UMain;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  BGRABitmap, BGRABitmapTypes;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

{ TForm1 }

procedure TForm1.FormPaint(Sender: TObject);
var bmp: TBGRABitmap;
begin
  bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
  bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
  bmp.Draw(Canvas,0,0,True);
  bmp.Free;
end;

initialization
  {$I UMain.lrs}

end.

Starten Sie das Programm

Sie sollten ein schwarz gefülltes Fenster mit einem orangen Rechteck darin erhalten.

BGRATutorial1.png

Zum nächsten Tutorial (Laden eines Bildes)