AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TACredits, scrolling Unicode & Smart-Tag capable Credits
Thema durchsuchen
Ansicht
Themen-Optionen

TACredits, scrolling Unicode & Smart-Tag capable Credits

Ein Thema von Prototypjack · begonnen am 13. Jul 2007 · letzter Beitrag vom 12. Jul 2011
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Prototypjack
Registriert seit: 2. Feb 2003
Moin DP,

Wow, ein denkwürdiger Moment! Denn dies ist nicht nur meine erste Veröffentlichung sondern auch meine erste visuelle Komponente überhaupt!


http://www.aviant.net/projects/tacredits/logo.jpg
TACredits
Copyright (c) 2007-2008 by Maximilian Sachs


Ok, los geht's mit der Beschreibung:

Was ist das?
Diese Komponente kann einen (Unicode) Text anzeigen und diese gegebenenfalls von Oben nach Unten oder umgekehrt fließen lassen. Dabei gibt es einige Schmankerl, wie zum Beispiel die BB-Tags, SmoothLines und das Dragging. Einzelnes dazu folgt weiter unten.
Die Komponente ist eigentlich aus der Laune entstanden so etwas wie die Credits in Filmen (am Ende) auch im eigenen Programm zu haben. Auf diese Idee ist doch bestimmt schon wer gekommen? Ja, in der Tat, doch ich wollte mehr, freie Formatierungen, schöne Enden (Smoothlines) und einige andere Funktionen.

Features
  • Animation möglich (Freie Wahl der Richtung möglich (Direction).
  • Unicode-Fähig
  • Unterstützung von "Smart-Tags", näheres dazu im folgenden Abschnitt ("Smart-Tags?")
  • Hintergrundfarbe wählbar
  • Hintergrundbild einstellbar (Hintergrundfarbe wird hierbei ignoriert)
  • Rahmen anzeigbar und Farbe anpassbar
  • Animation kann, wenn sich die Maus über dem Credits-Feld befindet, angehalten werden (StopAnimationOnMouseOver)
  • "Dragging", aktivierbar. Text kann manuell verschoben werden (EnableDragging)
  • TextOffset setzbar, wie weit soll der Text vom Rand entfernt sein? (TextOffset)
  • TextAligment setzbar. Zentriert, Rechts oder Links. (TextAlign)
  • Aktivierbare "SmoothLines", näheres weiter unter im Abschnitt "Smooth-Lines?"

Smart-Tags?

Beschreibung
Smart-Tags sind in etwa mit den verbreiteten BB-Code Tags vergleichbar. Diese finden vor allem ihren Weg in diverse Foren, wie auch in dieses hier. Die Tags sind allgemein Case-Insensitive. Es macht also keinen Unterschied, ob man "[anchor]", oder "[AnChor]" schreibt!

Welche Tags werden unterstützt?
Code:
Bold-Tags
Bold-Tag Syntax:
[b]TEXT[/b]
Funktion: Text wird fett dargestellt.

StrikeOut-Tags
StrikeOut-Tag Syntax:
[s]TEXT[/s]
Funktion: Text wird durchgestrichen dargestellt.

Italic-Tags
Italic-Tag Syntax:
[i]TEXT[/i]
Funktion: Text wird kursiv dargestellt.

Underline-Tags
Underline-Tag Syntax:
[u]TEXT[/u]
Funktion: Text wird unterstrichen dargestellt.

Color-Tags
Color-Tag Syntax:
[color="clRed"]TEXT[/color]
[color="$000000FF"]TEXT[/color]
[color="#FF0000"]TEXT[/color]
Funktion: Text wird in der angegebenen Farbe dargestellt.

Font-Tags
Font-Tag Syntax:
[font="Verdana"]TEXT[/font]
Funktion: Text wird in der angegebenen Schriftart dargestellt.

Size-Tags
Size-Tag Syntax:
[size="8"]TEXT[/size]
Funktion: Text wird in der angegebenen Größe dargestellt.

Url-Tags
Url-Tag Syntax:
[url="http://www.google.com"]TEXT[/url]
Funktion: Text wird anklickbar als Link dargestellt. Die Genaue Erscheinung kann im Parameter "LinkFont" verändert werden.

Anchor-Tags
Anchor-Tag Syntax:
[anchor="test"]TEXT[/anchor]
Funktion: Wenn ein Anchor angeklickt wird, wird ein Event (OnAnchorClicked) aufgrufen, zusammen mit dem, in einem WideString/String verstautem, Argument. Wie bei dem Url Tag kann auch hier die genaue Erscheinung mit dem Parameter "AnchorFont" angepasst werden.

Row-Tags
Row-Tag Syntax
[row="50"]
Funktion: Ein horizontaler Strich mit der angegebenen Länge (in Pixeln) wird erzeugt.

Image-Tags
Image-Tag Syntax
[img="0"]
Funktion: Ein Bild aus der angegebenen Imagelist (mit dem angegebenen Index) wird dargestellt.

Offset-Tags
Offset-Tag Syntax
[Offset="12"]
Funktion: Der nachfolgende Text wird, ungeachtet der Textausrichtung, N-Pixel entfernt vom rechten Rand dargestellt.
Smooth-Lines?
Smooth-Lines sind einfach nur "weiche"-Enden. Sie können entweder Oben oder Unten oder auf beiden Siten angezeigt werden. Natürlich kann auch hier die Länge näher spezifiziert werden (SmoothBottom und SmoothTop). Sie erzeugen ihrer Länge nach einen weichen Abgang des Textes in das Hintergrundbild oder in die Hintergrundfarbe.

Lizenz - oder das "Kleingedruckte"
Die ganze Komponente steht unter der Mozilla Public License, Version 1.1. Näheres dazu erfährt man entweder direkt durch die Lizenz (hier), oder durch eine unverbindliche Erklärung durch DSDT.info, am Beispiel der JEDIs (hier).
Ich persönlich finde die Lizenz nicht zu aufdringlich und sehr angenehm für beide Seiten.

Allgemeines, Part 2
Erstellt und getestet wurde die Komponente mit dem BDS 2006 Prof. Ab Version 1.1 RC1 ist sie ebenfalls auf Delphi 7 und BDS 2005 getestet und für lauffähig befunden! Es sind mir momentan keine Fehler bekannt. Solltet Ihr welche finden, so teilt mir diese bitte mit (ich freue mich auch über Lösungsvorschläge oder vielleicht fertige Ansätze!).
Sollte die Komponente den Weg in eure Programme finden, so freue ich mich natürlich immer über eine Mail oder eine PM.

Roadmap
  • Version X
  • Listen-Tags
  • Tabulator Unterstützung
  • [Sleep] Tag (Anhalten, entweder wenn Bottom, Center oder Top zu trifft)

Versionen
  • Ab heute (25.01.2009) ist auch eine Doppellizenz inkludiert. Es kann entweder die MPL, oder die LGPL genutzt werden.
  • Version 1.2 RC1, released on 2008-04-27
    [Added]PNG-Support and Foreground Images (by Sko)
  • Version 1.1 RC2, released on 2008-03-30
    [Fixed]Memory Leaks
  • Version 1.1 RC1, released on 2007-08-11
    [Fixed]Cursor-Bug (Thx to DGL-Luke!)
    [Added]Complete documentation
    [Fixed]Values are now "<0"-safe.
    [Added]Compatibility to Delphi7 and BDS 2005.
    [Fixed][color]-tag ignored Hex-Values.
    [Fixed]Several scrolling-issues.
    [Added]MinHeight/MinWidth
    [Added][Row]-Tag, [Img]-Tag, [Offset]-Tag
    [Added]Unicode can be disabled via compiler-switch.
  • Version 1.1 Alpha 2, released on 2007-07-20
    [Fixed] Smooth-Line Bug
    [Added] PopUp-Menu, Anchors, Alignment, ParentShowHint
    [Changed] CreditsFont -> Font, BackgroundColor -> Color
  • Version 1, released on 2007-07-13
    First Release

Vorsicht: Bei älteren Versionen kann es vorkommen, dass Eigenschaften verändert und/oder entfernt wurden. Deshalb sollte der Inhalt der Komponente temporär gespeichert werden (in einer Text-Datei z.B.), dann die alte Version deinstalliert und erst dann die neue installiert werden. So können etwaige Probleme und Datenverlust vermieden werden! (Daran bin nicht ich Schuld, das ist immer so, wenn man Properties verändert)

Abschließen will ich noch mit einem kleinen Screenshot, der aus einem meiner anderen Projekte stammt und bereits diese Komponente verwendet. Dieser Screenshot zeigt recht gut was damit möglich ist und in wie fern man sie verwenden könnte.

Grüße und bitte Feedback (es ist ja schließlich mein erster Versuch )
Max
Miniaturansicht angehängter Grafiken
screen_638.jpg  
Angehängte Dateien
Dateityp: exe demo_149.exe (513,0 KB, 253x aufgerufen)
Dateityp: zip acredits_778.zip (92,2 KB, 156x aufgerufen)
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
 
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#11
  Alt 16. Jul 2007, 21:18
Du solltest die Offsets und Smooths auf <= 0 absichtern
Fabian
  Mit Zitat antworten Zitat
Gehstock

 
Delphi 2007 Professional
 
#12
  Alt 16. Jul 2007, 22:58
Sieht wirklich gut aus Gute Arbeit und Danke
Marcel
  Mit Zitat antworten Zitat
Prototypjack

 
Delphi 2009 Professional
 
#13
  Alt 16. Jul 2007, 23:45
Moin,

Die Demo habe ich eben angepasst, nun sind nur noch Werte zwischen 1 und 100 gültig. Bei den meisten Werten ist auch noch mehr drin, aber das soll ja nur zu Testzwecken dienen.

Ich freue mich das meine Komponente so gut ankommt

Vielen Danke & Grüße,
Max
Max
  Mit Zitat antworten Zitat
Ghostwalker

 
Delphi 10.3 Rio
 
#14
  Alt 17. Jul 2007, 09:16
Vielleicht als Erweiterungsidee:

unter www.pbear.com gibts eine Komponenten für die Darstellung von HTML (unabhängig von einem installierten Browser !!!). Vielleicht wär das was so als Erweiterung (mit Bildchen und so einem Schnickschnack ).
Uwe
  Mit Zitat antworten Zitat
Prototypjack

 
Delphi 2009 Professional
 
#15
  Alt 17. Jul 2007, 11:03
Moin,

Ja, das hatte ich auch geplant. Der Grund wieso ich überhaupt Smart-Tags und nicht HTML verwende ist, dass ein kompletter HTML-Parser einfach ziemlich übertrieben wäre (Man könnte wahrscheinlich nicht einmal die Hälfte aller Tags verwenden ohne den eigentlich Sinn dieser Komponente (nämlich einfach nur schön formatierte Credits anzuzeigen) auszuhebeln).

Dennoch gibt es ein paar Sachen die ich auf jeden Fall noch in der Komponente sehen möchte. Ich habe leider versäumt die Roadmap gleich von Anfang an in den ersten Post zu setzen, nun ist sie aber verfügbar!

Gruß,
Max
Max
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#16
  Alt 17. Jul 2007, 16:06
Hmm - mal so eine Frage aus dem Hintergrund: wäre es viel Arbeit, die Komponente für Delphi7 anzupassen? Ich haben eben versucht, diese zu kompilieren, aber D7 kennt wohl noch keine WideStringLists...

Es wäre sicher vermessen zu fragen, ob man die entsprechenden DCU-Files bekommen könnte,oder (keine Ahnung, inwieweit sich das mit den Borland-Lizenzen beißt)?

Da die Komponente wirklich Eindruck macht, wäre sowas für den Splashscreen oder den Aboutdialog meiner Anwendung ideal...


vielen Dank,
Christian


PS: Ich habe jetzt mal ein wenig rumgecodet und siehe da, die Komponente läuft jetzt schonmal während der Designzeit (also Scrollt munter vor sich hin.) Starte ich allerdings meine Anwendung, bekomme ich ununterbrochen Zugriffsverletzungen... woran könnte das liegen?

Ich habe derzeit nur die "WidestringLists" durch normale "StringLists" ausgetauscht und die Compileranweisungen {$REGION ...} auskommentiert. Der Fehler tritt in der StrUtils.pas auf, also hats schonmal was mit meinem Austauschen der Stringlists zu tun - aber wo im Code muss ich suchen?


Danke






Delphi-Quellcode:
              lCurTagBegin := CurPos - 1;
              lCurTagEnd := PosEx(']', CurLine, lCurTagBegin);
              lCurTagName := Copy(CurLine, lCurTagBegin, lCurTagEnd - lCurTagBegin + 1);

              if CheckTag(lCurtagName, lCurTag) then
              begin
                lNexTagBegin := lCurTagEnd - 1;
                lNexTagName := '';

                while not CheckTag(lNexTagName, lNexTag) do
                begin
                  lNexTagBegin := PosEx('[', CurLine, lNexTagBegin + 1);
                  lNexTagEnd := PosEx(']', CurLine, lNexTagBegin);
                  lNexTagName := Copy(CurLine, lNexTagBegin, lNexTagEnd - lNexTagBegin + 1);
                  if (lNexTagEnd = 0) or (lNexTagBegin = 0) then
                  begin
                    lNexTagBegin := Length(CurLine) + 1;
                    Break;
                  end;
               end;

Diese Codezeilen lösen die Exception aus. Die Funktion PosEx löst den Fehler bei den Zeilen "lCurTagEnd", "lCurTagName" und "lNexTagEnd", "lNexTagName" aus.

Im Anhang ist die Komponentendatei, welche bei mir unter D7 zwar läuft, aber nur solange man in der ersten Zeile Text stehen hat. Leider werden aufgrund des PosEx-Fehlers auch die Taganweisungen nicht gelöscht. Ansonsten Scrollt das bei mir jetzt auch bei laufendem Programm. Vielleicht kann sich das einer mal anschauen, der etwas mehr Ahnung von Komponenten hat, als ich.
Angehängte Dateien
Dateityp: pas credits_126.pas (43,9 KB, 20x aufgerufen)
Christian Nöding
  Mit Zitat antworten Zitat
Prototypjack

 
Delphi 2009 Professional
 
#17
  Alt 17. Jul 2007, 23:59
Moin,

Tut mir Leid, dass ich heute nicht mehr dazu kam/komme. Morgen gegen Mittag werde ich mir die ganze Sache mal ansehen!

Bis dann & Grüße,
Max
Max
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#18
  Alt 18. Jul 2007, 10:52
Also ich bekomme die Fehlermeldung
Zitat:
[Pascal Fataler Fehler] Credits.pas(1): F2092 Das Programm oder die Unit 'Credits.pas' ruft sich selbst wieder auf
mit der veränderten Variante...

Geändert habe ich nur den auskommentierten Code weiter unten!

[edit]Ich bin dooooooooooof
Und zwar hieß das Projekt.... Auch Credits xD
Jetzt funktionierts... und seltsamerweise auch die veränderte Variante (dynmaisch eingebunden)...
Vielleicht liegt es daran, dass ich TD verwende?[/edit]

[edit]Zu den Alignment: Es gibt schon von Borland eine Enumeration: TAlignment...[/edit]

[edit]Du hast noch einen Bug beim Smooth...
Und zwar Smooth er von Schwarz in BackgroundColor... Siehe Bild[/edit]
Miniaturansicht angehängter Grafiken
tacredits_183.png  
Fabian
  Mit Zitat antworten Zitat
Prototypjack

 
Delphi 2009 Professional
 
#19
  Alt 18. Jul 2007, 19:21
Zitat von xZise:
Jetzt funktionierts... und seltsamerweise auch die veränderte Variante (dynmaisch eingebunden)...
Vielleicht liegt es daran, dass ich TD verwende?[/edit]

[edit]Zu den Alignment: Es gibt schon von Borland eine Enumeration: TAlignment...[/edit]

[edit]Du hast noch einen Bug beim Smooth...
Und zwar Smooth er von Schwarz in BackgroundColor... Siehe Bild[/edit]
Selbes Ergebnis hatte ich auch. Unter den Version D10+ klappt alles problemlos, sowohl die Unicode(WideString)-Variante, als auch die, die mit normalen Strings arbeitet! Ich habe leider keine Ahnung woher die Fehler kommen und kann auch nicht daran arbeiten, weil ich selbst nicht wirklich debuggen kann, wenn ich keine Fehler sehe, Entschuldigung. Dennoch, falls jemand dem Fehler auf die schliche kommen sollte, bitte teilt ihn mir mit, damit ich das in die künftigen Version flechten kann! Danke

Zu TAlignment, ja ich weiß. Das wurde mir gestern bewusst. Dies und einige andere Dinge werden morgen, in einer neuen Version, verfügbar sein! Ebenso werde ich das Problem mit den SmoothLines ausmerzen (Danke für den Hinweis!).

Grüße,
Max
Max
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#20
  Alt 20. Jul 2007, 10:16
An sich sind die Credits richtig gut und habe sie auch schon in Qd verwendet...
Nur eben das mit den Smoothlines ist etwas schade (da ich als Hintergrund clBtnFace) verwende
Wann wird das denn aktuallisiert?
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 17:44 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