AGB  ·  Datenschutz  ·  Impressum  







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

Ticker-Text

Ein Thema von Privateer3000 · begonnen am 6. Jan 2003 · letzter Beitrag vom 15. Aug 2003
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#21
  Alt 8. Jan 2003, 18:03
Zitat von Christian Seehase:
Mal sehen, ob mir dazu was einfällt. Langsam fängt die Sache an interessant zu werden ;-)
Jo, wenn ich heut nach'Hause komme, werd ich mich wohl gleich mal rannsetzen *gg*


Thomas
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#22
  Alt 8. Jan 2003, 18:10
Moin Luckie,



der ist aber auch einfach zu schön. (dicht gefolgt von mecker )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23
  Alt 8. Jan 2003, 18:18
Und wehe der Ticker läuft morgen nicht. http://www.luckie-online.de/_pics/mecker.gif

Aber wer sagt das ein Ticker pixelweise scrollen muß? Klar es sieht schöner aus, aber dürfte auch recht schwer zu realisieren sein.
Man müßte ja praktisch die Buchstaben selber zeichnen oder so.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#24
  Alt 8. Jan 2003, 18:29
Moin Luckie,

das denke ich nicht.

Ich hab' mir das so gedacht (Umsetzung offen ):
  1. Der Text wird auf eine Bitmap geschrieben
  2. Die Bitmap wird ausgegeben
  3. Die erste Spalte der Bitmap wird nach hinten verschoben (wie vorher die Buchstaben
  4. Weiter mit Punkt 2

Als zweite Variante könnte man auch, statt eine Spalte der Bitmap zu verschieben, einen Spaltenzähler mitlaufen lassen, ab diesem ausgeben, und den Rest mit dem Anfang der Bitmap aufüllen.


[EDIT]
Das *MitDemKopfVorDieWandHau* bezog sich auch darauf, dass ich das Problem mit dem Ruckeln verkannt hatte.
Es ruckelt nun einmal, wenn man Buchstabenweise Scrollt
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#25
  Alt 8. Jan 2003, 19:17
Und jetzt das pixelweise Scrollen als kleine liebe Komponente.
Delphi-Quellcode:
unit uDPTicker;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls;

type
  TdpTicker = class(TGraphicControl)
  private
    FTimer: TTimer;
    FXPos, FTextWidth: Integer;
    FRunAtDesignTime: Boolean;
    procedure OnTimer(Sender: TObject);
    function GetCaption: TCaption;
    procedure SetCaption(const Value: TCaption);
    function GetSpeed: Integer;
    procedure SetSpeed(const Value: Integer);
    procedure SetRunAtDesignTime(const Value: Boolean);
  protected
    procedure Paint; override;
    procedure SetEnabled(Value: Boolean); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Speed: Integer read GetSpeed write SetSpeed;
    property Caption: TCaption read GetCaption write SetCaption;
    property RunAtDesignTime: Boolean read FRunAtDesignTime write SetRunAtDesignTime;

    property Align;
    property Anchors;
    property Color;
    property Enabled;
    property Constraints;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Font;
    property Height;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Width;
    property Visible;
    property OnClick;
    property OnContextPopup;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDock;
    property OnStartDrag;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Delphi-PRAXiS', [TdpTicker]);
end;

{ TdpTicker }

constructor TdpTicker.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Width := 150;
  Height := 25;
  FTimer := TTimer.Create(Self);
  FTimer.Interval := 15;
  FTimer.OnTimer := OnTimer;
  FRunAtDesignTime := False;
  FTimer.Enabled := not (csDesigning in ComponentState);
end;

destructor TdpTicker.Destroy;
begin
  FTimer.Free;
  inherited Destroy;
end;

function TdpTicker.GetCaption: TCaption;
begin
  Result := inherited Caption;
end;

function TdpTicker.GetSpeed: Integer;
begin
  Result := FTimer.Interval;
end;

procedure TdpTicker.OnTimer(Sender: TObject);
begin
  Paint;
end;

procedure TdpTicker.Paint;
var
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Canvas.Brush.Color := Color;
    Bmp.Canvas.Brush.Style := bsSolid;

    Bmp.Canvas.Font.Assign(Font);
    Bmp.Width := Width;
    Bmp.Height := Height;

    Bmp.Canvas.TextOut(FXPos, (Height - Canvas.TextHeight(Caption)) div 2,
        Caption);
    Dec(FXPos);
    if FXPos + FTextWidth < 0 then
      FXPos := Width;

    Canvas.CopyRect(Canvas.ClipRect, Bmp.Canvas, Canvas.ClipRect);
  finally
    Bmp.Free;
  end;
end;

procedure TdpTicker.SetCaption(const Value: TCaption);
begin
  inherited Caption := Value;
  FXPos := Width;
  if Canvas <> nil then
    FTextWidth := Canvas.TextWidth(Caption);
end;

procedure TdpTicker.SetEnabled(Value: Boolean);
begin
  inherited Enabled := Value;
  FTimer.Enabled := ((not (csDesigning in ComponentState)) or FRunAtDesignTime)
      and Enabled;
end;

procedure TdpTicker.SetRunAtDesignTime(const Value: Boolean);
begin
  FRunAtDesignTime := Value;
  FTimer.Enabled := ((not (csDesigning in ComponentState)) or FRunAtDesignTime)
      and Enabled;
end;

procedure TdpTicker.SetSpeed(const Value: Integer);
begin
  FTimer.Interval := Value;
end;

end.
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#26
  Alt 8. Jan 2003, 20:48
Zitat von sakura:
Und jetzt das pixelweise Scrollen als kleine liebe Komponente:
Verdammt, wohl zu spät nach Hause gekommen X-(
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#27
  Alt 8. Jan 2003, 20:52
Mach was draus Links-Rechts scrollen, Hoch-Runter scrollen, etc. Ausserdem kannst Du die Komponente ja transparent machen. Obiges Beispiel ist übrigens flickerfrei.

"Entwicklungszeit" waren 15 Minuten. Also, nimm die Outline und mach was richtig geiles daraus. Danke.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
R.Meyrat

Registriert seit: 6. Okt 2002
22 Beiträge
 
Delphi 2005 Personal
 
#28
  Alt 9. Jan 2003, 16:15
Hallo

Ich habe mal die Komponente von sakura erweitert. Neu ist die Eigenschaft Direction (TickerUp,Ticker Down etc.) dazu gekommen.
Die Eigenschaft Transparent ist zwar da, aber wird beim Paint noch nicht gebraucht. Hab noch keinen Weg, wie das transparent gezeichnet werden soll . Aber ich bin sicher, die Lösung wird nicht lange auf sich warten lassen.

Die Unit als File liegt bei.


Gruss Roger
Angehängte Dateien
Dateityp: zip uDPTicker2.zip (1,7 KB, 65x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#29
  Alt 9. Jan 2003, 16:20
Könntet ihr bitte in Zukunft das als Zip-Archiv anhängen? Und eventuell nur die interssanten Stellen posten? Mit so ewig langen Quellcode im Posting wird das ganze etwas unübersichtlich. Danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#30
  Alt 27. Jun 2003, 18:38
Hi,

um das flackern zu verhindern könntest du mal folgendes versuchen:

form1.doublebuffered := true;

(bei der nicht pixel genauen Scrollvariante)
viele Grüße

Stephan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 16:35 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