|  | 
|   | 
 | 
  Jörg Sellmeyer | 20.1 - Dialoge - Grundlagen
   - Soll der Anwender nichts anderes machen können, bevor der Dialog abgearbeitet ist, muss das Programm (will heißen: Sie als Programmierer) dafür Sorge tragen, dass nur auf Ereignisse des Dialoges reagiert wird. ist zwar grad nicht Dativ aber ... [...]  
 
   - Die eckigen Klammern <...> stellen Platzhalter das sind spitze Klammern
 
   - Auch das Anwählen eines Buttons oder anderen Steuerelementes über ALT und dem Unterstrichenen Buchstaben funktioniert nicht.
  20.2 - Buttons, Checkboxen und Radiobuttons
   - Wenn er gedrückt und losgelassen wird, löst er ein Ereignis aus.
  20.3 - GroupBoxen, Texte und Icons
   - Im Gegensatz zu allen anderen Dialogelementen kann für ein Icon keine Größe festgelegt werden, da sie vom System festgelegt voreingestellt ist.
  20.4 - Einfache Editierfelder
   - Mit SetText ist es möglich, den Text im Eingabefeld per Programm zu bestimmen.
 
   - Für spezielle Fälle, wie etwa Datums- und Zeitangaben oder Eingaben von numerischen Werten, sind die entsprechenden speziellen Edit-Controls vorzuziehen.
 
   - Umgekehrt kann man mit @MoveHandleToList den kompletten Text der Editbox Zeile für Zeile in die Listboxliste übernehmen oder mit @GetText$ auslesen.
 
   - Der horizontale Scrollbalken wird nicht angezeigt und ein Wort, das nicht mehr in eine Zeile paßt, wird automatisch in die nächste Zeile gebracht.
  20.5 - Spezielle Editierfelder
   - Um Zahlenwerte einzugeben benutzt man gerne Eingabefelder, bei denen am linken Rand mit Hoch- und Runter-Knöpfen der Wert eingestellt werden kann. Hierfür benutzt man gibt es in XProfan das SpinEdit-Control.
 
   - Ist es ein String, kann dieser 1 bis 3 durch Semikolon getrennte Werte enthalten.
 
   - Er ist das Datum im landesspezifischen Kurzformat,
 
   - Beim Klick auf den Pfeil nach unten öffnet sich ein Kalender zum komfortablen einstellen des Datums.
 
   - Das landesspezifische Format läßt sich über die XProfan-Funktion Date$(4) auslesen.
 
   - Beim Klick auf die Pfeile können, je nach Position des Cursors Stunden, Minuten oder Sekunden eingestellt werden.
 
   - Text kann zwar mit SetText zugewiesen und mit GetText$(), SetText - SetCheck ausgelesen werden, SetCheck und auslesen?
 
   - Hierbei ist R& das Handle des RichEdit-Controlls und S$ der Dateiname. Das Ergebnis der Funktion ist 0 bei Erfolgt oder eine Fehlernummer.
  20.6 - ListBoxen
   - Die ListBox gibt es in mehreren Ausprägungen, die durch den Typ-Parameter gesteuert werden: unsortiert oder sortiert, mit Einzelauswahl oder Mehrfachausdwahl.
 
   - Die Anzahl der Einträge in einer Listbox wird mit @GetCount ermittelt mal Listbox, mal ListBox - vielleicht mal die Konsistenz überprüfen
 
   - Um herauszubekommen, welcher Eintrag markiert (ausgewählt) ist, muss die Funktion @GetCurSel verwandt werden,
 
   - Ist wParam eins, dann führen Änderungen in der ListBox auch zu einem Neuzeichnen, ist er hinigegen null so wird die ListBox nicht neu aufgebaut. Besser zwei Sätze: Ist wParam eins, dann führen Änderungen in der ListBox auch zu einem Neuzeichnen. Ist er hinigegen null, so wird die ListBox nicht neu aufgebaut.
 
   - '-1. ListBox flackerfrei fuellen--------------------------------------
  20.7 - AuswahlBoxen
   - auch hier die Verwendung von Listbox/ListBox vereinheitlichen
 
   - Durch Anklicken des Pfeiles nach unten kann, aus einer Liste von Auswahlmöglichkeiten, eine Zeile ausgewählt werden. .
 
   - Die AuswahlBox gibt es in mehreren Ausprägungen, die durch den Typ-Parameter gesteuert werden: unsortiert oder sortiert,
 
   - Um den Index des gewählten Eintrages zu ermitteln, kann die Funktion @GetCurSel verwandt werden.
  20.8 - GridBoxen muss die Funktion @GetCurSel verwandt werden, jaja - C&P. Interessant, dass die Fuktion mal verwendet werden kann  und mal muss ...
  Nehmen wir an, wir wollten ein Grid nach Nachnahme und Vorname sortieren.
  20.11 - Statuszeile - Toolbar - Tooltips
 
   - Mit der Create-Funktion "Toolbar" kann einem Fenster eine Button-Leiste hinzugefügt werden.
 
   - Zweio Beispielcodes finden sich in der Syntaxbeschreibung zu @Create("Toolbar".
  20.12 - TreeView (Baumansicht) Mit @TreeView("GetParent" kann ermittelt werden, ob einen Eintrag übergeordneten Eintrag hat und mit @TreeView("GetSelected", welcher Eintrag augenblicklich ausgewählt ist.
  20.13 - TrayIcons
   - Über sie erhält man in der Regel direkten Zugriff auf Programme, die ohne sichtbaress Fenster im Hintergrund laufen.
   - Sie können auf die rechte Maustaste,( )linke Mauistatste generell mal nach doppelten Leerzeichen suchen und diese ersetzen
 
   - Da das TrayIcon wissen muß, welches Fenster bei einem Klicken zu benachrichtigen ist, muß diese (was?) angegeben werden. (Kontextfehler: Aus dem Satz geht nicht hervor, was angegeben werden muß.)
  20.15 - Beliebige Dialogelemente
   - Es gibt externe DLLs, die eigene Dialogelemente enthalten, und auch in Windows gibt es Dialogelemente, die XProfan noch nicht unterstützt.
 
   - Um diese zu verwenden, wurde die Funktion @Control geschaffen, die ein beliebiges Dialogelement anzeigen kann, dessen Klassenname registriert und bekannt ist.
 
   - Sehr interessant ist auch die Verwendung der XProfan-eigenen Fensterklassen mit der @Control-Funktion, weil man dann zwar die Fenster mit beliebigen Stilkonstanten versehen kann, aber dennoch die Fensterprozeduren von XProfan greifen. Damit können in diesen Fenstern dann Tastatur-, Maus-, Menü- und sonstige Anfragen wie gewohnt behandelt werden. Die Fensterklasse des Hauptfensters in XProfan ist "FENSTER", die des mit @Create("Window" geöffneten Fensters ist "DIALOG". Das verstehe ich nicht. Kann man mit Control("Fenster",...) ein HWnd erzeugen? |  
  | 
|   | 
 | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...    | 28.03.2012  ▲ |  
  | 
|   | 
 
 
  |