Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Eigenes Mainmenu: Verschachtelung ?

  Alt 23. Mär 2007, 14:50
ich habe mir überlegt, ich nehme diese Strucktur:
Zitat:
Item0|Informationen zum aussehen
item0\test1|Informationen zum aussehen
item0\test2|Informationen zum aussehen
item0\test3|Informationen zum aussehen

item1|Informationen zum aussehen
item1\test1|Informationen zum aussehen
item1\test2|Informationen zum aussehen
item1\test3|Informationen zum aussehen

item0\item2\Text1|Informationen zum aussehen
item0\item2\Text2|Informationen zum aussehen
item0\item2\Text3|Informationen zum aussehen
jetzt erstelle ich eine Klasse TmyMainMenu, die hat eine Procedure LoadRootItems ein Root item ist eine Zeile wo kein \ vorkommt.
Bein laden wird ein Array gefüllt, und zwar mit jedem einzelnen Item der gezeichnet wird. am Anfang sind das 2(im beispiel Script).

Jetzt klicke ich auf Item0, dann wird eine Procedure mit z.b. dem Namen LoadSubItems auf gerufen. Als Parameter erwartet sie einen Caption (Später eine ID). Es gibt in der Klasse selber eine Gobale Variable Level das ist der aktuelle TokenIndex. der wird um eins erhöht, wenn auf ein Item geklickt wird.

Jetzt habe ich das angeklickte Item und den Aktuellen TokenIndex(Level).
die procedure LoadSubItems ermittelt nun welche unter items zu item0 gehöhren.

In der Liste(array) wird auch die Zeilen Nummer zu den Untermenus gespeichert.
dann muss nicht mehr gesucht werden sondern nur vergliechen:
ist ParentCaption immer noch gleich Zeile als sprich gleich Item0 wenn ja füge es der Liste hinzu.
Wenn nicht breche das hinzufügen ab.

Ich hoffe ihr könnt mir noch folgen.

Dank dieser Liste habe ich die Möglichkeit festzustellen, welches Item angeklickt wurden ist und kann somit sein
unter Menu ermitteln(das hoffe ich auf jedenfall).
beim zeichnen wird jetzt auch nur diese Liste durch gegangen und bei jeder Mausbewegung bzw. beim jeden Klicken mit der Maus ebenfalls.

was meint ihr dazu ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat