Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Helfer & Tools

Helfer & Tools Programme für und in XProfan und Fragen dazu.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Hilfe bei Script Erstellung
Aufrufe: 15, Antworten: 6
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26731, Antworten: 4207
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 121, Antworten: 15
Gehe zum ersten neuen Beitrag Grand Prix 2012 Eurovision
Aufrufe: 36, Antworten: 4
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7572, Antworten: 179
Gehe zum ersten neuen Beitrag Verlust der Internetverbindung
Aufrufe: 43, Antworten: 2
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 34, Antworten: 2
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 25, Antworten: 4
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 34, Antworten: 3
Gehe zum ersten neuen Beitrag Programmvorstellung:...
Aufrufe: 22, Antworten: 1
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11.02.2011, 16:23   #1 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Beitrag Dialogfenster-Plazierung fixieren...

Hallo
Hat jemand einen kleinen Code irgendwo "rumliegen", mit dem man die letzte Plazierung eines Dialog-Fensters wieder aufrufen kann.
Beispiel:
Das Fenster startet beim Aufruf immer in der Mitte (so von mir geschrieben) der Anwender schiebt jetzt das Fenster dahin, wo er es am liebsten hat.
Beim erneuten Start sollte dieser Platz wieder aufgerufen werden.
Habe keinen Anfang und wäre froh, wenn mir jemand hilft...
Danke !
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2011, 16:34   #2 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Hallo Horst,

ist zwar kein Dialogfenster, aber die Vorgehensweise sollte sich erkennen lassen.
Code:
'###########################################
'Fenster-Position sichern und beim Neustart
'wiederherstellen
'Andreas Miethe 2011
'###########################################
$H Windows.ph

Struct RECT = left&,Top&,Right&,Bottom&

Var Rect#  = New(RECT)
Var Style& = 0
Var Title$ = ""
Var TLen&  = 0
'Die Datei sollte sich idealerweise
'in $AppDataDir befinden
Var File$  = "WinPos.Position"
Var Ende&  = 0

WindowStyle 543

If FileExists(File$)
  'wenn ein Psitionsfile existiert dann
  Assign #1, File$
  OpenRW #1
  'Position in Rechteckstruktur einlesen
  BlockRead(#1, Rect#, 0, Sizeof(Rect#))
  Close #1
  'Fenster mit der ausgelesenen Position erstellen  
  Window Rect#.Left&,Rect#.Top& - (Rect#.Right&-Rect#.Left&),(Rect#.Bottom&-Rect#.Top&)
Else
  'sonst
  CLS
Endif

Whilenot Ende&
  Waitinput
  If %Key = 2
    'bei ENDE neue Position speichern
    SavePosition()
    Ende& = 1
  Endif
EndWhile

Proc SavePosition
~GetWindowRect(%hWnd,Rect#)
Style& = GetStyle(%hWnd,0)
Title$ = GetText$(%hWnd)
Assign #1, File$
OpenRW #1
BlockWrite #1, Rect#, 0, SizeOf(Rect#)
Close #1
EndProc
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 11.02.2011, 16:39   #3 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Ich würde die Position beim Programmende einfach in eine Inidatei in Appdata speichern
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 11.02.2011, 17:22   #4 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Beitrag

Zitat:
Zitat von Bangkok Beitrag anzeigen
Ich würde die Position beim Programmende einfach in eine Inidatei in Appdata speichern
@Dieter
das hatte ich auch im Kopf. Aber es sind drei Dialoge, die während des aktiven Programmes ständig gebraucht werden (Neueintrag, Editor, Kopieren von Daten in eine CSV-Datei)
Wie bekomm ich das Handle für die einzelnen Fenster ?
Den WinLeft, Winright und WinTop sind doch für das Hauptfenster zuständig oder gibst da einen Trick ?
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 11.02.2011, 18:22   #5 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Andreas seinen Code kannste schon mal als Ausgangsbasis nehmen, der
enthält aber einen Schönheitsfehler: Es sind die x, y, dx und dy notwendig,
wo das Fenster zuletzt im Normalstatus war, also weder minimiert noch
maximiert. Deshalb musst Du diese Werte in der Subclass Proc beim wm_size
und wm_move ereignis immer aktualisieren. Bei den Dialogen reicht ja das
wm_move ereignis, da diese ja nicht grössenveränderbar sind.

Ansonsten haste am Ende nicht die passenden Werte, weil Dialog nicht
sichtbar oder Fenster maximiert. Den Zustand (max, min, normal) brauchste
erst am Schluss ermitteln.

Es gibt aber IMHO auch eine API, wo man unabhängig vom Status die
Normalgrösse ermitteln kann.

Ich hoffe, ich hab nicht all zu viel Verwirrung gestiftet
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2011, 18:37   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Ja, als Ini-Datei oder in der Registry speichern.
Kannst auch mal in den XProfEd-Code schauen, dort wird die Position des Hauptfensters auch gespeichert.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:51   #7 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

@Horst,

für das Handle kannst du FindWindow(S) verwenden, falls das nicht klappt eben die gleichnamige API
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:55   #8 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Kannst auch mal in den XProfEd-Code schauen, dort wird die Position des Hauptfensters auch gespeichert.
Aber nicht immer die Richtige, siehe mein vorheriges Posting
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2011, 18:59   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Min/max wird eigentlich auch beachtet.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 11.02.2011, 19:04   #10 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Min/max wird eigentlich auch beachtet.
Aber wenn ich die Normalgrösse verändere, dann maximiere und schliesse, erhalte ich zwar ein maximiertes Fenster, aber nach dem Umschalten auf
Normal ist das eben nicht meine letzte Normalgrösse, da er die ja auch nicht
festgehalten hat.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2011, 19:09   #11 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Gerade mit meinem alternativen XProfEd getestet und es funktioniert so, wie du es gesagt hast. Ich hatte da ein paar Änderungen an Rolands Code vorgenommen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 11.02.2011, 19:24   #12 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Ich hab nur mit dem offiziellem beta Editor getestet, der hat es noch nicht
ganz korrekt gelöst (wobei ich denke, wenn Deine IDE das korrekt händelt,
ist es die erste XProfan-Anwendung die dies berücksichtigt ).
Ich aktualisiere den Status immer im wm_size oder wm_move Ereignis, wenn
der WindowsState Normal entspricht. Es gibt aber auch ne API, die die
Normalstate Koordinaten zurückgibts, auch wenn das Fenster einen anderen
WindowsState hat. Aber keine Ahnung welche das jetzt ist.

Wichtig ist dann noch, das Fenster versteckt / normal zu öffnen und erst
unmittelbar vorm Anzeigen den letzten State zu setzen, fallls dies ein anderer
war.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2011, 19:29   #13 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
Standard

Ja, genau.

Die API heisst übrigens GetWindowPlacement().
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 11.02.2011, 19:50   #14 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Genau die API meinte ich, in Member rcNormalPosition (RECT) von der
WindowPlacement Structure steht es dann.
Wenn man den Wert sichert,
reicht es beim Programmende, ausser bei Horst seinen Dialogen, die muss
er spätestens bei jedem Dialogschliessen sichern.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Helfer & Tools

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dialogfenster plutoniumkur Allgemein 2 06.03.2009 07:51
Dialogfenster vergrößern mixolydian Windows XP 2 20.03.2007 19:12
CHtmlView im Dialogfenster Don_Pazo C/C++, Visual C++, Visual C++.NET 4 16.12.2005 17:39
Dialogfenster hektor C/C++, Visual C++, Visual C++.NET 2 28.02.2005 14:36
desktop icons - plazierung wieder herstellen ein neuer Windows XP 1 28.06.2004 21:35



Alle Zeitangaben in WEZ +2. Es ist jetzt 16:51 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2