das ist ist der Maindialog
Code: Alles auswählen
* *
* *
* *
* *
* letzte Änderung:10.11.2010 *
********************************************************************************
* routenverfolgung.prg *
* (c) Manfred Kunz Juli 2010 *
********************************************************************************
#include "appevent.ch"
#include "dcdialog.ch"
#include "dcgra.ch"
#include "dcmsg.ch"
#include "routenverfolgung.ch"
#include "nls.ch"
#include "xbp.ch"
#include "q:\include\inkey.ch"
#pragma Library( "XBTBASE1.LIB") // wird dadurch in keinem
#pragma Library( "XBTBASE2.LIB") // Projektfile mehr benötigt als Angabe
#pragma Library( "XppUI2.lib" ) // für den XbpPrintDialog()
#pragma Library( "dclipx.lib" )
#pragma Library ("q:\zusaetze_gui\allgemein\mk_zusaetze.lib")
********************************************************************************
PROCEDURE appsys()
RETURN
********************************************************************************
PROCEDURE main()
LOCAL getlist := {}
LOCAL GetOptions
LOCAL nStaticButtonBreite := 150
LOCAL nStatusBarHoehe := 35
LOCAL oDateiMenu := NIL
LOCAL oDateneingang := NIL
LOCAL oEinstellung := NIL
LOCAL oGruppeStaticButton := NIL
LOCAL oHilfeMenu := NIL
LOCAL oImportmenu := NIL
LOCAL oMenuBar := NIL
LOCAL oMessageBox := NIL
LOCAL oSeparator := NIL
LOCAL oSeriellMsg := NIL
LOCAL oSignale := signale():new()
LOCAL oStammdaten := NIL
LOCAL oStaticButton := NIL
LOCAL oStaticMsg := NIL
LOCAL oStaticWeb := NIL
LOCAL oStatus1 := NIL
LOCAL oStatusbar := NIL
LOCAL oText := NIL
LOCAL oThread := seriellewache():new()
LOCAL oThreadMsg := NIL
// LOCAL oWebBrowser := NIL
MEMVAR oBild
MEMVAR oHauptDialog
MEMVAR oMessage
MEMVAR oPruefen
MEMVAR oSysPara
PUBLIC oHauptDialog
PUBLIC oMessage
PUBLIC oSysPara // wegen Thread
oBild := ""
oMessage := nachricht():new()
oPruefen := pruefen():new()
oSysPara := systemParameter():new()
DC_LangMsg(DCLANG_GERMAN)
DC_DotHotkey(0) // damit das Dot-Prompt Tool weg ist (kann man auch umlenken)
SetLocale( NLS_ICURRENCYEURO, "1" )
SetLocale( NLS_SCURRENCY, Chr(213) )
oEinstellung := einstellung():new()
oEinstellung:db_oeffnen(,,,,,,,.T.)
oEinstellung:schliesse_datenbank()
DCMENUBAR oMenuBar;
ID 999;
OWNERDRAW
//------------------------------------------------------------------------------
DCSUBMENU oDateiMenu;
PARENT oMenuBar;
PROMPT "~Datei"
DCMENUITEM "~Einstellungen";
ACTION {|| einstellungen(oMessageBox) };
MESSAGE "Programmeinstellungen" INTO oMessageBox;
PARENT oDateiMenu
DCMENUITEM oSeparator;
PARENT oDateiMenu;
SEPARATOR
DCSUBMENU oImportmenu;
PARENT oDateiMenu;
PROMPT "~Importieren"
DCMENUITEM "~Fahrplanverwaltung";
ACTION {|| importieren() };
MESSAGE "Import aus Fahrplanverwaltung" INTO oMessageBox;
PARENT oImportMenu
DCMENUITEM oSeparator;
PARENT oDateiMenu;
SEPARATOR
DCMENUITEM "~Beenden";
ACTION {|| IF(AppQuit("",.T.,"Programmende"),DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList),NIL)};
MESSAGE "Programmende" INTO oMessageBox;
PARENT oDateiMenu
//------------------------------------------------------------------------------
DCSUBMENU oDateneingang;
PARENT oMenuBar;
PROMPT "Daten~Empfang"
DCMENUITEM "St~art";
ACTION {|| oThread:start("datenempfang",oThread,oDateneingang)};
MESSAGE "startet den Datenempfang über die serielle Schnittstelle" INTO oMessageBox;
PARENT oDateneingang
DCMENUITEM "St~op";
ACTION {|| oThread:terminate()};
MESSAGE "Stoppt den Datenempfang über die serielle Schnittstelle" INTO oMessageBox;
PARENT oDateneingang
DCMENUITEM "~Signaleingangskontrolle";
ACTION {|| oDateneingang:disableItem(3),;
signalbrowse(),;
oDateneingang:enableItem(3);
};
MESSAGE "Öffnet ein Browsefenster in dem die derzeitigen Signaleingänge angezeigt werden" INTO oMessageBox;
PARENT oDateneingang
//------------------------------------------------------------------------------
DCSUBMENU oStammdaten;
PARENT oMenuBar;
PROMPT "~Stammdaten"
DCMENUITEM oSeparator;
SEPARATOR;
PARENT oStammdaten
DCMENUITEM "~Meldepunkte";
ACTION {|| meldepunktezeigen() };
MESSAGE "im Datenbestand befindliche Meldepunkte" INTO oMessageBox;
PARENT oStammdaten
//------------------------------------------------------------------------------
DCSUBMENU oHilfeMenu;
PARENT oMenuBar;
PROMPT "~Hilfe"
DCMENUITEM oSeparator;
PARENT oHilfeMenu;
SEPARATOR
DCMENUITEM "~Info";
ACTION {|| info() };
MESSAGE "Programminformationen" INTO oMessageBox;
PARENT oHilfeMenu
//------------------------------------------------------------------------------
DCSTATUSBAR oStatusbar;
ALIGN DCGUI_ALIGN_BOTTOM;
HEIGHT nStatusBarHoehe
@ 3,0 DCSTATIC;
OBJECT oStaticMsg;
PARENT oStatusBar;
SIZE 100,nStatusBarHoehe;
TYPE XBPSTATIC_TYPE_RECESSEDBOX
@ 3,0 DCSTATIC;
OBJECT oThreadMsg;
PARENT oStatusBar;
SIZE 220,nStatusBarHoehe;
TYPE XBPSTATIC_TYPE_RECESSEDBOX
@ 3,0 DCSTATIC;
OBJECT oSeriellMsg;
PARENT oStatusBar;
SIZE 200,nStatusBarHoehe;
TYPE XBPSTATIC_TYPE_RECESSEDBOX
@ 3,0 DCSTATIC;
OBJECT oStatus1;
PARENT oStatusBar;
SIZE 300,nStatusBarHoehe;
TYPE XBPSTATIC_TYPE_RECESSEDBOX
@ 2,2 DCMESSAGEBOX;
COLOR GRA_CLR_BLUE, GRA_CLR_BACKGROUND;
OBJECT oMessagebox;
PARENT oStaticMsg;
SIZE 500,nStatusBarHoehe MOTION;
TYPE XBPSTATIC_TYPE_TEXT
@ 2,2 DCSAY "";
OBJECT oText;
PARENT oThreadMsg;
SIZE 200,20
@ 2,2 DCSAY "Datenempfang gestoppt";
OBJECT oText;
PARENT oSeriellMsg;
SIZE 300,20
@ 2,2 DCSAY "";
OBJECT oText;
PARENT oStatus1;
SIZE 300,20
//------------------------------------------------------------------------------
@ 0,0 DCSTATIC;
OBJECT oStaticWeb;
TYPE XBPSTATIC_TYPE_RECESSEDRECT
@ 0,0 DCSTATIC;
OBJECT oStaticButton;
TYPE XBPSTATIC_TYPE_RECESSEDRECT
//------------------------------------------------------------------------------
@ 15,15 DCGROUP oGruppeStaticButton;
CAPTION "Auswahl";
PARENT oStaticButton;
SIZE DCGUI_PARENTWIDTH-30,DCGUI_PARENTHEIGHT-30
//------------------------------------------------------------------------------
DCGETOPTIONS;
ABORTQUERY MSG {|| AppQuit("",.T.,"Programmende mit ESC") };
AUTORESIZE;
AUTOWINDOWMENU;
BORDER XBPDLG_SIZEBORDER;
CLOSEQUERY MSG {|| AppQuit("",.T.,"Programmende über X-Button") };
ICON ICON_APPLICATION;
PIXEL;
SAYOPTIONS XBPSTATIC_TEXT_VCENTER;
TITLE TokenUpper(SubStr(oSysPara:cProgrammName,1,Rat(".",oSysPara:cProgrammName)-1))
DCREAD GUI;
EVAL {|o| oHauptdialog:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED),;
oDateneingang:disableItem(2),;
oStaticWeb:setPos( {0,0 } ),;
oStaticButton:setPos( {oHauptdialog:clientsize[1]-nStaticButtonBreite,0 } ),;
oStaticWeb:setSize( { oHauptdialog:clientsize[1]-nStaticButtonBreite,oHauptdialog:clientsize[2]-nStatusBarHoehe } ),;
oStaticButton:setSize( { nStaticButtonBreite,oHauptdialog:clientsize[2] } ) ,;
pruefeMeldepunktUpdate(),;
SetTimerEvent(10000, {|| starteThread(oThread,oEinstellung:neustart,oDatenEingang,oSignale) } ),;
test(oHauptDialog,oStaticWeb,oStaticButton);
};
OPTIONS GetOptions;
PARENT @oHauptDialog
RETURN
********************************************************************************
********************************************************************************
FUNCTION test(var1,var2,var3)
altd()
RETURN(.T.)
Mir fällt gerade noch was eine. In das Static oStaticWeb will ich eigentlich ein DCHTMLVIEWER bauen. Ich denke mal, das es wohl geht, wie ich es mir ausdenke? Warum auch nicht, oder?