hallo erst mal,
und zwar habe ich gerade ein kleines problem mit sehr vielen fällen
vielleicht fällt euch da was sinnvolleres ein, als mir. und zwar geht es darum, dass ich mir eine klasse schreiben will, welche es fertig bringt eine anwendung zu x% sichtbar zu machen, bei egal wie vielen monitoren und egal bei welcher anordnung der monitore! dazu mal ein krasses beispiel:
Code:
potentielle anordnung der monitore:
+---+
| 4 |
+---+---+---+
| 3 | 1 | 2 |
+---+---+---+
| 5 |
+---+
| 6 |
+---+
das habe ich nun: bei übergabe von left, top, height und width weiß ich nun zu wie viel prozent das fenster auf jedem einzelnen monitor zu sehen ist. an dieser stelle hab ich schon dumm geschaut, als ich keine andere möglichkeit hatte alle fälle durchzulaufen und zu prüfen, wie das fenster in dem monitor liegen kann, gibt ja "nur" 16 fälle, was als code ausgedrückt nicht sehr schön ist. vielleicht kennt da ja jemand eine bessere methode?!
da will ich hin: ich übergebe zusätzlich noch ein prozentuale angabe, zu wie viel prozent das fenster insgesamt sichtbar sein soll. selbst wenn wir nun davon ausgehen, dass die fenstergröße < potentiell verfügbare platz ist fällt mir kein effizienter algorithmus ein, der das problem lösen kann. und auf ausprobieren hab ich keine lust, da sowas doch einfach machbar sein muss, oder irre ich mich da
noch einen schritt weiter wäre zu sagen, dass die titelleiste immer komplett sichtbar sein muss, mit dem zusatz, dass die anwendung zu x% sichtbar sein soll.
ps: in so fern das fenster größer ist, als die maximale fläche soll die größe angepasst werden.
mit freundlichen grüßen
der hai
[EDIT]
Wenn ich gerade so recht drüber nachdenke wäre es evtl nicht mal schlecht einen baum aufzubauen, d.h. eine wurzel definieren - nach welchen kriterien ist mir grad noch nicht ganz klar - und die zusammenhängenden monitore als blätter anhängen. hier ein beispiel zu oben
Code:
.
1
___|_____
| | | |
2 3 4 5
|
6
[/EDIT]
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)