![]() |
GetTextAlign TA_LEFT=TA_TOP?
Irgendwie hab ich nich ganz geschnallt, wie bekomme ich die Textausrichtungen raus? Ich hab folgende Funktion:
Code:
Nun hat aber doch TA_LEFT den gleichen Wert wie TA_TOP, dementsprechend kann meine Funtion so nicht funktionieren.
function inTextAlign(inValue:Byte):Byte;
Begin Result:=ord(fOwner.fTextalign and inValue = inValue); End; Muss ich alle andern Konstanten der Ausrichtung abfragen und kann dann erst auf die Ausrichtung schließen? Keine Ahnung warum TA_LEFT=TA_TOP??? Mit Hoffe auf Hilfe BBB edit: kann ich das nur so lösen?
Code:
Function inTextAlignV(inValue: Byte): Byte;
Begin If inValue = TA_TOP Then Result := ord((fOwner.fTextalign And TA_BOTTOM <> TA_BOTTOM) And (fOwner.fTextalign And TA_BASELINE <> TA_BASELINE)) Else Result := ord(fOwner.fTextalign And inValue = inValue); End; Function inTextAlignH(inValue: Byte): Byte; Begin If inValue = TA_LEFT Then Result := ord((fOwner.fTextalign And TA_RIGHT <> TA_RIGHT) And (fOwner.fTextalign And TA_CENTER <> TA_CENTER)) Else Result := ord(fOwner.fTextalign And inValue = inValue); End; |
AW: GetTextAlign TA_LEFT=TA_TOP?
Ich weiß nicht ob ich Dein Problem so richtig Verstanden habe.
Wenn ich ![]() ![]()
Delphi-Quellcode:
Dann sollte klar sein das es nur eine Kombination von Textausrichtungen gibt. Also nicht nur TA_Left sondern TA_LEFT und TA_BOTTOM.{ Text Alignment Options } {$EXTERNALSYM TA_NOUPDATECP} TA_NOUPDATECP = 0; {$EXTERNALSYM TA_UPDATECP} TA_UPDATECP = 1; {$EXTERNALSYM TA_LEFT} TA_LEFT = 0; {$EXTERNALSYM TA_RIGHT} TA_RIGHT = 2; {$EXTERNALSYM TA_CENTER} TA_CENTER = 6; {$EXTERNALSYM TA_TOP} TA_TOP = 0; {$EXTERNALSYM TA_BOTTOM} TA_BOTTOM = 8; {$EXTERNALSYM TA_BASELINE} TA_BASELINE = 24; {$EXTERNALSYM TA_RTLREADING} TA_RTLREADING = $100; {$EXTERNALSYM TA_MASK} TA_MASK = (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING); {$EXTERNALSYM VTA_BASELINE} VTA_BASELINE = TA_BASELINE; {$EXTERNALSYM VTA_LEFT} VTA_LEFT = TA_BOTTOM; {$EXTERNALSYM VTA_RIGHT} VTA_RIGHT = TA_TOP; {$EXTERNALSYM VTA_CENTER} VTA_CENTER = TA_CENTER; {$EXTERNALSYM VTA_BOTTOM} VTA_BOTTOM = TA_RIGHT; {$EXTERNALSYM VTA_TOP} VTA_TOP = TA_LEFT; Gruß K-H |
AW: GetTextAlign TA_LEFT=TA_TOP?
Ich weiß ja nicht, wofür du das Ganze brauchst, aber vermutlich würdest du dir leichter tun, wenn du nicht mit den Windows-Konstanten und Bitschubserei arbeiten würdest, sondern z.B. mit TAlignment, TVerticalAlignment und Set-Operationen.
|
AW: GetTextAlign TA_LEFT=TA_TOP?
Das MSDN sagt in der Hilfe zu GetTextAlign:
Zitat:
|
AW: GetTextAlign TA_LEFT=TA_TOP?
Das es nur eine Kombinaton gibt, ist mir klar.
aber wenn TA_LEFT = TA_TOP dann kann ich zumindest nicht direkt auf eines der Beiden abfragen, sondern muss die anderen abfragen ausschließen, das kam mir etwas seltsam vor... Hätte gedacht, dass ich jeden Wert mit Gettextalign and TA_wert = TA_wert abfragen könnte. |
AW: GetTextAlign TA_LEFT=TA_TOP?
Was ist daran seltsam?
Der Standardfall sollte TopLeft sein also kein Bit gesetzt! Ist hingegen das zweite Bit gesetzt ist es auf keinen Fall TA_LEFT (es könnte TA_RIGHT oder TA_CENTER sein) Und Ist das vierte bit nicht gesetzt, dann ist es immer noch TA_TOP. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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