DelphiX-Tutorial für Anfänger

Ursprünglich erstellt von MiGa Mail Homepage (Danke!!)
Design-Anpassung und Veränderung von Simon

 

Kapitel 2

Als erstes werde ich ihnen zeigen, wie sie Bilder (noch keine Animationen) darstellen und bewegen können.

Bilder darstellen

Zuerst erstellen sie mit DXDraw eine Fläche, auf der die Bilder angezeigt werden sollen. Dazu klicken sie auf das Symbol und ziehen dann auf dem Formular bei gedrückter linker Maustaste ein Rechteck. Danach fügen sie eine DXImageList Komponente ein.
Es sollte dann etwa so aussehen:

Formular mit DirectDraw Komponente

Damit die DXImageList Komponente weiß, wo das Bild angezeigt werden sollen, müssen sie der Eigenschaft DXDraw"DXDraw1" (bzw. den Namen der DXDraw Komponente) zuweisen.

Nun laden wir ein Bild in die DXImageList Komponente. Dazu klicken wir auf die Eigenschaft Items. Folgendes Fenster öffnet sich:

Propertyeditor der Items

Um ein neues Bild hinzuzufügen, klicken sie auf das Linke Symbol.
Mit der Eigenschaft "Picture" können sie ein Bild laden. Geben sie dem Bild den Name "Test" (Eigenschaft: Name). Sie sehen nun in dem DXImageList-Fenster 0 - Test, d.h. unser Bild mit dem Namen "Test" hat die Item Nummer 0. Wenn sie wollen, können sie eine Farbe als transparent festlegen. Dazu wählen sie in der Eigenschaft TransparentColor eine Farbe aus und schalten die Eigenschaft Transparent auf True. In das Ereignis OnClick der DXDraw Komponente schreiben wir folgendes:

procedure TForm1.DXDraw1Click(Sender: TObject);
begin
  if not DXDraw1.CanDraw then
    Exit;
  DXImageList1.Items[0].draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

Was bedeutet das?

Also, die erste Zeile bedeutet, dass Delphi sofort aufhört weiter zu machen, wenn er nichts auf dem DXDraw Feld zeichnen kann.
Die zweite Zeile ist wichtiger. Sie sagt, dass Delphi aus DXImageList das erste Bild (Item=0) holen soll. In der Klammer steht, wo das Bild angezeigt werden soll (DXDraw1.Surface), die X-Koordinate, die Y-Koordinate und den PatternIndex (ist bei einem Bild immer 0; Dazu später mehr).

Zusammengefasst:

DXImageList1.Items[Nummer].draw(Wo, X-Koordinate, Y-Koordinate, PatternIndex);

Die Letzte Zeile bedeutet, dass DXDraw das Bild flipped, d.h. die DXDraw Oberfläche neu zeichnet und das Bild darstellt.

Nun können sie F9 zum starten drücken. Wenn sie nun auf das schwarze Feld drücken, erscheint ihr Bild in der oberen linken Ecke.

 

<<Vorheriges Kapitel>>   <<Nächstes Kapitel>>