AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sinus scroller

Ein Thema von michdan · begonnen am 12. Apr 2007 · letzter Beitrag vom 15. Apr 2007
Antwort Antwort
michdan

Registriert seit: 1. Okt 2003
Ort: varde, Dänemark
40 Beiträge
 
Delphi 7 Professional
 
#1

Sinus scroller

  Alt 12. Apr 2007, 09:35
hallo

Weiss jemand wie man einen 'Sinus scroller' also einen lauftext der sich nach einer sinus kurve bewegt machen kann.

Ich benutze Delphi 7 pro.

gruss
michael
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Sinus scroller

  Alt 12. Apr 2007, 21:26
Sollte das nicht ungefähr so gehen?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x: Integer;

begin
  for x := 0 to 720 do
    begin
      Canvas.TextOut(x,200+trunc(100*sin(x/50)),'+');
      application.ProcessMessages;
      sleep(5);
    end;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Sinus scroller

  Alt 13. Apr 2007, 08:20
er meint wohl eher sowas, wo der Test sinusförmig angeordnet ist.
bei deinem code würde der text dennoch geradlinig sein und sich nur hoch- und runterbewegen

@michdan: schau mal bei Torry rein.
jedenfalls sollte es dafür bestimmt schon irgendwo eine fertige Komponente finden lassen.
$2B or not $2B
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Sinus scroller

  Alt 13. Apr 2007, 08:25
Alternativ könnte man den Text auch in eine Image schreiben und dieses dann vertikal verschieben.
Markus Kinzler
  Mit Zitat antworten Zitat
michdan

Registriert seit: 1. Okt 2003
Ort: varde, Dänemark
40 Beiträge
 
Delphi 7 Professional
 
#5

Re: Sinus scroller

  Alt 13. Apr 2007, 11:11
hallo

Klaus01: Ich wollte nicht eine kurve zeichnen, sondern einen text der sich nach einen sinus kurve bewegt machen.

Es soll also einen lauftext sein der sich von recht nach links nach einer sinus kurve bewegt...

Ich habe folgende link gefunden wo man mit openGl so einen scroller macht....

Sinus scroller


gruss
michael
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Sinus scroller

  Alt 13. Apr 2007, 11:17
Die Textausgabe ist recht einfach:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure PaintBox1Paint(Sender: TObject);
  private
    { Private-Deklarationen }
    bmp: tbitmap;
    sinArray: array of integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses math;

var
  SinTxt : String =
    'Willkommen in der freundlichen Community rund um Borlands/CodeGears'+
    ' Entwicklertool "Delphi". Unser Ziel ist es, eine Diskussionsplattf'+
    'orm für den Gedankenaustausch zwischen Menschen zu schaffen, die si'+
    'ch beruflich oder privat mit Delphi befassen...';

procedure TForm1.FormCreate(Sender: TObject);
var
  i, n,p: integer;
begin
  bmp := tbitmap.Create;
  bmp.Width := paintbox1.Width;
  bmp.Height := paintbox1.Height;
  bmp.PixelFormat := pf24bit;
  bmp.Canvas.Font.Assign(paintbox1.Font);

  SetLength(sinArray, bmp.Width + 1);

  for i := 0 to bmp.Width do
    sinArray[i] := round(sin((i/(pi*10))) * (bmp.Height/ 4) );

  for i := 0 to bmp.Width do
    bmp.Canvas.Pixels[i, bmp.Height div 2 + sinArray[i]] := clSilver;

  bmp.Canvas.Brush.Style := bsClear;
  p := bmp.Canvas.TextHeight('X^_') div 2;
  n := 0;
  for i := 0 to length(sinTxt)-1 do
  begin
    if i+n < bmp.Width then
    begin
      bmp.Canvas.TextOut(
          i+n,
          bmp.Height div 2 + sinArray[i+n] - p,
          SinTxt[i+1]
        );
    end;

    inc(n, bmp.Canvas.TextWidth('X'));
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  sinArray := nil;
  freeandnil(bmp);
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  paintbox1.Canvas.Draw(0,0, bmp);
end;

end.
... muss man halt noch animieren....
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
michdan

Registriert seit: 1. Okt 2003
Ort: varde, Dänemark
40 Beiträge
 
Delphi 7 Professional
 
#7

Re: Sinus scroller

  Alt 15. Apr 2007, 10:25
Matti
danke für den code, das werde ich mal ausprobieren.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:40 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