Bildschirm Anzeige 125%



  • Hallo,

    ich hab einige, die ihre Bildschirmanzeige auf 125 oder 150% eingestellt haben. Images, auf denen ich auch zeichne und alle anderen Komponenten passen sich natürlich nicht an. Ich lass alle Komponenten durchlaufen und sich der Screen-Größe anpassen, wo kann ich auslesen ob 125/150% eingestellt wurde ? Das muss ich dann ja auch noch berücksichtigen. Wenn ich ein Image auf proportional und stretch setze und entsprechend vergrößere, kann ich dann mit meinen "normalen" Koordinaten zeichnen ? Ok, letzteres teste ich einfach aus. Für das andere kann mir vielleicht jemand sagen ob der Weg so sinnvoll ist. Danke !

    int wid = Screen->Width;
    int hgt = Screen->Height;
    int DevScreenWidth = 1024;
    int DevScrHeight = 768;
    
     float XScale = (float) ((float)wid/(float)DevScreenWidth);
     float YScale = (float) ((float)hgt/(float)DevScrHeight);
    
     for(int i=0; i < frmMain->ComponentCount; i++)
     {
    	TEdit* edit = dynamic_cast<TEdit*>(frmMain->Components[i]);
    	if (edit)
    	{
    		edit->Left = (int) (edit->Left * XScale);
    		edit->Top = (int)(edit->Top* YScale);
    		edit->Width = (int) (edit->Width * XScale);
    		edit->Height = (int) (edit->Height * YScale);
    	}
    
    	TStringGrid* stGrid = dynamic_cast<TStringGrid*>(frmMain->Components[i]);
    usw.
    }
    


  • Schau dir mal die Methode ScaleBy von TForm an. 😉



  • Wie geil ! Dachte immer ich muss dafür mit Align usw. arbeiten.

    Bilder muss ich manuell anpassen. Hab nur gesehen, dass sich beim StringGrid die Zeilenhöhe nicht ändert, aber die Schriftgröße. Kann ich die Zeilenhöhe auch anpassen lassen ?

    Vielen Dank, hat mir sehr geholfen !


Log in to reply