AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi DelphiX für Anfänger (1)
Tutorial durchsuchen
Ansicht
Themen-Optionen

DelphiX für Anfänger (1)

Ein Tutorial von Chegga · begonnen am 26. Dez 2004 · letzter Beitrag vom 3. Apr 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Chegga
Chegga
Registriert seit: 5. Nov 2004
Hi,

hier mal mein versprochenes Tutorial. Los geht's!

Kapitel 1

Dieser Kurs soll euch den Umgang mit DelphiX etwas leichter machen.

Was ist DelphiX?

DelphiX ist eine Komponentengruppe von Hiroyuki Hori, die DirectX in Delphi 3, 4 und 7 einbindet. Durch diese Komponenten wird der Einstieg in die DirectX Programmierung erleichtert. DelphiX enthält folgende Komponenten:

(Siehe Anhang, "Komponenten.jpg")

Hier noch einmal beschrieben:

(Siehe Anhang, DXDraw.jpg)
DXDraw ist die Verknüpfung mit DirectDraw und Direct3D. In diesem Display werden die Programme/Spiele erstellt.

(Siehe Anhang, DXDib.jpg)
DXDib dient dazu, um ein Bild zu speichern (Device independent bitmap = DIB).

(Siehe Anhang, DXImageList.jpg)
DXImageList ist Liste von Bildern. Wird verwendet um Animationen zu erstellen.

(Siehe Anhang, DX3D.jpg)
DX3D ist eine Direct3D Komponente.

(Siehe Anhang, DXSound.jpg)
DXSound wird für die Sound Aufnahme verwendet oder zum abspielen. Verknüpfung mit DirectSound.

(Siehe Anhang, DXWave.jpg)
DXWave dient als Speicher für eine Wave Datei.

(Siehe Anhang, DXWaveList.jpg)
DXWaveList dient als Speicher für mehrere Wave Dateien.

(Siehe Anhang, DXInput.jpg)
DXInput ist eine Verknüpfung mit der DirectInput Komponente und wird verwendet, um Ereignisse von Eingabegeräten (Maus, Tastatur, Joystick) zu bekommen. Es können auch Feedback Effekte an spezielle Joysticks gesendet werden.

(Siehe Anhang, DXPlay.jpg)
DXPlay wird für die Kommunikation zwischen Computern (TCP/IP, IPX, Seriell, Modem) verwendet. Verknüpfung mit DirectPlay Komponente.

(Siehe Anhang, DXSpriteEngine.jpg)
DXSpriteEngine dient dazu, um Sprites zu erzeugen und zu steuern.

(Siehe Anhang, DXTimer.jpg)
DXTimer ist ein High-Speed Timer und dient als eine alternative zum TTimer.

(Siehe Anhang, DXPaintBox.jpg)
DXPaintBox ist eine DIB Version von TPicture.

Kapitel 2

Als erstes werde ich zeigen, wie man Bilder (noch keine Animationen) darstellen und bewegen kann.

Bilder darstellen

Zuerst wir mit DXDraw eine Fläche erstellt, auf der die Bilder angezeigt werden sollen. Dazu klickt man auf das Symbol und zieht dann auf dem Formular bei gedrückter linker Maustaste ein Rechteck. Danach fügt maneine DXImageList Komponente ein.
Stellt bei DXDraw unter Eigenschaften bei Align alClient ein.
Es sollte dann etwa so aussehen:

(Siehe Anhang, Form1.jpg)

Damit die DXImageList Komponente weiß, wo das Bild angezeigt werden sollen, muss man 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:

(Siehe Anhang, ImageList.Item.jpg)

Um ein neues Bild hinzuzufügen, klickt man auf das Linke Symbol.
Mit der Eigenschaft "Picture" kann man ein Bild laden (Load-Button, Bild auswählen, TDIB-Button, OK). Gebt dem Bild den Name "Test" (Eigenschaft: Name). Man sieht nun in dem DXImageList-Fenster 0 - Test, d.h. unser Bild mit dem Namen "Test" hat die Item Nummer 0. Wenn man will, kann man eine Farbe als Transparent festlegen. Dazu wählt man in der Eigenschaft TransparentColor eine Farbe aus und schaltet die Eigenschaft Transparent auf True. In das Ereignis OnClick der DXDraw Komponente schreiben wir folgendes:

Delphi-Quellcode:
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:

Code:
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 startet das Programm mit Drücken auf F9. Wenn ihr nun auf das schwarze Feld drückt, erscheint euer Bild.

Der nächste Beitrag folgt in Kürze.

MfG Marc

Hier geht es weiter zu DelphiX für Anfänger (2)

P.S.: Dieses Tutorial hat "MiGa" erstellt.
Es wurde von meiner Wenigkeit ein weing abgeändert.

[edit=Admin]Code-tags in Delphi-Tags geändert. Mfg, Daniel[/edit]
[edit=sakura] Auf Wunsch Links zu den Tutorial 2 hinzugefügt. Mfg, sakura[/edit]
Angehängte Dateien
Dateityp: zip erstes_projekt_190.zip (38,5 KB, 296x aufgerufen)
Grüße aus Kirchheim Teck
 
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#21
  Alt 11. Mär 2005, 13:05
Zitat von neoCorteX:
Zitat von maximov:
Und was ist hiermit? ...hast du das wenigstens überprüft?
Jein - hier, an den alten Systemen, hat das geholfen. Das Problem ist jedoch, dass es doch eigentlich mindestens ein Warning geben müsste wenn ich versuche Dinge miteinadner zu verknüpfen die miteinander nichts zu tun haben... naja - Delphi ist halt ein notwendiges Übel...

Thema jedenfalls erledigt und gut is.
DXDraw und die Imagelist haben sehr wohl was miteinander zu tun und statt Warnungen wird es höchstens funktionieren
Wenn man beide nicht verbindet das funktionierts nicht.
Michael
  Mit Zitat antworten Zitat
neoCorteX
 
#22
  Alt 11. Mär 2005, 13:33
Zitat von Neutral General:
Zitat von neoCorteX:
Zitat von maximov:
Und was ist hiermit? ...hast du das wenigstens überprüft?
Jein - hier, an den alten Systemen, hat das geholfen. Das Problem ist jedoch, dass es doch eigentlich mindestens ein Warning geben müsste wenn ich versuche Dinge miteinander zu verknüpfen die miteinander nichts zu tun haben... naja - Delphi ist halt ein notwendiges Übel...

Thema jedenfalls erledigt und gut is.
DXDraw und die Imagelist haben sehr wohl was miteinander zu tun und statt Warnungen wird es höchstens funktionieren
Wenn man beide nicht verbindet das funktionierts nicht.
Nein, ich meine abermals etwas anderes. Natürlich haben beide Teile etwas miteinander zu tun, gar keine Frage. Ich bezog mich auf den allgemeinen Fall in welchem Delphi in der Regel so nett ist und ne Warnung ausspuckt..

Es läuft jetzt auch auf den beiden anderen Systemen. Dx Pfade angepasst und nun lüppt es... (for whatever reason...)
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

 
Delphi 2005 Professional
 
#23
  Alt 11. Mär 2005, 13:46
Zitat von neoCorteX:
...
Nein, ich meine abermals etwas anderes. Natürlich haben beide Teile etwas miteinander zu tun, gar keine Frage. Ich bezog mich auf den allgemeinen Fall in welchem Delphi in der Regel so nett ist und ne Warnung ausspuckt..
Das hat nix mit Delphi zu tun! Höchstens mit dem programmierer der komponente. Also mach delphi nicht für deine oder Horis fehler verantwortlich
  Mit Zitat antworten Zitat
Minz
 
#24
  Alt 12. Mär 2005, 01:59
@neoCortex

ich habe von einer Picture-Eigenschaft, TJPEGImage und TDIB und Ladevorgang gesprochen. Das hat mit deinem erwähnten Timer so ziemlich nichts zu tun. Die gemeinte Picture-Eigenschaft findest du bei der DXImageList, wenn du das Bild dort festlegst bzw. lädst...
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

 
Turbo Delphi für Win32
 
#25
  Alt 1. Apr 2005, 17:26
delphix ist auch für delphi 5 und 6
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#26
  Alt 1. Apr 2005, 17:34
Zitat von vlees91:
delphix ist auch für delphi 5 und 6
Und für Delphi 3, (Delphi 4), Delphi 7, Delphi 2005
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

 
Turbo Delphi für Win32
 
#27
  Alt 1. Apr 2005, 17:38
3,4 und 7 hat er schon selbst genannt.
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#28
  Alt 1. Apr 2005, 17:40
Zitat von vlees91:
3,4 und 7 hat er schon selbst genannt.
Wer lesen kann, ist klar im Vorteil
Manuel
  Mit Zitat antworten Zitat
Metatron220
 
#29
  Alt 22. Jan 2006, 10:53
Wo finde ich DelphiX für Delphi 2005?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#30
  Alt 22. Jan 2006, 11:00
Gibts nur als UnDelphiX. Dafür einfach mal die Suchfunktion bemühen.
Manuel Eberl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz