Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249256 (10692)

| Suchen
| Zurück zur Übersicht

Autor | Thema: mit Drawtext - Rechtsbündig formatieren
Kathrin Köhler
| Datum:04.01.02 01:11 (Kathy008@freenet.de) |
Hallöchen an die erfahrenen..... Ich habe ein Problem.... Wie kann ich mit "Drawtext x%,y%,Text$" realiesieren, daß der Text immer Rechtsbündig ausgerichtet ist. Ich möchte gerne einen TTF Fond dazu nutzen. Hmmmm ich Hoffe es Gibt da irgendeine Lösung..... Es soll darum gehen in einer Art "EXEL-Tabelle" sollen Eurobeträge untereinanderstehen und eben rechts ausgerichtet 001.11 € 111.11 € 011.11 € Halt aber ohne Nullen vorran... Also danke schon mal im vorraus.... Cu Kathy
Andreas Miethe
| Datum:04.01.02 07:32 (andreas@andreas-miethe.de) |
Hallo Kathy, Mit der Api-Funktion SetTextAlign kannst Du dem HDC des Hauptfensters mitteilen wie der Text ausgerichtet werden soll. Ein kleines Beispiel : '-------------------------------------------- DEf SetTextAlign(2) ! "GDI32","SetTextAlign" CLS Declare WindowDC&,Text$,Text#,Textweite# 'Fontfarbe TextColor @RGB(0,0,0),-1 ' SetTextAlign(%hdc,2)'rechtsbuendige Ausgabe des Textes 'der 2.Parameter bezeichnet die Ausrichtung '0 = linksbuendig '2 = rechtsbuendig '6 = zentriert DrawText 500,10,"123.90 DM" DrawText 500,30,"1123.45 DM" DrawText 500,50,"10134.25 DM" DrawText 500,70,"334.25 DM" waitinput end '-------------------------------------------- Gruss Andreas
Kathrin Köhler
| Datum:04.01.02 16:10 (Kathy008@freenet.de) |
Ein ganz großes Super dankeschön.... Funktioniert einwandfrei... Cu Kathy
Kathrin Köhler
| Datum:04.01.02 17:47 (Kathy008@freenet.de) |
Ich nochmal... also klappt wie gesagt super.... AAAAAber jetzt gibts ein neues Problem.Wenn ich das Fenster verkleinere oder ich ein Textfeld erzeuge welches über dem Ausdruck liegt und es dann mit @DestroyWindow entferne ist der Text auf einmal wieder Linksbündig... Hmmmm kann man da was machen ???? Nochmals im vorraus danke Kathy
Andreas Miethe
| Datum:04.01.02 19:42 (andreas@andreas-miethe.de) |
Hallo Kathy, immer wenn das Fenster den Befehl zum Neuzeichnen bekommt, dann wird aus HDC2 in HDC kopiert. Scheinbar werden auch die Attribute mitkopiert. Das heisst wenn Du SetTextAlign auch auf HDC2 anwendest, dann sollte es klappen. SetTextAlign(%hdc2,2)'rechtsbuendige Ausgabe des Textes in %Hdc2 Gruss Andreas
Gerd Telzerow
| Datum: 05.01.02 13:23 (GTelzerow@T-Online.de) |
Hallo Kathy, hier ein Reines Profan Beispiel! Auch für StartPrint! Proc TextRechts 'Parameter 1= Größter Text z.B. "100000,00", 2= der X Wert, '3= der zu berechnende Text z.B. "10,00" Parameters DrawTextP1$,DrawTextX2%,DrawTextP2$ 'für Times New Roman Optimiert 'bei Font Wechsel eventuell Addition Parameter 2 Anpassen If @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),8) Return @Add(DrawTextX2%,50) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),7) Return @Add(DrawTextX2%,42) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),6) Return @Add(DrawTextX2%,36) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),5) Return @Add(DrawTextX2%,30) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),4) Return @Add(DrawTextX2%,24) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),3) Return @Add(DrawTextX2%,18) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),2) Return @Add(DrawTextX2%,12) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),1) Return @Add(DrawTextX2%,6) Elseif @Equ(@Sub(@Len(DrawTextP1$),@Len(DrawTextP2$)),0) Return @Add(DrawTextX2%,0) EndIf EndProc CLS Declare Waehrung$,Zahl$ Declare MultEd& '********************************************************* 'Nicht alle Fonts haben das Euro Symbol TextColor @RGB(0,0,0),-1 UseFont "Times New Roman",15,0,0,0,0 Let Waehrung$=" DM" Case @Gt(@val(@Left$(Date$(3),4)),2001):Let Waehrung$=" €" '********************************************************* Let Zahl$="0.90" TextRechts "100000,00",200,Zahl$ DrawText @%(0),10,@Add$(Zahl$,Waehrung$) Let Zahl$="1123.45" TextRechts "100000,00",200,Zahl$ DrawText @%(0),30,@Add$(Zahl$,Waehrung$) Let Zahl$="10134.25" TextRechts "100000,00",200,Zahl$ DrawText @%(0),50,@Add$(Zahl$,Waehrung$) Let Zahl$="334.25" TextRechts "100000,00",200,Zahl$ DrawText @%(0),70,@Add$(Zahl$,Waehrung$) WaitInput Let MultEd&=@Create("MultiEdit",%Hwnd,"",50,5,300,150) waitinput @DestroyWindow(MultEd&) Waitinput ' auch mit STARTPRINT StartPrint Let Zahl$="0.90" TextRechts "100000,00",200,Zahl$ DrawText @%(0),10,@Add$(Zahl$,Waehrung$) Let Zahl$="1123.45" TextRechts "100000,00",200,Zahl$ DrawText @%(0),30,@Add$(Zahl$,Waehrung$) Let Zahl$="10134.25" TextRechts "100000,00",200,Zahl$ DrawText @%(0),50,@Add$(Zahl$,Waehrung$) Let Zahl$="334.25" TextRechts "100000,00",200,Zahl$ DrawText @%(0),70,@Add$(Zahl$,Waehrung$) EndPrint end '-------------------------------------------- Gruss Gerd

| Zurück zur Übersicht