![]() |
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 |
Re: DirectX für Delphi.
Wenn Du D2006 verwenden willst, kannst du au
![]() |
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 ;) |
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 |
Re: DirectX für Delphi.
Wie machst du es denn bisher?
Wenn du nach ![]() ![]() Oder in Kurz: Entweder ein Label nehmen und es verschieben oder immer den ersten Buchstaben vorne löschen und hinten wieder dranhängen. |
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 |
Re: DirectX für Delphi.
Zitat:
Delphi-Quellcode:
Form1.DoubleBuffered := True
|
Re: DirectX für Delphi.
Habe auch
Delphi-Quellcode:
gesezt, jedoch das ist nicht das was ich mir unter rückelfrei vorstelle.
Form1.DoubleBuffered := True
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 |
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.
|
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 |
Re: DirectX für Delphi.
Nein, das mit dem Bitmap ist genauso rückelig wie mit Label.
Also meine frage weitehin offen. gruss shifter |
Re: DirectX für Delphi.
'n Vorschlag ? ->
![]() |
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 ;) |
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 |
Re: DirectX für Delphi.
Alphablendin oder so etwas an ?
XP oder was für'n BS, Wie machst du nun das Scrollabeltextdingsbums ? |
Re: DirectX für Delphi.
Hier vieleich ein paar einzelheiten :
Hier Wird Text zur BMP Convertiert und ein TImage zugeordnet.
Delphi-Quellcode:
Hier Bewegt der "Timer" die geschichte von Rechts nach Links.
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; p0 -> ist ein TPanel
Delphi-Quellcode:
Der Timer wurde von Intervale 5 bis x ausprobiert.
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; 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 |
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. ;) |
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 |
Re: DirectX für Delphi.
Ich habe la ne' Komponente draus gebastelt. (Download im Link von Post #12)
PS.: Bitte. |
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 |
Re: DirectX für Delphi.
Alphablend an ?
Ich werde heute Abend mal sehen das ich das Teil etwas umschreibe (Timer raus, Thread rein). |
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 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz