Seite 1 von 1

Auflösung (Pixel) auf Zeile Spalte umrechnen

Verfasst: Fr, 04. Okt 2013 22:21
von satmax
Ich will tdDEwin Objekt erstellen das den gesamten verfügbaren Platz im AppWindow einnimmt.

Die Verfügbare Größe bekomme ich in Pixeln:

aSize:= oAppDlg:clientsize

für tdDEwin() brauche ich Zeile und Spalte. Wie kann ich das am einfachsten umrechnen?



Gruß
Markus

Re: Auflösung (Pixel) auf Zeile Spalte umrechnen

Verfasst: Sa, 05. Okt 2013 14:30
von AUGE_OHR
hi,

zum berechnen müsstest du den benutzten Font nehmen ( ... wie kommt man unter TD da ran ? )

unter pure Xbase++ könnte man es, für einen XbpCRT, so berechnen.

Code: Alles auswählen

#include "BOX.CH"
PROCEDURE MAIN
LOCAL aMode := {0,0}
LOCAL aSize  := {0,0}
LOCAL aFont  := {0,0}
LOCAL aDesk  := AppDesktop():currentsize()

   aFont[1] := SetAppWindow():FontWidth
   aFont[2] := SetAppWindow():FontHeight
   // "Umrechnung"
   aMode[2]  := INT(aDesk[1]/aFont[1])-1
   aMode[1]  := INT(aDesk[2]/aFont[2])-3  // 2.13
   // SetMode setzten
   SetMode(aMode[1],aMode[2])

   CenterControl(SetAppWindow())
   aSize  := SetAppWindow():currentsize()
   CLS
   @ 0,0,Maxrow(),MaxCol() BOX B_SINGLE
   @ Maxrow()/2,MaxCol()/3 SAY " Rows "+Var2Char(MaxRow())+;
                               " Cols "+Var2Char(MaxCol())+;
                               " Size "+Var2Char(aSize)   +;
                               " Font "+Var2Char(aFont)   +;
                               " S/F  "+;
            Var2Char({aSize[1]/aFont[1],aSize[2]/aFont[2]})

   @ Maxrow()-1,1 SAY ""
   WAIT
RETURN

Re: Auflösung (Pixel) auf Zeile Spalte umrechnen

Verfasst: Di, 08. Okt 2013 7:11
von satmax
danke, unter TopDown gibt es die Konstanten COL_PX und Y by ROW_PX. Einfach Pixel/COL_PX oder ROW_PX.


Ich bin übrigens immer mehr von TD begeistert.

Gruß
Markus