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