kostenloser Webspace werbefrei: lima-city


Delphi: Label über PaintBox

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    m*2

    Hi Leute,

    M?chte in meinem Programm ein scrollendes Label ?ber einer PaintBox einrichten, also ein Text soll durchlaufen und darunter eine Grafik gerendert werden.

    Habe Versucht, immer die Teile, wo das Label ist, neu zu zeichnen, aber das hat nich so funktioniert :-(

    Habt ihr irgenwelche Ideen oder Vorschl?ge f?r bessere Komponenten?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du kannst doch das Bild mit dem ereignis Paint neu Zeichen auf zB: Form.Canvas
    oder versteh ich dich jetzt falsch du willst das label ?ber ne Grafik bewegen und die Grafik soll neu gezeichnet werden oder wie? oder m?chtest du ne Art laufschrift?
  4. Autor dieses Themas

    m*2

    Das Problem ist, dass TPaintBox die Grafik an der Stelle l?scht wo man was dr?ber bewegt. (Beim TIMage bleibts ja da)
  5. dann musst immer wieder neu zeichnen zB: wenn Label sich bewegt sofort neu Zeichnen wieso willst das ?berhaubt auf ner PaintBox hat das nen besonderen Grund?
  6. Autor dieses Themas

    m*2

    Im OnCreate von der Bild Komponente?

    Also nochmal mein Problem:
    =====================
    Situation:
    Ein Bild wird in Echtzeit berechnet, dar?ber soll sich ein Text von unten nach oben bewegen.

    Problem (1):
    Bei Verwendung von TImage oder ?hnlichen Komponten setzt ein massives flackern beim Berechnen ein.

    Problem (2):
    Bei Verwendung von TPaintBox f?llt das Flackern zwar weg, aber wenn sich das Label bewegt, "l?scht" es an den Stellen, wo es ist, das berechnete Bild.
  7. Vielleicht hilft dir das den ich versteh das jetzt so das du die Schrift Transparent ?ber ne Bitmap laufen lassen willst also musst du einfach vorher ne art Buffer machen und dann diesen Buffer aufs Canvas malen dan ruckelts net hier mal nen Beispiel:

    unit Unit1;

    interface

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

    type
    TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;
    bmp:TBitmap;
    i:integer;

    implementation

    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    bmp := TBitmap.Create;
    bmp.LoadFromFile('bild1.bmp');
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var tmp:TBitmap;
    begin
    tmp := TBitmap.Create;
    tmp.Canvas.Font.Color := clRed;
    tmp.Assign(bmp);
    if (i>=100)then i := 0;
    SetBkMode(tmp.Canvas.Handle,TRANSPARENT);
    tmp.Canvas.TextOut(20,i, 'Bla Bla');
    Canvas.Draw(0,0,tmp);
    INC(i);
    tmp.Free;
    end;

    end.


    *edit* das mit DoubleBuffered := true; geht aber net ?berall ich z.B.: hab Delphi 3 Prof. hier gibts das net.
  8. Autor dieses Themas

    m*2

    Das sieht nicht schlecht aus ich werds ma testen.
  9. j*****i

    Jo, genau das Problem hatt ich auch, schon.
    Danke f?r die ausf?hrliche Hilfe!
    Jetz hab'sch hinbekommen.

    Jacuzzi >>thx<<
  10. Autor dieses Themas

    m*2

    Jo, die L?sung ist in der Tat gut, ich bedanke mich auch noch mal hiermit f?r die Hilfe!
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!