Delphi: Label über PaintBox
lima-city → Forum → Programmiersprachen → Delphi & Pascal
auf
beispiel
bild
buffer
dan
deklaration
dialog
ereignis
formen
hilfe
interface
komponente
label
laufschrift
message
sender
situation
stellen
verwendung
window
-
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? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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? -
Das Problem ist, dass TPaintBox die Grafik an der Stelle l?scht wo man was dr?ber bewegt. (Beim TIMage bleibts ja da)
-
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?
-
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. -
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.
-
Das sieht nicht schlecht aus ich werds ma testen.
-
Jo, genau das Problem hatt ich auch, schon.
Danke f?r die ausf?hrliche Hilfe!
Jetz hab'sch hinbekommen.
Jacuzzi >>thx<< -
Jo, die L?sung ist in der Tat gut, ich bedanke mich auch noch mal hiermit f?r die Hilfe!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage