Hi christian,

ja, es funktioniert. Ich hatte den Textfont und Size dem Picture zugewiesen und 
nicht dem Graphics

     pic. G.TextFont=PopupMenu1.Text
      pic.G.TextSize=val(PopupMenu2.Text)

so funktioniert es nun
      G.TextFont=PopupMenu1.Text
      G.TextSize=val(PopupMenu2.Text)
danke für die Kopfwäsche..

Gruß
Klemens

Am 31.03.2011 um 15:22 schrieb Christian Dorn:

> Ich habe das gerade mal getestet und bekomme hier ein richtiges Ergebnis. 
> Kopiere mal den folgenden Code in den Paint-Event eines ansonsten leeren 
> Fensters. Der der Text sollte rechtsbündig ausgerichtet sein und einen 
> Abstand von 20 Pixel zur rechten Kante des Fensters haben. Wie sieht das 
> Ergebnis bei Dir aus?
> 
> Ach ja, ich verwende Rb 2009r5.1.
> 
> 
>  const text = "Ich bin ein Text."
> 
>  g.TextSize = 12
>  g.TextUnit = FontUnits.point
>  g.bold = false
>  g.italic = false
> 
> 
>  // TextFont = "Courier"
>  g.TextFont = "Courier"
>  g.DrawString text, self.width -g.StringWidth(text) -20, 50
>  dim i1 as Integer = g.StringWidth(text)
> 
>  // TextFont = "Arial"
>  g.TextFont = "Arial"
>  g.DrawString text, self.width -g.StringWidth(text) -20, 75
>  dim i2 as Integer = g.StringWidth(text)
> 
>  // TextFont = "System"
>  g.TextFont = "System"
>  g.DrawString text, self.width -g.StringWidth(text) -20, 100
>  dim i3 as Integer = g.StringWidth(text)
> 
> 
>  // Die Breite der 3 Test-Strings in der Titelzeile des Fensters ausgeben
>  self.title = Str(i1) +" / " +Str(i2) +" / " +Str(i3)
> 
> 
> 
> Gruß
> Christian
> 
> 
> 
> Am 31.03.2011 um 14:49 schrieb Klemens Klarhoelter:
> 
>> Hallo Christian,
>> 
>> danke für den Tipp aber die Schriftart etc. wird übergeben.
>> Ich habe mir die Werte im Debugger angeschaut und man sieht,
>> das die Formatierung nicht berücksichtigt wird.
>> Ich habe eine Länge von 129 Pixel bei der Schriftart Courier und wenn
>> ich auf Arial umschalte auch 129 Pixel. Bei Arial muß es weniger sein.
>> Die Schriftart wird korrekt dargestellt, aber da der Startpunkt links immer
>> der gleiche passt es rechts nicht mehr.
>> Ist es so schwer ein Text im Graphics auszurichten?
>> 
>> Gruß
>> Klemens
>> Am 31.03.2011 um 10:19 schrieb Christian Dorn:
>> 
>>> Am 31.03.2011 um 09:42 schrieb Thomas Tempelmann:
>>> 
>>>> 2011/3/31 Klemens Klarhoelter <[email protected]>:
>>>>> TextPosV = floor(G.StringWidth(NthField(Listbox1(tab).cell(i,1),",,",i1))
>>>> 
>>>> Naja. So eine Zeile ist irreführend für einen Aussenseiter mit all dem
>>>> Kram darin, der mir nix sagt. Ich kenne doch deinen Code drumherum
>>>> nicht. Beschränke dich doch bitte aufs Wesentliche, wenn du um Hilfe
>>>> bittest.
>>>> 
>>>> Alles, worum es geht ist:
>>>> 1. StringWidth(s)
>>>> 2. g
>>>> Und g must von dem Graphics-Obj sein, in das du mit DrawString
>>>> reinschreibst. Ist das der Fall?
>>>> 
>>>>> Verdana passt es relativ gut aber bei allen anderen sind die Abweichungen 
>>>>> 5-30 Pixel!
>>>> 
>>>> Tja, evtl. ist das wirklich so blöde. Keine Ahnung, ich hab das noch
>>>> nie dafür verwendet.
>>> 
>>> Meiner Erfahrung nach funktioniert das recht zuverlässig. Bei kursiven 
>>> Texten muss man nur beachten, dass .StringWidth die Breite der Fußlinie 
>>> zurückgibt; d. h. oberhalb der Fußzeile kann der Text noch etwas breiter 
>>> sein als von der Funktion ermittelt.
>>> 
>>> Allerdings muss man natürlich die Text-relevanten Eigenschaften des 
>>> Graphic-Objektes entsprechend einstellen. In dem Beispiel sieht es so aus, 
>>> als würde Klemens darauf bauen, dass die Formatierung des Strings in der 
>>> ListBox von .StringWidth beachtet wird. Das ist selbstverständlich nicht 
>>> der Fall! Also muss vor dem Aufruf von.StringWidth folgendes eingestellt 
>>> werden:
>>> 
>>> g.TextFont = ...
>>> g.TextSize = ...
>>> g.bold = ...
>>> g.italic = ...
>>> g.TextUnit = ... (ist glaube ich nur nötig, wenn ein anderes Maßsystem als 
>>> 'Punkt' für die Schriftgröße verwendet werden soll)
>>> 
>>> Gruß
>>> Christian
>>> 
>>> 
>> 
>> Klemens Klarhoelter-Selbst
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 

Klemens Klarhoelter-Selbst











Antwort per Email an