| |
|
|
- Seite 1 - |
|
| Das Trackmenu - wenn ich mich recht erinnere - war die Prozedur immer nur brauchbar solange man auf dem hwnd arbeitet, einfach wegen der Positionsangabe.
Mein Vorschlag, wenn Trackmenu keine Parameter bekommt, dann das Trackmenu an Mausposition erstellen.
Mittlerweile hatte ich mir hierfür eine Proc geschrieben, aber mich ja trotzdem Jahrelang gequält (P²4.5=>P7) und damit sich andere nicht ebenso quälen... KompilierenMarkierenSeparieren
Proc Trackmenu_bymousepos
Declare Gmp#,Dx&,Dy&
Dim Gmp#,8
External("user32","ClientToScreen",%Hwnd,Gmp#)
Dx&=Long(Gmp#,0)
Dy&=Long(Gmp#,4)
External("user32","GetCursorPos",Gmp#)
Trackmenu (Long(Gmp#,0)-Dx&),(Long(Gmp#,4)-Dy&)
Dispose Gmp#
Endproc
|
|
|
| |
|
|
| |
|
- Seite 4 - |
|
|
Jörg Sellmeyer | Ich fände es gut, wenn Height(%hwnd) auch eine evtl. vorhandene Toolbar berücksichtigt. Im Moment werden die Buttons nämlich einfach überdeckt. Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.10.2007 ▲ |
|
|
|
|
| ...ich hätte auch einen Wunsch: Wenn im Programm so einiges Creatiert wird, muss das zum Schluss ja auch mit Delete..., Destroy... oder Dispose... entfernt werden. Hier wäre ein Befehl oder eine Funktion wünschenswert, die ich beim Beenden des Programmes einfach aufrufe und die dann das Freischreiben im Speicher automatisch erledigt. |
|
|
| |
|
|
|
Frank Abbing |
Hier wäre ein Befehl oder eine Funktion wünschenswert, die ich beim Beenden des Programmes einfach aufrufe und die dann das Freischreiben im Speicher automatisch erledigt.
Sowas ist in neuen Windowsversionen (ab XP glaube ich) eingebaut. Beim Beenden eines Programms werden dessen Speicher wieder freigegeben, die es besetzt hatte. |
|
|
| |
|
|
|
| @Frank
Dann wären also Befehle wie DeleteObject.. und Dispose... nicht mehr nötig ??? |
|
|
| |
|
|
|
RGH | Horst Horn
@Frank
Dann wären also Befehle wie DeleteObject.. und Dispose... nicht mehr nötig ???
Hier irrst Du! In Prozeduren müßten die lokalen Dinger trotzdem gezielt vernichtet werden, damit es bei häufigem Aufruf derselben nicht zur Katastrophe kommt.
Außerdem müßte ich eine Verwaltung der erzeugten Objekte einbauen, damit ich weiß welches Handle zu was gehört ... und das würde XProfan nicht unbedingt beschleunigen ...
Ich werde es aber mal im Hinterkopf behalten. DestroyWindow und DeleteObject ließen sich aber vielleicht zu einem von beiden zusammenfassen. Von Fensterhandles kann ich die Klasse ermitteln. Läßt sich keine Fensterklasse ermitteln, muß es ja ein Objekt sein.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 23.10.2007 ▲ |
|
|
|
|
| @Roland
Ich werde es aber mal im Hinterkopf behalten.
Hab doch gewusst, dass man mit Dir rechnen kann |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 23.10.2007 ▲ |
|
|
|
|
Jac de Lad | Und ein Parameter, um Hauptfenster transparent zu erstellen... |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 23.10.2007 ▲ |
|
|
|
|
Frank Abbing |
Dann wären also Befehle wie DeleteObject.. und Dispose... nicht mehr nötig ???
DeleteObject gibt einen Handle frei. Benutzt dein Programm nur ein paar davon, ist es tatsächlich nicht erforderlich, sie zu löschen. Werden aber im Programmablauf laufend Handle reserviert, dann schon, weil irgendwann Windows Handle-Liste voll ist. Mit Dispose verhält es sich genauso.
Deiner Frage habe ich aber entnommen, dass du am Programmende mit einem Rund-Um-Schlag alles freigeben willst, was reserviert wurde. Ab XP ist das eigentlich unnötig, weil Windows sowieso die Programmspeicher entlädt. Allerdings gehört die Freigabe zum guten Ton und sollte von jedem Programmer vorgenommen werden.. |
|
|
| |
|
|
|
| @Frank
Allerdings gehört die Freigabe zum guten Ton und sollte von jedem Programmer vorgenommen werden..
So sieht in einem meiner Programme der gute Ton zum Schluss aus: KompilierenMarkierenSeparieren Da sind schon einige Sachen zu berücksichtigen. Daher wäre es von Vorteil, wenn alles in einem Rutsch, wie Du so richtig schreibst, bereinigt werden könnte |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 23.10.2007 ▲ |
|
|
|
|
Frank Abbing |
USERMESSAGES 0 das kannste Dir ersparen
Sicher? Ich hatte beim Programmende mal fiese Abstürze, bis ich das einbaute. Seit dem steht es in jedem meiner Codes.
Es wäre ja schon nützlich, wenn jeder dieser Befehle mehrere Parameter akzeptieren/verarbeiten würde:
In der Tat! |
|
|
| |
|
|