Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bildschirmauflösung
03.03.2015, 14:43
Beitrag: #1
Bildschirmauflösung
Servus zusammen!

Ich habe mir mit der Hilfe des I-Net unter Excel (VBA) eine Funktion gebastelt mit der ich die aktuelle Bildschirmauflösung auslesen kann.

Den gewählten "Umweg" über ein Excelmacro möchte ich mir aber sparen und die Auflösung für X & Y direkt mit VEE 9.32 erhalten.

Kennt jemand einen einfachen Weg direkt mit VEE an die aktuelle Bildschirmauflösung zu kommen?

   

MaxSchmidtFan


Angehängte Datei(en)
.vee  AuflösungAuslesen.vee (Größe: 21,06 KB / Downloads: 0)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.03.2015, 05:17
Beitrag: #2
RE: Bildschirmauflösung
Ja, da gibt es andere Möglichkeiten direkt aus dem Betriebssystem.Was möchtest du denn mit der info anfangen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2015, 09:32
Beitrag: #3
RE: Bildschirmauflösung
Servus!

Bisher arbeite ich mit mehreren Panels um Diagramme bei unterschiedlichen Bildschirmauflösungen in voller Größe anzeigen zu können. Die verwendbaren Auflösungen gebe ich über eine Einstellungsdatei vor.

Mit diesem Weg könnte ich die Panels und die Diagramme einheitlich strukturieren und mehrere Panels mit dem selben Inhalt in unterschiedlichen Auflösungen würden dann entfallen und die Pflege auch einfacher machen.

Die Größe und Position eines Panels kann man mit showPanel(UFName,x,y,width,height) festlegen. Die Größe z.B. für ein Diagramm innerhalb eines Panels kann man zunächst in den Properties des Diagrammes festlegen.
Zusätzlich kann man für das Diagramm einen Variablennamen bei "Declared Name" anlegen. Mit dieser Variablen kann man die Position und die Größe eines Diagrammes auslesen und auch verändern.

Es gibt da ein schönes Beispiel in den Examples, welches ich jetz grad ned find.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2015, 14:52 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2015 15:38 von detlef.)
Beitrag: #4
RE: Bildschirmauflösung
Ja, genau so mach ich das auch...damit die Programme auf unterschiedlichen devices laufen.
Wollte nur mal nachfragen, ob wir da die gleichen Gedanken haben.
Man kann quasi fuer jede Aufloesungsvariante ein Record anlegen fuer die unterschiedlichen Panels, wo die relative Position und die Groesse abgespeichert sind, und abhaeng von der Aufloesung ausgewaehlt werden.
Am Start habe ich dann eine Funktion, die das Main panel maximiert.
Jetzt such ich mal den Beispielcode, duerfte eine DOTnet-Funtion sein...
So, hiermal der Code, um das Main -Fenster zu maximieren im Programm selbst.Duerfte aber auch via Menue und System erreichbar sein.
und dann der Code, um die Screengroesse rauszufinden-sollte aber auch via Dotnet machbar sein.
Hab ich schon mal gemacht, finde auf die Schnelle aber nicht
Daten anbei
oder ueber DOTnet z.B. via: System.Windows.Forms.Systeminformation.WorkingArea;
Vorher dies in Device/Import .Net Namespaces zuweisen....


Angehängte Datei(en)
.vee  GetTheSystemMetrics.vee (Größe: 8,79 KB / Downloads: 3)
.vee  Maximise.vee (Größe: 5,25 KB / Downloads: 1)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2015, 08:21
Beitrag: #5
RE: Bildschirmauflösung
Servus!

Danke für die Dateien.

So wie in "GetTheSystemMetrics" habe ich mir das vorgestellt. Damit kann ich die verwendete Bildschirmauflösung auch auf einem reinen Messrechner ohne Office Paket auslesen.

Wie ich die "Maximise" anzuwenden hab, hab ich noch nicht herausgefunden. Kannst Du das bitte kurz erklären?

Über die DOTnet Variante bekomme ich eine "Variable" vom Typ OBJEKT.
Wie muß ich die zerlegen um an die einzelnen Inhalte als Integerzahlen zu kommen? Kannst Du mir das auch kurz erklären?

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2015, 18:23 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2015 18:32 von detlef.)
Beitrag: #6
RE: Bildschirmauflösung
DAs maximize maximiert deinen VEE BIldschirm. Mach das VEE Fenster mal kleiner, dann siehst du den Effekt. Tut auch mit der Runtime. Egal wo du vxe oeffnest, das Main Panel wird maximiert. Sonst ist da ja deine Groesse drin, die du in den Properties definiert hast. Ist also von Vorteil, wenn dein Programm auf verschiedenen Maschinen laeuft ( PCs / tablets etc...).

Das Object bei der DOT Abfrage laesst sich wie folgt ermitteln: in den Eigenschaften des DOtnetobjectes findet sich weiter unten im FOB die Eigenschaft systeminformation.getType().
Die sagt mir dann, dass das Objekt in dem Result was zu tun hat mit System.runtime Type ( System.Drawing.Rectangle).

Ich binde also System.Drawing ein, suche mir die Properties von Rectangle, und da findet sich rectangle.Height und rectangle.Width.
Und wenn ich die da einsetze, das mit dem Objekt von oben fuettere, kommt 1020 bei mir raus.
Man koennte aber auch das Object mit tostring in dotnet wandeln, und mit VEE from String in ein Array splitten und und und- da ist der direkte Dotnet Weg aber einfacher.
Schon ne geile Sache, der FOB ( Function und Object browser), oder ?
HIER ein Bild dazu:


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2015, 13:10
Beitrag: #7
RE: Bildschirmauflösung
Servus!

Danke für die Funktionen und Erklärungen. Der FoB ist sicherlich eine große Hilfe, wenn man weiß nach was man zu suchen hat.
Da ist der, der sich mit .NET auskennt im Vorteil.

Muß jetzt das mit der Auflösung erst mal in meinem Programm umsetzen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2015, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2015 15:40 von detlef.)
Beitrag: #8
RE: Bildschirmauflösung
Das mit DOTnet auskennen ist so ein Sache, bei ueber 70.000 Funktionen. Aber das Prinzip muss man einmal verinnerlichen. DOTnet hat ja nix mit VEE zu tun, nur VEE bietet einen Zugriff darauf. Und das nicht mal schlecht. Allerdings ist VEE bei Dotnet 2.x stehengeblieben, aktuell ist schon 4.5. Mit ein paar Einstellungstricks kommt man zwar auch da dran, aber die Anzahl an Funktionen in 2.x reichen ja auch fuers erste Mal. Da kommen ja noch unzaehlige ActiveX und.com Erweiterungen hinzu, neben den tausenden Matlab-script Sachen, sodass man ein Leben lang damit beschaeftigt sein kann, ohne alles je ausprobiert zu haben. Ist halt alles sehr maechtig...aber wie gesagt, es ist VEE extern. VEe selbst hat intern ja auch eine Unmenge an Funktionen, und der FOB gewaehrt einen einfachen Zugriff auf fast alles.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2015, 17:56
Beitrag: #9
RE: Bildschirmauflösung
Servus!
Für die Auflösung hab ich mir beigefügtes Tool (Variante2) gebastelt. Toll dabei ist, daß es gleich die Höhe der Startleiste abzieht. Damit habe ich die tatsächliche Auflösung ganz einfach zur Verfügung.
   

Das Maximize Tool macht das ganze VEE Fenster größer. Ich bin davon ausgegangen, das es nur das Main Panel auf die maximale Größe bringt.

Um die Größe von Diagrammen anzupassen gibt es ein Beispiel unter:
..\examples\ProgrammaticProperty\ProgrammaticPropertyDemo.vee
Hier ist einfach beschrieben, wie die Position und die Größe eines Objektes verändert werden kann.

Zum FoB hab ich noch folgende Frage:
Kann man den so einstellen, das VEE nach dem klicken der "RUN" Taste nicht immer alles komplett zumacht (verkleinert). Das ist nämlich blöd, wenn man eine Funktion sucht, diese testet und anschließend muß man sich wieder durch die ganze Struktur klicken.


Angehängte Datei(en)
.vee  DotNet_Bildschirnauflösung_Variante1.vee (Größe: 7,9 KB / Downloads: 0)
.vee  DotNet_Bildschirnauflösung_Variante2.vee (Größe: 8,16 KB / Downloads: 0)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2015, 12:01 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2015 12:06 von detlef.)
Beitrag: #10
RE: Bildschirmauflösung
Also, zuerst die erste Info. In den Fenstern, die sich auf der rechten Seite öffnen, gibt es drei Zeichen rechts oben in der Menüleiste. klickt man auf diese Symbole, kann man das Verhalten dieser Fenster einstellen. Es gibt hide, auto hide und dockable. einfach mal ausprobieren, was deinem Geschmack entspricht.
deiner Frage entnehme ich aber auch folgendes :
du arbeitest wohl überwiegend in der developerversion. Wenn du dein Programm in der Runtime Version laufen lassen würdest, so wie es der normale User macht, dann hast du diese Probleme nicht.
die vee Umgebung gibt es halt in zwei Variationen erstens die Developer Version mit den Fenstern an der Seite links und rechts und allen Einstellmöglichkeiten zweitens die Runtime Version, die nur die Panels anzeigt, die explizit im Programm vorgesehen sind.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2015, 10:32
Beitrag: #11
RE: Bildschirmauflösung
Servus!
Noch einmal zum Function & Object Browser:

Ich schreibe Programme in der Development und teste diese auch dort. Mit der Runtime führe ich die fertigen Programme aus. Dort gibt es keinen FOB mehr.

Meine Frage bezieht sich auf die Development.
Wenn ich nach einer Funktion im FOB suche und diese gefunden habe, von der ich glaube, die richtige zu sein, binde ich diese im VEE 9.32 ein.
Nach dem klicken auf den RUN - Button stelle ich aber fest, die Funktion liefert mir nicht das was ich brauche / suche.
Durch den Programmlauf schließ sich automatisch wieder die zuvor geöffnete Baumstruktur im FOB.
Also muß ich mich wieder durch die gesammt Baumstruktur klicken um eine andere Funktion auszuwählen. Das ist auf Dauer ermüdend, vor allem wenn man kein VEE-Profi ist.

Gibt es in der Development eine Einstellung die verhindert, daß sich die geöffnete FOB-Baustruktur automatisch auf die Hauptkapitel beim klicken auf den RUN - Button verkleinert?
Ich habe den FOB so eingestellt, daß er immer am rechten Bildschirmrand sichtbar ist (Dockable).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de