Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi grafischer Scroll Text (StarWars o.ä.) (https://www.delphipraxis.net/194957-grafischer-scroll-text-starwars-o-ae.html)

EWeiss 27. Jan 2018 09:32

AW: grafischer Scroll Text (StarWars o.ä.)
 
Zitat:

bitte nicht abwertend verstehen,
Kein Problem hab es so auch nicht verstanden..

MakePoint erwartet als Rückgabe Single.
Schau einfach mal auf welche Funktion von MakePoint p[0] zugreift.

Notfalls mal die Reihenfolge der Units ändern.

gruss

EWeiss 27. Jan 2018 10:33

AW: grafischer Scroll Text (StarWars o.ä.)
 
Zitat:

DoubleBuffer gibt es leider so noch nicht, muss ich nachträglich einbauen (ja ja, doofes altes delphi ich weiß)
Warum doof? ;)
Jedem das seine.
Ich mache dir das mit dem Double buffer kein Problem.

gruss

Fukiszo 27. Jan 2018 11:37

AW: grafischer Scroll Text (StarWars o.ä.)
 
info, unter radstudio xe 10.2.2 schnurrt alles wie bei deinem original binary ohne probleme
ich hat gerade mal unsere firmen vm gestartet und kompiliert, alles sahne.
mein lokales problem werde ich schon hinbekommen, GDI_Close hab ich hinzugefügt danke!

Alles wird gut ;-)


Grüße


(wobei ich gerade eher vom code fasziniert bin wie du mit gdi+ umgehst)

EWeiss 27. Jan 2018 11:58

AW: grafischer Scroll Text (StarWars o.ä.)
 
Hier eine aktualisierte Version mit neuer Gradient(verschiedene Richtungen zeichnen) und Doublebuffer Funktion.
Habe aber ein kleines Problem nach dem abspielen wird der Gradient nicht mehr gezeichnet.. :oops:
Eventuell muss ich hier ein Temporäres Transparentes Bitmap erstellen ansonsten wüsste ich jetzt nicht an was es sonst noch liegen könnte das der Hintergrund schwarz ist.

Kannst ja mal vergleichen ;)
Pick dir raus was du brauchst.

Zitat:

(wobei ich gerade eher vom code fasziniert bin wie du mit gdi+ umgehst)
Über die Jahre bleibt schon was hängen ;)

EDIT:
Hier ist noch ein Problem..
Delphi-Quellcode:
  // Pen color for Border
  PenARGB := ColorARGB(255, 0);
  // Font Color
  ColrARGB := ColorARGB(255, RGB(255, 255, 0));

  UseFont := 'Arial';
  UseSize := 20;
  UseGradient := true;
  // ScrollOffset must be the same then Font size
  ScrollOffset := UseSize * Length(Txt); //<< muss hinter UseSize nicht davor
Im alten code wird UseSize verwendet bevor es zugewiesen wurde, ist dann 0

gruss

Fukiszo 27. Jan 2018 12:49

AW: grafischer Scroll Text (StarWars o.ä.)
 
ja das mit der fontsize hatte ich bereits berücksichtigt in der hoffnung ich bekomme schrift auch angezeigt ;-)
daran lag es nicht und die zweite version, ich hab noch nicht weiter reingeschaut nur rasch nebenbei kompiliert und probiert, da ist beim gradient ein sehr hoher cpu zuwachs, weswegen ich darauf komplett verzichte. (text anzeige bleibt noch leer, evtl muss ich's auf nonGDI+ bringen damit auch ich spass damit haben kann, ich teste noch viele varianten durch.) Danke auch für die DoubleBuffer implementierung aus der ich lernen kann!! Das hilft!

EWeiss 27. Jan 2018 13:13

AW: grafischer Scroll Text (StarWars o.ä.)
 
Zitat:

da ist beim gradient ein sehr hoher cpu zuwachs
Bei mir habe ich 0% CPU
Beim Border zeichnen ja da ist ein Zuwachs weil ich dann die Schrift doppelt zeichnen muss.

Zitat:

Danke auch für die DoubleBuffer implementierung aus der ich lernen kann!! Das hilft!
Kein Problem..

Zur Info.
Delphi-Quellcode:
DC := DoubleBuffer(PaintBox1.Canvas.Handle, rc.Right, rc.Bottom, CreateBuffer);


CreateBuffer erstellt ein Temporäres Bitmap.
DoubleBuffer gibt dann ein DC zurück auf das du zeichnen kannst.

Alle Zeichnungsoperationen werden dann auf das Temporäre Bitmap gezeichnet nicht in die PaintBox selbst.
Mit
Delphi-Quellcode:
DoubleBuffer(0, 0, 0, DestroyBuffer);


Wird dann das Resultat vom Bitmap(DestDC) in das SourceDC(PaintBox) geblittet und die Ressourcen freigegeben.

Denke aber du weist das selbst ;)

Zitat:

bei der JVCL ist eine TStarScroller
Weis jetzt nicht was du meinst aber das ist das kleinste Problem :)

Ok dann viel Spaß noch beim probieren.


gruss

Fukiszo 27. Jan 2018 14:09

AW: grafischer Scroll Text (StarWars o.ä.)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein minibeispiel was ich mit dem Sternenfeld meinte,
per Bild klappts natürlich auch, sehr geschmeidig gelöst hehe

Grüße


(zum compilieren JVCL und RxLib erforderlich deswegen auch .exe drinnen)

edit: vergessen datei ranzupappen :-/

Fukiszo 27. Jan 2018 19:36

AW: grafischer Scroll Text (StarWars o.ä.)
 
Liste der Anhänge anzeigen (Anzahl: 2)
mein lokales problem hab ich eingrenzen können, es sind die single werte für koordinaten oder wie sie benutzt werden.
der scroller zeichnet alles farblos total klein und weit ausserhalb des sichtbaren bereichs.
(bei mir extrem weit links, ich denk mal das da irgendwo dein 0-wert beginnt)
herausgefunden dank deiner doublebuffer funktion, da schob ich ein weißes bild zwischen um ein flackern zu bekommen.
ich bastel mal rum um mir in bei wiedergabe ein paar werte anzeigen zu lassen damit ich koordinaten kontrolliere.

Grüße

(solangsam nervts und ich bin geneigt auf 2010 upzugraden, ich guck mal bei ebay rein.)

edit:
anbei noch ein paar nette samples die ich fand.
particlesystem.7z = komponente mit der man easy flammen effekte hinbekommt
sam69.7z = opengl scroller, schaut aus wie ein wirbelsturm der sich entfaltet, cooler effekt
beides nicht von mir aber mit d7 anwendbar ;-)

EWeiss 27. Jan 2018 20:45

AW: grafischer Scroll Text (StarWars o.ä.)
 
Zitat:

ich denk mal das da irgendwo dein 0-wert beginnt)
Mein 0 wert bzw. die Position wo der path beginnt.

Zitat:

// ScrollOffset must be the same then Font size
ScrollOffset := UseSize * Length(Txt); //<< muss hinter UseSize nicht davor
Fonthöhe * länge des Textes.. in Zeilen gemessen (nicht die länge des strings)

bei einem Font mit einer höhe von 40 und einem Text mit 10 Zeilen ergibt das eine Top Position von der gesamt höhe des Panels plus 400.
es ist kein Minus wert also -400 weil meine schleife beim höchsten Index des übergebenen Textes beginnt.

pt.Y (Single = TGPRectF - F steht für single) wäre dann
Delphi-Quellcode:
ScrollOffset + rc.Bottom - ((Length(Txt) - 1) - IntI) * UseSize

pt.X berechnet sich aus der weite des Panels minus der Text Weite der aktuellen Zeile dividiert durch 2 (Zentriert im Panel).


gruss

Fukiszo 27. Jan 2018 21:33

AW: grafischer Scroll Text (StarWars o.ä.)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab's fast hinbekommen, jetzt nurnoch das pWide korrigieren und es funktioniert wie gewünscht.
Anbei mein Fortschritt in Chinesisch/Japanisch :cheer:

edit:
und danke nochmal für die erläuterungen, das half mir irgendwie, man siehts ja per bild beweis ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
Seite 4 von 5   « Erste     234 5      

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