Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bumping Text (https://www.delphipraxis.net/2025-bumping-text.html)

theomega 3. Jan 2003 17:01


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:
procedure initvars(var dcdbl:HDC;width,heigth:integer);
begin;
l := 10;
shift := 10;
end;
Theoretisch sollte jetzt der Text an den rechten Seite abspringen. Tut er aber nicht. Er "fährt" aus dem Bildschirm raus!

Danke

to

Mirilin 3. Jan 2003 17:23

Code:
 if (shift>width) then shift := shift*(-1);
Shift nimmt doch nur die Werte 10 und -10 an, du müsstest doch schauen ob l grösser als width ist.

Mirilin 3. Jan 2003 17:27

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:
if (l+Breite>width) then shift := shift*(-1); //Breite wäre die Breite des Textes
Mirilin

vielleicht schreibe ich aber auch nur Bockmist...

theomega 3. Jan 2003 18:25

Ne, viel einfacher und viel blöder: es war die falsche Variable!

Mirilin 4. Jan 2003 09:51

eben das meinte ich ja, du musstest doch die Variable 'shift' in der If-Abfrage durch die Variable 'l' ersetzen, oder?

theomega 4. Jan 2003 11:47

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