Seite 2 von 2

Re: XBTOOLS bei Version 2.x

Verfasst: Fr, 12. Mai 2017 8:39
von unicorn
AUGE_OHR hat geschrieben:du beschreibst wieder das "drum-herum"
Hi Jimmy,

drum-herum und falsche Wortwahl, ist vermutlich wieder falsch formuliert von mir. Die bisherige Anwendung ist funktional / prozedural programmiert. Ist der Ansatz tatsächlich verbesserungswürdig?
AUGE_OHR hat geschrieben: allerdings wenn dein Chef selbst es nicht schafft die App auf GUI umzustellen
Ich weiß nicht, ob mein Chef vorher Clipper programmiert hat, ich denke aber schon. Aus dieser Anwendung ist dann vor 10 oder 15 Jahren unser Kassensystem in XBase++ entstanden.
Um die Dinge neu zu überdenken (den Code, nicht z.B. das Rechensystem), bin jetzt ich da. Mir ist nicht ganz klar wieso mein Chef es können müsste, GUI-Umbau zu beherrschen. Eine Erläuterung hierzu würde mich freuen.

Re: XBTOOLS bei Version 2.x

Verfasst: Fr, 12. Mai 2017 8:52
von Rudolf
Hallo Jannik,
mit eXpress++ kannst du sehr einfach und schnell auf GUI umstellen, auch ohne große Kennntnisse über objektorientiertes Programmieren. Ist fast der gleiche Code wie in Clipper. Die Logik kannst Du dabei belassen, wozu auch ändern wenn es ein bewährtes System ist.
Grüße
Rudolf

Re: XBTOOLS bei Version 2.x

Verfasst: Fr, 12. Mai 2017 18:42
von AUGE_OHR
unicorn hat geschrieben:Mir ist nicht ganz klar wieso mein Chef es können müsste, GUI-Umbau zu beherrschen.
ich verlange von meinen Angestellten nichts was ich nicht selbst tun "könnte" !

du bist doch nicht als Xbase++ "Spezialist" eingekauft worden sondern ein Newbie in Xbase++.
wie also sollst du so was machen wenn du deinen Chef nicht fragen kannst ?

Re: XBTOOLS bei Version 2.x

Verfasst: Fr, 12. Mai 2017 19:06
von HaPe
Hallo Jimmy !
wie also sollst du so was machen wenn du deinen Chef nicht fragen kannst ?
Sein Chef stellt ihn damit auf die Probe ob er sich selbst "freischwimmen" kann d.h. in der Lage ist sich Xbase++ selbst beizubringen.
Wenn er das alleine schafft, steigt er gewaltig im Ansehen seines Chefs.
Das Forum und die XUG-Treffen können dabei helfen ...

Re: XBTOOLS bei Version 2.x

Verfasst: Sa, 13. Mai 2017 12:15
von Rudolf
Hallo,
den Chef möchte ich sehen der alles kann was seine Mitarbeiter können ;-) Außer in kleinen Firmen natürlich.
Grüße
Rudolf

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 16. Mai 2017 16:09
von unicorn
Gibt es eine Möglichkeit,

wie bei C den Eingabepuffer zu leeren? (fflush(stdin))

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 16. Mai 2017 16:31
von Koverhage
Schau mal in der Hilfe nach
CLEAR TYPEAHEAD
Dein Chef sollte Dir echt ein CLIPPER Handbuch oder ähnliches schenken.

Re: XBTOOLS bei Version 2.x

Verfasst: Mo, 22. Mai 2017 16:32
von unicorn
Hi,

gibt es eine Möglichkeit bei einem Programm im Textmodus den Nullpunkt zu verändern?

Sprich:

Oben links des Programms ist der Ankerpunkt [0, 0]. Ist XBase in der Lage, diesen Punkt um [x, x] zu verschieben und alle Angaben für Positionierungen relativ zu diesem Punkt zu berechnen?

Grund:

Programm läuft bisher nicht in Vollbild. Wir wollen das Programm jetzt auf Vollbild bringen, und die bisherige Anzeige einfach in die Mitte setzen, ohne dass wir alles Positionierungen neu schreiben müssen (sind sehr viele).

Danke im Voraus :)

Re: XBTOOLS bei Version 2.x

Verfasst: Mo, 22. Mai 2017 18:41
von matyschik
Der Vollbidmodus ging nur bis Windows XP. Danach nicht mehr.
Mit SETMODE(xx,xx) kannst du zwar das CRT Fenster vergößern, jedoch müssen
dann alle anderen SAY Einstellungen gegebenfalls auch geändert werden.

Freundliche FlagShip Grüße
Johann

Re: XBTOOLS bei Version 2.x

Verfasst: Mo, 22. Mai 2017 23:26
von AUGE_OHR
hm ... ich denke Xbase++ kann keinen "Vollbild-Modus".
wie bei einem CMD Fenster wird die Grösse durch "DOS" Auflösung x Font vorgegeben (Appsys.PRG)

---

den "Nullpunkt" zu verschieben, nur damit es in der Mitte erscheint, ist eine merkwürdige Idee.

du kannst aber ein XbpDialog() als Parent "maximieren" und auf der o:DrawingArea ein oCRT "zentrieren"

Code: Alles auswählen

   CenterControl(oCRT,oDialog:DrawaingArea)

Re: XBTOOLS bei Version 2.x

Verfasst: Mo, 22. Mai 2017 23:46
von brandelh
Das oXbpCrt Fenster sollte direkt auf dem Desktop zentriert werden können.
Schau mal in der Wissensbasis nach meinem Beitrag für Fonts im crt Fenster festlegen.

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 23. Mai 2017 0:26
von AUGE_OHR
brandelh hat geschrieben:Das oXbpCrt Fenster sollte direkt auf dem Desktop zentriert werden können.
so lange du den Desktop "siehst" wirkt es nicht als "Vollbild" ... der User könnte mit der Maus noch Unsinn anstellen

wenn du ein Xbpdialog() als Parent verwendest kannst du es "blockieren" für die oCRT App.
diese ist auch der Weg den ich für eine Hybrid App empfehlen würde um XbParts "über" ein oCRT Fenster zu legen

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 23. Mai 2017 7:10
von ramses
matyschik hat geschrieben:Mit SETMODE(xx,xx) kannst du zwar das CRT Fenster vergößern, jedoch müssen
dann alle anderen SAY Einstellungen gegebenfalls auch geändert werden.
Dies ist nicht unbedingt der Sinnvollste weg .... besser geht es in der APPSYS() die Anzahl Zeilen/Spalten einstellen und über die Font-Breite und Font-Höhe die grösse des Fensters.

etwas so

Code: Alles auswählen

// aufbau des Fensters
procedure appsys()

#define DEF_ROWS       25
#define DEF_COLS       80
#define DEF_FONTHEIGHT 28
#define DEF_FONTWIDTH  14

    LOCAL aSizeDesktop, aPos

    public oXbpCrt
    public oDC := .f.
    public oPS := .f.
    public oPSD := .f.

    // Bestimmen der Fensterposition (Anordnen in der Mitte
    // des Desktop-Fensters)
      aSizeDesktop    := AppDesktop():currentSize()
      aPos            := { (aSizeDesktop[1]-(DEF_COLS * DEF_FONTWIDTH))  /2, ;
                           (aSizeDesktop[2]-(DEF_ROWS * DEF_FONTHEIGHT)) /2  }

      // XbpCRT-Fenster erzeugen
      oXbpCrt := XbpCrt():New ( , , aPos, DEF_ROWS, DEF_COLS )
      oXbpCrt:FontWidth  := DEF_FONTWIDTH
      oXbpCrt:FontHeight := DEF_FONTHEIGHT
      oXbpCrt:title      := "Programmname"
//       oXbpCrt:icon := 100   // icon 1

      oXbpCrt:FontName   := "Courier New"   // Alaska Crt"
      oXbpCrt:Create()

    SetAppWindow ( oXbpCrt )
    oXbpCrt:toFront()
    oXbpCrt:autoFocus := .f.
    oXbpCrt:useShortCuts := .F.
    setappfocus( oXbpCrt )
   
return

ich verwende diese Variante für einige aus der Clipper-Zeit übernommen Programme ...

Gruss Carlo

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 23. Mai 2017 13:58
von matyschik
Hallo Carlo,

dieser Weg ist eine hervorragende Lösung. Besten Dank! Da ich alle neuen
Programme mit FlagShip erstelle kommt diese sehr gute Lösung für mich leider
zu spät. Für Xbase++ im CRT Modus Programmierer ein sehr guter Aufhänger.

Freundliche FlagShip Grüße
Johann

Re: XBTOOLS bei Version 2.x

Verfasst: Di, 23. Mai 2017 19:42
von ramses
Hallo Johan

das ist schön für dich.

Hätte ich nicht viele Mann-Jahre Entwicklungszeit in Xbase++ Programme gesteckt würde ich vielleicht das selbe tun.
Jedoch kenne ich Flagship nicht, Harbour verwende ich für Tools auf FreeBSD.
Harbour würde ich aus verschiedenen Gründen, es kann z.B. verglichen mit xbase zuwenig, niemals für Programme auf Windows verwenden.
Ich bin auch nicht mit allem von Xbase++ zufrieden und hatte auch eine Zeit der grossen Zweifel....

Wir, ich und meine Kunden, haben uns jetzt entschieden bis auf weiteres ausschiesslich die aktuellste Xbase++ Version zu verwenden.
Für uns gibt es keine Alternative zu Xbase, es steckt zuviel Arbeit und Geld in den Projekten.
( Alaska braucht ja auch zahlende Kunden, sonst geht das "Schiff XBase++" unter ....)

Gruss Carlo

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 24. Mai 2017 9:33
von unicorn
Hi Leute,
danke schonmal für eure Antworten. Tatsächlich ist es aber so, dass es mir leider nicht hilft, was aber daran liegt das ich mal wieder nicht in der Lage war, meine Frage richtig zu formulieren.

Was ich mit Vollbildmodus meinte, ist ein maximiertes Fenster :banghead: ich weiß nicht warum ich zurzeit es nicht schaffe meine Gedanken richtig darzulegen =P~

Der Punkt ist - bisher ist die Lösung ungefähr so wie die von Carlo, nur eben nicht maximiert, also den Desktop füllend.

Unser Kunde (arbeite inzwischen an einem Projekt für einen Kunden von uns mit) meint, der Rest, den man vom Desktop sieht (Icons, Wallpaper, etc) stört ihn und er hätte gerne stattdessen das Fenster maximiert dann lieber einen grauen Rahmen drumrum, wenn die Programmierung für unterschiedliche Auflösungen zu aufwendig wird.

Dazu hatte ich die Idee, das XBase evtl. in der Lage ist, den Nullpunkt für die Angabe der Elemente (oben links Ecke) an einen anderen Punkt des Fensters zu setzen, damit man den Text relativ zur Displayauflösung mittig positionieren kann, sodass wir nur ausprobieren müssen, mit welchen Parametern der Text in der Mitte wäre, statt jedes einzelne Feld neu positionieren zu müssen.

Danke für eure Hilfe! :roll:

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 24. Mai 2017 9:37
von Martin Altmann
Moin Jannik,
Carlos Ansatz ist der einfachste und sicherlich beste. Das Fenster im Vollbild und die Schrift und restlichen Element groß genug. Damit brauchst Du nichts umpositionieren.

Viele Grüße,
Martin

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 24. Mai 2017 10:04
von unicorn
Hi Martin,

ich stelle die Frage, da schon ca. 10.000(+) Code bestehen, mit extrem viel gesetzten Feldern, Boxen etc. Eine Verschiebung des Nullpunkts wäre in diesem Fall (IMHO) ja die einfachere Lösung.
Denn wenn ich den Code von Carlo richtig verstehe, dann ist das ja hauptsächlich ein maximiertes Fenster, oder?

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 24. Mai 2017 18:08
von AUGE_OHR
unicorn hat geschrieben:Der Punkt ist - bisher ist die Lösung ungefähr so wie die von Carlo, nur eben nicht maximiert, also den Desktop füllend.
wie ich sagte musst du 1 Ebene "tiefer" ansetzten.
in die Appsys.PRG kommt ein XbpDialog() und auf der o:DrawingArea dann das oCRT

Code: Alles auswählen

PROCEDURE APPSYS
   oDlg := XpbDialog():New(AppDesktop(),,{0.0},AppDesktop():CurrentSize())
   ...
   oDlg:Create()
RETURN

PROCEDURE MAIN
local oMain := SetAppWindow()

   // XbpCRT-Fenster erzeugen
   oXbpCrt := XbpCrt():New (oMain , , aPos, DEF_ROWS, DEF_COLS )
   oXbpCrt:FontWidth  := DEF_FONTWIDTH
   oXbpCrt:FontHeight := DEF_FONTHEIGHT
   oXbpCrt:FontName   := "Alaska Crt"   // Rasterfont
   oXbpCrt:title      := "Fenster Name"
   oXbpCrt:Create()

Re: XBTOOLS bei Version 2.x

Verfasst: Do, 25. Mai 2017 10:55
von UliTs
+1
Top Lösung.

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 19. Jul 2017 16:36
von unicorn
Hey Leute, falls ihr mal wieder eure schlauen Köpfe zur Verfügung stellen wollt:

https://xbaseforum.de/viewtopic.php?f=32&t=9884

Ich komm einfach nicht weiter...

Re: XBTOOLS bei Version 2.x

Verfasst: Do, 20. Jul 2017 7:10
von brandelh
Verweise auf eigene neue Beiträge in anderen Themen sind nicht wirklich hilfreich ... der ursprüngliche wird ja auch als ungelesen angezeigt ;-)
Lieber im passenden dann nochmal was posten.

Re: XBTOOLS bei Version 2.x

Verfasst: Mi, 26. Jul 2017 8:40
von IngoM
Hallo Jannik,

ich hatte ein ähnliches Problem mit einem Clipper-Programm, das im maximierten Fenster läuft.
Auf dieser Seite http://www.uwe-sieber.de/dosfon.html gibt es ein Programm namens ConsoleBackFill, das den Hintergrund schwarz färbt. Außerdem gibt es auch noch ConsoleNoClose; damit kann man das "x" zum Schließen des DOS-Fensters deaktivieren.
Zusätzlich gibt es auch noch alternative Fonts für Programme im DOS-Fenster.