Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Auflösung (Pixel) auf Zeile Spalte umrechnen

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Auflösung (Pixel) auf Zeile Spalte umrechnen

Beitrag von satmax » Fr, 04. Okt 2013 22:21

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
Gruß
Markus

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10562
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

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

Beitrag von AUGE_OHR » Sa, 05. Okt 2013 14:30

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
gruss by OHR
Jimmy

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

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

Beitrag von satmax » Di, 08. Okt 2013 7:11

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
Gruß
Markus

Antworten