eXPress++: GUI-Beispiele

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Beitrag von Rudolf »

Hallo Manfred,
habe auch lange gezögert, aber mit eXPress++ kannst Du gleich wie im Textmodus programmieren, sogar noch einfacher. Der Code ist weit kompakter als mit Standard XBase++ und da hast viel mehr Möglichkeiten. Wenn Du Beispiele brauchst, kann ich Dir welche senden.
Grüsse
Rudolf
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Rudolf
Wenn Du Beispiele brauchst, kann ich Dir welche senden.
Das wäre nett, im Moment kann ich mir nicht so richtig vorstellen, was da wie und wo ablaufen soll.
Wie kann ich einen Textmodus einfacher, oder anders programmieren als bisher?

Ich habe mir zwar die Demo von express++ heruntergeladen, bin aber bisher noch nicht dazu gekommen mir das näher anzusehen... :-(
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Moin,
ich habe das der Übersichtlichkeit halber mal hierher verschoben :wink:

Viele Grüße,
Martin
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Beitrag von Rudolf »

Hallo Manfred,
habe hier einen einfachen Dialog, der Vorteil ist zusätzlich, dass sich das Fenster des Dialogs automatisch anpasst.

@ 1,1 DCSAY "Seriennummer" GET ser->serien_nr SAYSIZE 12 VALID {||issernr(ser->serien_nr} WHEN {||is_ok()}
@ 2,1 DCSAY "Lager Nr." GET ser->lager SAYSIZE 12
@ 3,1 DCSAY "Datum" GET ser->datum SAYSIZE 12 POPUP {|d|DC_PopDate(d,,,,,,2)}
@ 4,1 DCSAY "Eingangsdatum" GET ser->eingang SAYSIZE 12 POPUP {|d|DC_PopDate(d,,,,,,2)}
@ 5,1 DCSAY "Auftrag" GET ser->auftrag SAYSIZE 12
@ 6,1 DCSAY "Lieferschein" GET ser->liefers SAYSIZE 12
@ 7,1 DCSAY "Rechnung" GET ser->rechnung SAYSIZE 12
@ 8,1 DCSAY "Gutschrift" GET ser->gutschr SAYSIZE 12
@ 9,1 DCSAY "Lieferdatum" GET ser->lieferdat SAYSIZE 12 POPUP {|d|DC_PopDate(d,,,,,,2)}
@ 10,1 DCSAY "Rechnungsdatum" GET ser->rechdat SAYSIZE 12 POPUP {|d|DC_PopDate(d,,,,,,2)}
DCREAD GUI FIT MODAL ADDBUTTONS TO lOk TITLE "Sereinnummer"
if lOk
......
endif

Für einen einfachen Browser:
@ .1,.5 DCBROWSE oBrowse5 ALIAS "PREIS" SIZE 120,25 DATALINK {||preis->(add_preis(2,getlist,oBrowse5))} CURSORMODE XBPBRW_CURSOR_ROW

DCBROWSECOL FIELD preis->PREIS WIDTH 8 HEADER 'Nummer' PARENT oBrowse5
DCBROWSECOL FIELD preis->vk WIDTH 8 HEADER 'Preis' PARENT oBrowse5
DCBROWSECOL FIELD preis->kunde WIDTH 8 HEADER 'Kunde' PARENT oBrowse5
DCBROWSECOL FIELD preis->KARTIKEL WIDTH 15 HEADER 'Kundenartikelnummer' PARENT oBrowse5

DCREAD GUI FIT MODAL TITLE "Browser"


Grüsse
Rudolf
Josef

Beitrag von Josef »

Also ich kann eXPress nur empfehlen. Für eine GUI Anwendung sind nur einige Änderungen im Source Code notwendig und schon hat man richtig schöne Windows-Fenster.
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

Josef hat geschrieben:Also ich kann eXPress nur empfehlen. Für eine GUI Anwendung sind nur einige Änderungen im Source Code notwendig und schon hat man richtig schöne Windows-Fenster.
da hier so von express geschwärmt wird ... habe ich mir das mal auf der homepage angeschaut .... und zwar in erster Linie wegen der Druckausgabe:

#include "dcdialog.ch"

procedure Xtest()

LOCAL oPrinter, i

USE collect
BEGIN SEQUENCE

oPrinter := DC_PRINTER():new()

IF Valtype(oPrinter) # 'O' .OR. !oPrinter:lActive
BREAK
ENDIF

FOR i := 1 TO oPrinter:nCopies

oPrinter:nPage := 1
GO TOP
DO WHILE !Eof()

oPrinter:SetFont('16.Arial')
oPrinter:AtSay(1,10,'My Collection')
oPrinter:AtSay(1,30,'Page ' + Alltrim(Str(oPrinter:nPage)))

oPrinter:BitMap( 4,10,50,20, COLLECT->bitmap1 )

oPrinter:SetFont('12.Courier New')
oPrinter:AtSay(24,10,' Description:')
oPrinter:AtSay(25,10,' Type:')
oPrinter:AtSay(26,10,' Sub-Type:')

oPrinter:SetFont('14.Terminal')
oPrinter:AtSay(24,32,COLLECT->descrip)
oPrinter:AtSay(25,32,COLLECT->type)
oPrinter:AtSay(26,32,COLLECT->sub_type)

oPrinter:Eject()

SKIP

ENDDO

NEXT

oPrinter:Destroy()

END SEQUENCE

RETURN

habe ich das richtig verstanden .. die von mir FETT gemachte Zeile im source code: oPrinter:BitMap... druckt mir eine Grafik wohin immer ich will ...

wenn ja ... Frage: welche Grafiken kann ich verwenden , wie wird die Grafik in der Datenbank abgespeichert ...

Gruß DVDbommel
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Beitrag von Rudolf »

Hallo DVDBommel,
sorry für die späte Antwort, habe zwar schon mal eine geschrieben, dürfte aber verloren gegangen sein.
Du kannst BMP, JPG und BMP problemlos darstellen.
Grüsse
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, DVDBommel.

Dein Beispiel hat allerdings so gut wie nix mit eXPress++ zu tun. Da sähe das in etwa so aus:

Code: Alles auswählen

DCPRINT ON FONT "10.Arial" TO oPrinter NAME cMyPRinter FORMSIZE 9 NOSTOP
@ 2.5,4,5.5,75 DCPRINT BOX
DCPRINT FONT "13.Arial"
@ 3,5 DCPRINT SAY cDocumentName
DCPRINT FONT "11.Arial.italic"
@ 4.2,5 DCPRINT SAY "Stand: "+dtoc(date())+", "+time()
DCPRINT FONT "9.Courier New"
@ 6.5,5 DCPRINT SAY "Hier ist Ihr Bild:"
[color=red]@ 8,5,22,58 DCPRINT BITMAP "mypicture.bmp" AUTOSCALE[/color]
DCPRINT OFF
Herzlich,
Tom
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

@ tom

welche Files müßte ich für dieses Beispiel von EXPRESS

ins *xpj mit einbinden und wie sähe die *.xpj dann aus

um das auf die Schnelle mal zu testen

GRUß
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, DVDBommel.

Was bedeutet Dein Nick eigentlich? :?:

Im PRG:

Code: Alles auswählen

#include "dcdialog.ch"
#include "dcprint.ch"
#pragma library("dclipx.lib")
Müßte m.E. reichen.
Herzlich,
Tom
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

@ TOM super ... DANKE werde es heute abend mal probieren ...

ÄHM ach ja wegen dem NICK :D

der kommt zum Teil noch aus meiner Schulzeit ( Abi 86 )

da gab es mal eine SERIE "Ich heirate eine Familie" ... und da hieß das Meerschweinchen BOMMEL ... und irgendwann kam eine weibliche Mitschülerin auf die Idee ich wäre so süß wie jene Meersau ... und da hatte ich den Spitznamen für immer weg ...

das DVD habe ich dann irgendwann mal davorgesetzt weil ich ja älter geworden bin und zwar als die DVD's aufkamen .... Da ich ein absoluter
FILM FREAK BIN ... manche meinen auch FILM SPINNER :D weil ich alle möglichen Filme auf DVD archiviere ... die ich wahrscheinlich zeitlich nie mehr anschauen kann solange ich lebe ...

deshalb DVDbommel :wink:

hoffe du bist mit meiner Erklärung zufrieden 8)

GRUß
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

@ Tom

könntest du deinen CODE von oben noch so vervollständigen ...

daß er automatisch als Drucker den STandart Drucker verwendet ...

wäre super ... DANKE

GRUß
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo DVDbommel,
Setze einfach noch ein DCPRINTOPTIONS USEDEFAULT davor, dann sollte es ohne Abfrage des Druckers auf dem Standarddrucker ausgegeben werden.
Viele Grüße
Wolfgang
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

Wolfgang Ciriack hat geschrieben:Hallo DVDbommel,
Setze einfach noch ein DCPRINTOPTIONS USEDEFAULT davor, dann sollte es ohne Abfrage des Druckers auf dem Standarddrucker ausgegeben werden.
der befehl führt bei mir zu einer Fehlermeldung ...

kann mir vielleicht doch noch mal jemand helfen...

Drucken auf STANDART DRUCKER ohne POP UP auswahlmenü des Druckers

hier nochmal der CODE: hier macht er natürlich ein POPup auf

#include "dcdialog.ch"
#include "dcprint.ch"
#pragma library("c:\alaska\exp19\bin\dclipx.lib")
procedure Main
LOCAL oPrinter, i, j
DCPRINT ON FONT "10.Arial" TO oPrinter FORMSIZE 9 NOSTOP
@ 2.5,4,5.5,75 DCPRINT BOX
DCPRINT FONT "13.Arial"
@ 3,5 DCPRINT SAY "test"
DCPRINT FONT "11.Arial.italic"
@ 4.2,5 DCPRINT SAY "Stand: "+dtoc(date())+", "+time()
DCPRINT FONT "9.Courier New"
@ 6.5,5 DCPRINT SAY "Hier ist Ihr Bild:"
@ 8,5 DCPRINT BITMAP "test.bmp" AUTOSCALE
DCPRINT FONT "11.Arial.italic"
@ 13,5 DCPRINT SAY "Stand: "+dtoc(date())+", "+time()
DCPRINT OFF
return

Gruß DVDbommel
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, DVDBommel.

Code: Alles auswählen

[color=red]LOCAL aPrintOptions := {}
DCPRINT OPTIONS to aPrintOptions USEDEFAULT[/color]
DCPRINT ON FONT "10.Arial" TO oPrinter FORMSIZE 9 NOSTOP [color=red]OPTIONS aPrintOptions[/color]
Herzlich,
Tom
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

VERY MUCHO THANK YOU :lol:

funktioniert 1A :)
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Keine Ursache. :pirate:

Übrigens empfehle ich dringend, die Xdemo bzw. Samples von eXPress++ durchzuarbeiten. Das Konzept ist wirklich simpel, jedes Beispiel ist direkt lauffähig und zeigt seinen eigenen Quellcode an. XDEMO.EXE im BIN-Verzeichnis. Wenn man das Prinzip verstanden hat, kann man eine Clipper-App innerhalb von ein paar Tagen vollständig nach GUI portieren.
Herzlich,
Tom
Antworten