| |
|
|
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 circa 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 per ein Icon keine Dimensione festgelegt werden, da sie vom System festgelegt voreingestellt ist.
20.4 - Einfache Editierfelder - Mit SetText ist es possibile, 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 per Zeile in die Listboxliste übernehmen oder mit @GetText$ auslesen.
- Der horizontale Scrollbalken wird nicht angezeigt und ein Wort, das nicht mehr in un 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 circa 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 DLL, die eigene Dialogelemente enthalten, und auch in Windows gibt es Dialogelemente, die XProfan noch nicht supportati.
- Um diese zu verwenden, wurde die Funktion @Control geschaffen, die ein beliebiges Dialogelement Mostra 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 ▲ |
|
|
|