![]() |
Bumping Text
hy
wo ist der Denkfehler in diesem Code:
Delphi-Quellcode:
procedure maindraw(var dcdbl:HDC;width,heigth:integer);
var Pen: HPEN; // Handle für Zeichenstift s:pchar; begin; l := l+shift; s := 'Dies ist ein Test'; TextOut(dcdbl,l,20,s,length(s)); Pen := CreatePen(PS_SOLID, 1, RGB(75,0,255)); SelectObject(dcdbl, Pen); if (shift>width) then shift := shift*(-1); end; einmal (am Anfang) wird diese Procedure ausgeführt:
Delphi-Quellcode:
Theoretisch sollte jetzt der Text an den rechten Seite abspringen. Tut er aber nicht. Er "fährt" aus dem Bildschirm raus!
procedure initvars(var dcdbl:HDC;width,heigth:integer);
begin; l := 10; shift := 10; end; Danke to |
Code:
Shift nimmt doch nur die Werte 10 und -10 an, du müsstest doch schauen ob l grösser als width ist.
if (shift>width) then shift := shift*(-1);
|
Aber so würde er glaube ich immer noch aus dem Bild fahren, da ja l der linke Rand des Textes ist, Du müsstes doch dann, falls es stimmen sollte, was ich schreibe noch die Breite des Textes noch zu l addieren, damit es so aussieht, wie wenn es abprallen würde.
Code:
Mirilin
if (l+Breite>width) then shift := shift*(-1); //Breite wäre die Breite des Textes
vielleicht schreibe ich aber auch nur Bockmist... |
Ne, viel einfacher und viel blöder: es war die falsche Variable!
|
eben das meinte ich ja, du musstest doch die Variable 'shift' in der If-Abfrage durch die Variable 'l' ersetzen, oder?
|
ja genau! :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz