Hallo,
in meinem kleinen Palm Programm habe ich mir eine Funktion geschrieben die mir das Datum und die Zeit anzeigt.
Es wird ein kleiner String mit WinDrawChars in native rechts oben neben dem Formulatext angezeigt.
Der Refresh erfolgt alle Sekunden im nilevent.
Wenn man nun die Menueleiste aufklappt wird manchmal der String über das Menue geschrieben.
Da das System das Menue selbst öffnet weiss ich jetzt nicht wann ich das Anzeigen unterdrücken muss.
Woher weiss ich nun ob das Menue geöffnet ist?
danke für Hilfe
(68k TE2)
Menueleiste
Willkommen!
Wenn du im Nexave-Forum mitmachen möchtest, schreib an community@nexave.de. Wir haben die Registrierungsfunktion in unserem Diskussionsforum nämlich deaktiviert, weil sich praktisch nur noch Spammer und Werbebots registriert haben. Per E-Mail sind wir dir gern behilflich, einen Account anzulegen.
-
-
Hi,
soweit ich mich erinnern kann, geht das mit
winExitEvent und winEnterEvent. -
Danke,
hab ich einfach nicht gefunden in der SDK. -
Hallo nur zur Info,
mit winExitEvent und winEnterEvent hats doch nicht immer funktioniert
richtig gehts mit menuOpenEvent und menuCloseEvent.
Der winEnterEvent kommt glaube ich bei aktivsetzen des Fensters und bei allen aktivitäten im Fenster egal ob menu oder irgend ein Button. -
-
Zitat
Original von LeFrench
mtiEs hört sich sehr, sehr interessant an.
Kannst Du auch der Ladenzustand der Batterie anzeigen lassen
und dann wahlweise Datum, Zeit und/oder Batterie ?Kannst Du einen ScreenShot hier zeigen ?
Liebe Grüße
LeFrenchDas funktioniert doch wunderbar mit dem ZLauncher
Viele Grüße
McPalmi -
Hallo, das mit dem Ladezustand geht sicher habe ich aber noch nicht gefunden.
anbei der C Code der oben rechts Zeit und Datum anzeigt.
viel Spaß beim ausprobieren.
void viewDate(void)
{
DateTimePtr datumZeit;
char* zeit;
static UInt8 StundeVor;
datumZeit = MemPtrNew(20);TimSecondsToDateTime(TimGetSeconds(),datumZeit);
zeit = MemPtrNew(timeStringLength);// Speicher Zeitstringlänge hohlen
TimeToAscii(datumZeit->hour,datumZeit->minute,tfColon24h,zeit);if(StundeVor>datumZeit->hour){
clrDate();//bei 23:59->0:00 Zeichen löschen sonst bleibt letzte Ziffer stehen
}
StundeVor=datumZeit->hour;WinPaintChars(zeit,StrLen(zeit),128,1);
MemPtrFree(zeit);
zeit = MemPtrNew(dateStringLength);// Speicher Datumstringlänge hohlen
DateToAscii(datumZeit->month,datumZeit->day,datumZeit->year,dfDMYWithDashes,zeit);
WinPaintChars(zeit,StrLen(zeit),88,1);
MemPtrFree(zeit);
MemPtrFree(datumZeit);
}void clrDate(void)
{
UInt8 i;
UInt8 j=88;
for(i=0;i<16;i++){
WinPaintChars(" ",2,j,1);//Zeichen mit Leerzeichen übermalen
j+=4;
}
} -
BITTE LÖSCHEN
Wo ist eigentlich dieser Löschbutton ???
-
Zitat
Original von McPalmi
... Das funktioniert doch wunderbar mit dem ZLauncher ...
Soweit ich das verstanden habe, werden die Informationen in JEDER Anwendung angezeigt. Und DAS wäre durchaus interessant.Gruß carafaja
-
Zitat
Original von mti
...anbei der C Code...Könntest du bitte noch eine prc/pdb anhängen, keine lust die developer suite von palm nur zum ausprobieren zu laden...
-
Wenn ich das richtig verstanden habe, ist es eine Anzeige (Datum u. Zeit) (vielleicht auch Batterie) die in jeder Anwendung mit der Befehlleiste erscheint ?
Ist das richtig ?
Sonst braucht man das nicht, denn es ist mit dem Launcher vorhanden wenn man die Anwendungen verlässt !
Dann braucht die Gemeinschaft die .prc Datei.
Liebe Grüße
LeFrench -
Also,
wenn jemand eine Palm Appl. erstellt kann der C Code in sein Programm mit eingebunden werden.
Es wird dann beim aufrufen der Funktion ein String mit Datum und Zeit oben rechts angezeigt.da wir hier im Forum /Entwicklung sind habe ich den Code reingestellt.
Es ist also nichts fertiges für nicht Palm Programmierer.
beste Grüßemti
-
Zitat
Hallo nur zur Info,
mit winExitEvent und winEnterEvent hats doch nicht immer funktioniert
richtig gehts mit menuOpenEvent und menuCloseEvent.
Löst das "menuOpenEvent" nicht nur aus, wenn das Menü inititalisiert wird? Also z.B. wenn ich das 1. mal in einer Form darauf klicke. Beim 2. mal drauf klicken sollte es aber doch nicht mehr auslösen!?Btw. steht in der API zum menuCloseEvent:
"A menuCloseEvent is defined by the system, but it is not currently
sent. If you need to perform some cleanup (such as closing a
resource) after the menu item you added is no longer needed, do so
in response to frmCloseEvent."Aber wenns funktioniert ...
-
winEnter && winExit sind definitiv die richtigen. menuOpen gibt's nur einmal, beim Initialisieren. Seite 110 des PalmOS Companion.pdf schreibt dazu unter der Überschrift:
Checking Menu Visibility
When the operating system draws a menu, the menu’s window
becomes the active drawing window. The operating system
generates a winExitEvent for the previous active drawing
window and a winEnterEvent for the menu’s window. When the
menu is erased, the system generates a winExitEvent for the
menu’s window and a winEnterEvent for the window that was
active before the menu was drawn.[...]
CodeEvtGetEvent (&event, TimeUntillNextPeriod()); if (event.eType == winExitEvent) { if (event.data.winExit.exitWindow == (WinHandle) FrmGetFormPtr(MainView)) { // stop drawing. } }
und -
komisch???
ZitatmenuOpen gibt's nur einmal, beim Initialisieren
Ich benutze ein Enable Flag welches beim öffnen der Form und beim menuOpenEvent gelöscht wird.
Beim menuCloseEvent wird das Flag wieder gesetzt.
Solange das Flag false ist zeige ich den String sonst nicht =>zwar nicht der OS Profi code aber geht.
mfg mti