amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > MenuStrip [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2005-07-12, 23:43 h

Ralf27
Posts: 2779
User
Eine kurze Frage:

Wenn ich ein Menustrip generiert habe und das Fenster am Schluss schliese, muß ich dann ClearMenuStrip aufrufen?
Der verwendete Speicher wird ja von meinem Programm freigegeben, ist also somit ClearMenuStrip unnötig?
--
http://www.alternativercomputerclub.de.vu

[ - Answer - Quote - Direct link - ]

2005-07-13, 00:49 h

Holger
Posts: 8116
User
@Ralf27:
Ja, Fenster zumachen reicht. ClearMenuStrip gibt sowieso keinen Speicher frei. Es wartet nur, bis alle evtl. laufenden Menüoperationen beendet wurden. CloseWindow muß natürlich auch darauf (neben noch ein paar anderen Dingen) warten. Wenns Fenster erstmal zu ist, gibt es keine laufende Operation mehr, auf die man warten müßte.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-07-13, 07:57 h

thomas
Posts: 7717
User

Das mag ja sein, aber man sollte sich doch lieber an die AutoDocs halten und da steht, zu jedem SetMenuStrip gehört ein ClearMenuStrip:

Zitat:
NOTE: You should always design your menu strip changes to be a
two-way operation, where for every menu strip you add to your
window you should always plan to clear that strip sometime. Even
in the simplest case, where you will have just one menu strip for
the lifetime of your window, you should always clear the menu strip
before closing the window. If you already have a menu strip attached
to this window, the correct procedure for changing to a new menu
strip involves calling ClearMenuStrip() to clear the old first.

The sequence of events should be:
- OpenWindow()
- zero or more iterations of:
- SetMenuStrip()
- ClearMenuStrip()
- CloseWindow()


Gruß Thomas
--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2005-07-13, 14:21 h

Ralf27
Posts: 2779
User
Danke.

Ich bau denn Befehl einfach vor dem schliesen des Fensters ein.
--
http://www.alternativercomputerclub.de.vu

[ - Answer - Quote - Direct link - ]

2005-07-14, 01:25 h

Holger
Posts: 8116
User
Zitat:
Original von thomas:

Das mag ja sein, aber man sollte sich doch lieber an die AutoDocs halten und da steht, zu jedem SetMenuStrip gehört ein ClearMenuStrip:
...

Danke für die Berichtigung. In der Dokumentation von ClearMenuStrip() steht davon halt kein Wort und mit so einer Dummheit der OS-Entwickler habe ich nicht gerechnet (wieso eigentlich nicht?).
Ich hoffe mal, daß CloseWindow() trotzdem auf das Beenden evtl. laufender Menüoperationen wartet, ansonsten gibt's einen mächtigen Knall, wenn jemand LendMenus() benutzt hat. Davon, daß man selbiges rückgängig machen müsse, steht nirgendwo etwas.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-07-14, 08:41 h

thomas
Posts: 7717
User
@Holger:

Es ist eigentlich durchgängig in den Autodocs, daß die Beispiele und wichtigen Hinweise immer bei der Funktion stehen, die das Problem verursachen könnte und nicht bei der, die es erkennt oder behebt. Daß man Speicher wieder freigeben muß, steht ja auch bei AllocMem und nicht bei FreeMem.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > MenuStrip [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.