Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DirectX für Delphi. (https://www.delphipraxis.net/122528-directx-fuer-delphi.html)

shifter 17. Okt 2008 15:30


DirectX für Delphi.
 
Hallo zusammen,

ich suche nach eine möglichkeit laufschrift rückelfrei auf eine Form darzustellen.
Leider mi üblichen methoden klapt das nicht zufrieden stellend -> rückelt vor sich hin.

Ich würde gerne mit DirectX versuchen,
habe mich im netz umgeschaut aber finde nur irgen welche alte klamoten in richtung DX8,
gibt's fir DirectX9 fertige Komponenten die ich ohne weiteres im Delphi einbinden kann ?
Wie gesagt es geht nur um reines Laufschrift.


mfg
shifter

TurboMartin 17. Okt 2008 15:33

Re: DirectX für Delphi.
 
Wenn Du D2006 verwenden willst, kannst du au www.clootie.ru (oder so ähnlich) die DirectX9 und DX10 Dateien runterladen.

jfheins 17. Okt 2008 15:35

Re: DirectX für Delphi.
 
Das geht ganz bestimmt auch ohne DirectX ;)

DirectX ist Overkill für eine Laufschrift - es sei denn du möchtest gerne 3D Ansicht, BumpMapping, Shadereffekte und aniisotroische Filterung ;)

shifter 17. Okt 2008 15:47

Re: DirectX für Delphi.
 
Also ich will einfach nur ein 2D Text Flussig über mein Form zu scrollen, und dos noch Flussig scrollen.
DirectX war nur ein gedanke von mir, wenn es natürlich einfacher geht ...
Danke in vorraus für jeden tip.

gruss
seba

jfheins 17. Okt 2008 15:57

Re: DirectX für Delphi.
 
Wie machst du es denn bisher?

Wenn du nach Hier im Forum suchenLauftext oder Hier im Forum suchenLaufschrift suchst, sollte es schon einige Thread geben ;)

Oder in Kurz:

Entweder ein Label nehmen und es verschieben oder immer den ersten Buchstaben vorne löschen und hinten wieder dranhängen.

shifter 17. Okt 2008 16:07

Re: DirectX für Delphi.
 
Ich habe versuche ein Label durch die Form zu bewegen mit Timer,
und ich habe den label.caption versucht mit timer zu ändern,
immer die erste buchstabe zu verschieben am ende des Labels.

Es hat alles Functioniert aber nicht Rückelfrei.

Auch in Forum bin ich nicht füngig geworden.

gruss
shifter

Daniel Schuhmann 17. Okt 2008 16:23

Re: DirectX für Delphi.
 
Zitat:

Zitat von shifter
Es hat alles Functioniert aber nicht Rückelfrei.

Delphi-Quellcode:
Form1.DoubleBuffered := True

shifter 17. Okt 2008 16:36

Re: DirectX für Delphi.
 
Habe auch
Delphi-Quellcode:
Form1.DoubleBuffered := True
gesezt, jedoch das ist nicht das was ich mir unter rückelfrei vorstelle.
Auch wenn ich den Timer auf 5 einstelle, sieht es garnicht so schlech aus
aber ich kann mir vorstelen das es besser geht.

gruss
shifter

Daniel Schuhmann 17. Okt 2008 16:39

Re: DirectX für Delphi.
 
Wenn das nicht reicht, den Kram statt über ein Label in einem Bitmap erstellen und dieses zyklisch per BitBlt auf die Zeichenfläche des Formulars kopieren. Ist zwar etwas mehr Aufwand aber dann flimmert garantiert nichts mehr.

shifter 17. Okt 2008 16:44

Re: DirectX für Delphi.
 
Das ist eine gute idee die ich gleich ausprobieren werde.
Der text änder sich zwar, aber mann kann es in bitmap umweandeln,

Danke, werde gleich ausprobieren.


gruss
shifter

shifter 17. Okt 2008 16:53

Re: DirectX für Delphi.
 
Nein, das mit dem Bitmap ist genauso rückelig wie mit Label.

Also meine frage weitehin offen.


gruss
shifter

turboPASCAL 17. Okt 2008 18:04

Re: DirectX für Delphi.
 
'n Vorschlag ? -> ScrollText

Florian H 17. Okt 2008 18:09

Re: DirectX für Delphi.
 
Nein, das ruckelt alles nicht!
Wenn es doch ruckelt, hast du einen sehr alten Rechner oder ein übles Intervall für den Timer. 40ms sollten hier passend sein, das ergibt 25fps, dann sieht es nicht mehr ruckelig aus und braucht nur minimale Systemressourcen.

Bei mir ruckelt es zwar auch mit 10 oder 80ms nicht wirklich (egal ob Label oder Bitmap oder sonstwas), aber vielleicht hilfts dir ja ;)

shifter 17. Okt 2008 18:21

Re: DirectX für Delphi.
 
Also einz kann ich dir versichern. An rechner liegt es nicht.

Vieleicht rückeln ist der falsche ausdruck von mir aber unter flussig verstehe ich alles andere als das was ich bis jetzt hier ausprobiert habe.

Der Text verschiebt sich zwar aber ab und zu kommt es zur "stottern".

gruss
shifter

turboPASCAL 17. Okt 2008 18:28

Re: DirectX für Delphi.
 
Alphablendin oder so etwas an ?
XP oder was für'n BS, Wie machst du nun das Scrollabeltextdingsbums ?

shifter 17. Okt 2008 19:35

Re: DirectX für Delphi.
 
Hier vieleich ein paar einzelheiten :

Hier Wird Text zur BMP Convertiert und ein TImage zugeordnet.
Delphi-Quellcode:
Procedure TForm3.CREATE_BMP;
begin
  bmp.Width  := Canvas.TextWidth( Info );
  bmp.Height := Canvas.TextHeight( Info );
  bmp.Canvas.TextOut(0,0,Info);
  img.Picture.Assign(bmp);
end;
Hier Bewegt der "Timer" die geschichte von Rechts nach Links.

p0 -> ist ein TPanel

Delphi-Quellcode:
procedure TForm23.lauf_tTimer(Sender: TObject);
Begin
  if img.Left> (img.width)* -1 then
    img.left := img.left - 3
  else
    img.left := p0.Width;
end;
Der Timer wurde von Intervale 5 bis x ausprobiert.
Windows XP
Delphi 2007
2xCPU a 3 GHz
2x9800GT
4GB RAM

An Resourcen Liegt es mit sicherheit nicht.

Ich möchte den Lauftext 100% Rückelfrei haben da das Programm in öffentlichen bereich ausgestell wird,
somiut muss er 100%-ig sein.

Danke für eure Hilfe.
shifter

turboPASCAL 17. Okt 2008 20:01

Re: DirectX für Delphi.
 
Aha, du zeichnest mit einem Image (TImage)...

Mein Lieblingszitat: ein Image ist nicht zum zeichnen da sondern zum darstellen von statischen Bildern.

hast du dir mal Post #12 angeschaut, das ist wohl eine bessere Lösung. ;)

shifter 17. Okt 2008 20:18

Re: DirectX für Delphi.
 
@turboPASCAL

Na das ist doch n'wort,
warum habe ich den endscheidenen Beitrag #12 übersehen ?
Das ist meine lösung.

DANKE viel mals !!!

DAS RÜCKELT ÜBERHAUPT NICHT !

Danke für den guten tip

Mein kopf ist gerettet, ich darf ihn weiter tragen.


gruss
seba

turboPASCAL 17. Okt 2008 21:22

Re: DirectX für Delphi.
 
Ich habe la ne' Komponente draus gebastelt. (Download im Link von Post #12)

PS.: Bitte.

shifter 18. Okt 2008 15:12

Re: DirectX für Delphi.
 
Na was für erger.

Ich habe Deine "Classe" bei mir eingebunden , es functioniert aber :

Das Programm besteht aus ein haupt teil und ein teil der auf extra grossen bildschirm in "öffentlichkeit" sich befindet.
Auf dem Externem Bildschirm sind am Laufendem Aktuele Informationen eingeblendet. ( Interne infos bei uns im firma ).

Das Problemm :

Sobald ich mit dem maus zeiger ausserhalb vom mein Programm sich befinde fängt es an zu rückeln.
Der Focus besteht immer noch auf meinem Programm nur der Maus zeiger ist ausserhalb und fängt es Stark zu rückeln.

Sobald ich wieder über den Ext. Bildschirm oder über den Haupt teil mich befinde mit dem zeiger ist alles ok.


help

gruss
shifter

turboPASCAL 18. Okt 2008 15:30

Re: DirectX für Delphi.
 
Alphablend an ?

Ich werde heute Abend mal sehen das ich das Teil etwas umschreibe (Timer raus, Thread rein).

shifter 18. Okt 2008 15:41

Re: DirectX für Delphi.
 
Ja das war's - sche... Alphablend.

Ich nutze es um wichtige Zeichnunge zu überblenden, am ende von einer überblendung habe ich immer auf 255 gestellt aber nie richtig ausgemacht, und das war auch die ursache warum es gerückelt hat.

Danke nochmals für dein Tip und SourceCode vom TSrcTxt.

mfg
shifter


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 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