hi Bruno,
Bruno hat geschrieben: ↑So, 30. Apr 2023 15:12
Ich packe das mal in ne ZIP, wenn Du mal reinschaust und in der MAIN ein Beispiel machst, muss nicht funktionieren, sondern zum verstehen.
wo hast du die DISPOEINGABE.PRG welche zum Anfang generiert wurde
du hast zwar die CLASS _DISPOEINGABE aber die CLASS DISPOEINGABE taucht nirgends auf
also generiere aus der *.XFF noch mal CLASS CODE mit anderen Namen und hole dir die Sachen aus der neuen Datei. die dort enthaltene MAIN solltest du dann umbenennen
---
was deine MAIN angeht bist du wieder im Cl*pper Style ...
es gibt kein
um Events zu empfangen (um sie dann auszuführen)
sehe ich das richtig das du "nur" Wissen willst ob die "Dispo" App läuft
für den "doppelten" Start der App kommt eine "Prüfung" hier zu spät
wenn die App doppelt läuft hast du die auch doppelt im Taskmanager aber "wie" unterscheiden
deshalb die Prüfung per DLL-Call in der Appsys was ich gepostet habe und nicht die "billlig" Lösung ob man eine DBF Exclusive öffnen kann
wenn er die App findet dann bringt er die App auch "nach vorne" so das der User die "sieht"
p.s. ich würde dem User nur was "zeigen" wenn es die betreffenden Apps im Array "aList" steht
---
in deinen "Schleifen" denkst du wieder nicht daran das die DBF im Zugriff sein "könnte"
solche "Endlos-Schleifen" können Windows "lahm" legen wenn da kein SLEEP erfolgt
---
was noch komplett fehlt sind die SET am Anfang von MAIN wie
Code: Alles auswählen
SET EXCLUSIVE OFF // Netzwerk SHARE
SET EPOCH TO YEAR( DATE() ) - 50
SET CENTURY OFF
SET DATE GERMAN
auch die Euro Zeichen Einstellung fehlt, hier für OEM
Code: Alles auswählen
SETLOCALE( NLS_ICURRENCYEURO, "1" )
SETLOCALE( NLS_SCURRENCY, CHR( 213 ) )
---
ich würde zunächt eine Intro / Login Fenster bauen
von da in das Haupt Fenster mit einem Menu (egal welcher Art)
du hast dann später für jedes Fenster eine PRG
packe alle *.PRG in ein "Project" XPJ File
Code: Alles auswählen
DIR *.PRG /B > PROJECT.TXT
PBUILD @PROJECT.TXT
PBUILD PROJECT.TXT.XPJ /g
siehe dir nach jedem der Schritte die entsprechenden Dateien an und du wirst "sehen" was er gemacht hat
bei COMPILE_FLAGS füge /w hinzu und ändere bei GUI auf "yes" und "PROJECT.EXE" in deinen Namen
wenn du später neue Module hast schreibst du die *.PRG in de XPJ unter "STOP-AUTODEPEND" und das entsprechende OBJ unter "START-AUTODEPEN"
! Achtung : wenn man den Debugger startet wird eine Datei "Appname.XPJ" angelegt / überschrieben
---
wenn ich die XFF Datei öffne sehe ich 4 x Button und ein Feld wo "Arbeitsjahr" steht
im Source "sehe" ich das
Code: Alles auswählen
::Status := XbpStatusBar():new( ::drawingArea, , {12,440}, {400,40} )
klar kannst du die Statusbar verwenden wie du will aber "gedacht" ist die Statusbar "unten" in einem Fenster
in der generierten MAIN steht so was
das muss man erweitern um es einer Variable zuzuweisen
danach kannst du dann die Codeblock Slots für die Buttons "belegen"
Code: Alles auswählen
oDlg:Button1:activate := {|| MsgBox("Hello 1") }
oDlg:Button2:activate := {|| MsgBox("Hello 2") }
oDlg:Button3:activate := {|| MsgBox("Hello 3") }
oDlg:Button4:activate := {|| MsgBox("Hello 4") }
da du noch keine "Eingabe" Felder eingebaut hast "fehlt" noch die ganze Sache mit dem "Datalink" für XbpSLE
im XppFD kannst du eine DBF auswählen und die FELDer welche er in den Fom-Designer übernehmen soll
aber das ist dann noch ein anderes Thema