Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Suche eine "StarWars-Credits"-Komponente :( (https://www.delphipraxis.net/42401-suche-eine-starwars-credits-komponente.html)

Master_RC 18. Mär 2005 11:14


Suche eine "StarWars-Credits"-Komponente :(
 
hi leutz, ich hoffe, es kommt hier rein :)

ich suche eine komponente, mit der ich credits anzeigen kann, wie sie in StarWars üblich sind (nach oben hin verschwindend)

ich hab schon zwei gefunden, nur immer, wenn ich dann das programm schließe, kommt ne fehlermeldung, worauf die beiden kompos nicht in frage kommen :(

Stevie 18. Mär 2005 11:37

Re: Suche eine "StarWars-Credits"-Komponente :(
 
Ich meine, bei den GLScene-Komponenten gab's sowas... Allerdings braucht man da halt OpenGL.

Master_RC 18. Mär 2005 11:48

Re: Suche eine "StarWars-Credits"-Komponente :(
 
nee, meine kompos arbeiten ohne :(

nur mal so zur veranschaulichung:

ich kann TLines eingeben.
Die erscheinen dann Zeile für Zeile in der Kompo wie in einer Memo, nur eben wenn sie erscheinen haben sie ihren alpha-wert auf x
dann wandern sie immer weiter nach oben, bis ihr alpha-wert dann immer kleiner wird...

yo.. sowas such ich :)

gmarts 18. Mär 2005 11:55

Re: Suche eine "StarWars-Credits"-Komponente :(
 
Zitat:

Zitat von Master_RC
ich hab schon zwei gefunden, nur immer, wenn ich dann das programm schließe, kommt ne fehlermeldung, worauf die beiden kompos nicht in frage kommen :(

Vielleicht solltest du hier ansetzen. Liegt wahrscheinlich nicht an den Komponenten. :)

Master_RC 18. Mär 2005 11:59

Re: Suche eine "StarWars-Credits"-Komponente :(
 
nee, ich hab schon einiges ausporbiert, abba immer die gleiche meldung :(


bei meinen kumpelz klappen die auch net :(

naja, ich brauch ja nur ne ganz billige, die MUSS doch einer haben ;)

joachimd 18. Mär 2005 12:15

Re: Suche eine "StarWars-Credits"-Komponente :(
 
Zitat:

Zitat von Master_RC
naja, ich brauch ja nur ne ganz billige, die MUSS doch einer haben ;)

eine ganz billige?
Code:
unit Acknowledgement;

interface

uses
  SysUtils, Classes, Controls,extctrls;

type
  TAcknowledgement = class(TPanel)
  private
    FInterval: integer;
    FLines: TStrings;
    procedure SetInterval(const Value: integer);
    procedure SetLines(const Value: TStrings);
    { Private declarations }
  protected
    { Protected declarations }
    timer:TTimer;
    loop:integer;
    idx:integer;
    Procedure OnTimer(Sender: TObject);
    procedure Paint; override;
    procedure SetEnabled(Value: Boolean); override;
  public
    { Public declarations }
    constructor Create(AOwner:TComponent); override;
  published
    { Published declarations }
    property Interval:integer read FInterval write SetInterval;
    property Lines: TStrings read FLines write SetLines;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Joachim', [TAcknowledgement]);
end;

{ TAcknowledgement }


{ TAcknowledgement }

constructor TAcknowledgement.Create(AOwner: TComponent);
begin
  inherited;
  FInterval:=50;
  timer:=TTimer.Create(self);
  timer.Name:='timer'+Name;
  timer.Interval:=FInterval;
  timer.Enabled:=(Finterval>0) and (Enabled);
  timer.OnTimer:=OnTimer;
  FLines:=TStringList.Create;
  Caption:='';
  DoubleBuffered:=true;
end;

procedure TAcknowledgement.OnTimer(Sender: TObject);
begin
  inc(loop);
  Invalidate;
end;

procedure TAcknowledgement.Paint;
var
  x,y:integer;
  idx2:integer;
  ispace:integer;
  s:string;
begin
  Caption:='';
  inherited;
  try
    ispace:=(Font.size+5);
    if (loop>ispace)
      then begin
        loop:=0;
        inc(idx);
        idx:=idx mod FLines.Count;
      end;
    y:=0-loop;
    idx2:=idx;
    while (y<(self.Height+ispace)) do
      begin
        idx2:=idx2 mod FLines.Count;
        s:=FLines[idx2];
        x:=(Width-canvas.TextExtent(s).cx) div 2;
        Canvas.TextOut(x,y,s);
        y:=y+ispace;
        inc(idx2);
      end;
  except
  end;
end;
       
procedure TAcknowledgement.SetEnabled(Value: Boolean);
begin
  inherited;
  if assigned(timer)
    then timer.Enabled:=((Finterval>0) and (Enabled));
end;

procedure TAcknowledgement.SetInterval(const Value: integer);
begin
  FInterval := Value;
  if assigned (timer)
    then begin
      timer.Interval:=FInterval;
      timer.Enabled:=(Finterval>0) and (Enabled);
    end;
end;

procedure TAcknowledgement.SetLines(const Value: TStrings);
begin
  FLines.Assign(Value);
end;

end.

Robert Marquardt 18. Mär 2005 15:19

Re: Suche eine "StarWars-Credits"-Komponente :(
 
Wahrscheinlich will er so eine wie in den Credits von Delphi.
Borland rueckt die Sourcen dazu aber nicht raus. Boeser haesslicher Hack wahrscheinlich.

Prinzipiell ist dies eine perspektivische Verzerrung.
Also den Text in eine gewoehnliche Bitmap pinseln und dann in eine zweite hinein verzerren.

Master_RC 18. Mär 2005 16:52

Re: Suche eine "StarWars-Credits"-Komponente :(
 
nee, der soll nicht nach hinten verschwinden, als ob man ein bitmap zerrt :(

er soll einfach zeile für zeile nach OBEN gehen, nicht nach hinten... :(

mmh...
gibt es da denn nicht wirklich eine kompo?

sowas wie von joachimd, nur eben, dass die texte auftauchen und wieder verschwinden, also wie mit alpha-bland ...

naja, trotzdem fettes THX!, joahimd, ich werd mich wohl damit abfinden müssen ;)

Binärbaum 18. Mär 2005 16:56

Re: Suche eine "StarWars-Credits"-Komponente :(
 
Zitat:

Zitat von Master_RC
naja, ich brauch ja nur ne ganz billige, die MUSS doch einer haben ;)

Programmier dir doch einfach selbst eine, wenn niemand eine solche Komponente hat oder kennt. :zwinker: Ich würde dazu, wie von Stevie bereits vorgeschlagen, wohl auch OpenGL verwenden.

MfG
Binärbaum

Master_RC 18. Mär 2005 17:09

Re: Suche eine "StarWars-Credits"-Komponente :(
 
abba ich kann das doch net :(

und in opengl tauch ich wahrscheinlich erst nächste woche ein :(

ach kommt, schon, wers schafft, kriegt nen keks ;)


abba ich weiß ja auch net, woher ich meine kompo hab, als beispiel eben...

naja...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Seite 1 von 2  1 2      

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