Autor | Thema: PROFAN 7.5: Neue öffentliche Beta! (u.a. Druckerkontext!) | | Datum:11.07.01 00:41 
(rgh-soft@t-online.de) | |
Neben einigen Bugfixes (Stringlänge bei GetString$, etc.) wurde testweise die Möglichkeit eingebaut, den Druckerkontext auszulesen und bewußt zu setzen. Ich bitte wie immer um reges Testen! Die Adresee ist gleichgeblieben:
http://www.profan.de/prof75.zip
|
| | Datum:11.07.01 01:01 
(webmaster@rokosoft.de) | |
Hi Roland
gerade ist mir noch was aufgefallen:
AddString(box%,string$)
müsste doch ohne @ gehen ab 7.0 ???
geht aber bei mir nicht - muss immer noch
@AddString(box%,string$) schreiben dann klappt es.
Es kommt keine Fehlermeldung, aber ohne @ wird nix reingeschrieben? Mit direkt und alles OK ?
Rolf
|
| | Datum:11.07.01 10:32 
(rgh-soft@t-online.de) | |
Hallo Rolf,
in den Fällen wo es eine Funktion und einen Befehl gleichen Namens gibt, muß entweder die Funktion in einer Zuweisung oder Formel stehen oder aber zur Unterscheidung das @ davor stehen. Konkret: ADDSTRING ist auch ein Befehl, um die Listboxliste zu füllen. Um die Funktion ADDSTRING zu verwenden solltest du z.B. eine der folgenden Varianten wählen:
LET V& = ADDSTRING(...
oder
@ADDSTRING(
Sobald ADDSTRING am Anfang der Zeile steht (mit Leerzeichen dahinter), gehen Interpreter und Compiler natürlich davon aus, daß der Befehl gemeint ist.
|
| | Datum:11.07.01 11:16 
(webmaster@rokosoft.de) | |
Danke Roland,
war mir so nicht klar, naja wieder mal etwas gelernt.
Aber ich glaube, lieber mal was sagen wo man falsch liegt, als einen evtl. Bug zu unterdrücken. Richtig Roland :)
Danke
|
| | | Datum:11.07.01 14:05 
(apollo@rw-net.de) | |
Gehört nicht unbedingt hierher, aber weil´s gerade angesprochen wurde:
Auch wenn es seit Version 5 (?) nicht mehr nötig ist, das @ vor Funktionen zu setzen, habe ich es mir doch angewöhnt, es stets mitzuschreiben.
Erstens vermeidet man damit solche Probleme wie Rolf sie hatte ;-) und ausserdem fördert es die Übersichtlichkeit etwas. Zumindest bei mir. *g*
gruss, Rene
http://www.rw-net.de
|
| | Datum:17.07.01 22:33 
(NSp_ware@t-online.de) | |
Hallo Roland,
habe mal versucht, mit den Erweiterungen bezüglich Druckerkontex etwas anzufangen - ohne Erfolg.
-------------------------------------------------
Hier die diesbezügliche Stelle aus Deiner Ließmich.txt.
Druckerkontext (nur testweise)
--------------
SET("PDC",<Wert>)
%PDC
Über die Systemvariable %PDC läßt sich der Druckerkontext auslesen (ergibt natürlich nur
nach STARTPRINT einen sinnvollen Wert).
Mit der Setfunktion, kann der Druckerkontext auf einen beliebigen Wert gesetzt werden. Ist auch
nur nach STARTPRINT sinnvoll.
-------------------------------------------------
Danach dachte ich, daß es möglich sein müßte, mit PrintDlg (API) einen Druckerkontex zu ermitteln und diesen dann mit dem neuen Befehl SET("PDC", WERT) sozusagen in PROFAN einzusetzten. Die Sytemvariable %PDC soll dann den eingesetzten Kontex wieder auslesen.
Es funktioniert aber bei mir nicht. Wenn der SET-Befehl innerhalb STARTPRINT/ENDPRINT steht, wird gar keine Seite gedruckt. Das Programm bricht ab.
Mache ich etwas falsch, bzw. wie hast Du Dir das gedacht? Ich arbeite mit WIN98 und 24-Nadeldrucker.
MfG
Norbert
CLS
DEF PrintDlg(1) ! "COMDLG32", "PrintDlgA"
DECLARE l_erfolg&, printdlgstru#, l_hDCPrt&
DIM printdlgstru#, 66
LONG printdlgstru#, 0 = 66
LONG printdlgstru#, 4 = %HWND
LONG printdlgstru#, 8 = 0
LONG printdlgstru#, 12 = 0
LONG printdlgstru#, 16 = 0
LONG printdlgstru#, 20 = $1C010C
WORD printdlgstru#, 24 = 0
WORD printdlgstru#, 26 = 0
WORD printdlgstru#, 28 = 0
WORD printdlgstru#, 30 = 0
WORD printdlgstru#, 32 = 1
LONG printdlgstru#, 34 = 0
LONG printdlgstru#, 38 = 0
LONG printdlgstru#, 42 = 0
LONG printdlgstru#, 46 = 0
LONG printdlgstru#, 50 = 0
LONG printdlgstru#, 54 = 0
LONG printdlgstru#, 58 = 0
LONG printdlgstru#, 62 = 0
LET l_erfolg& = PrintDlg (printdlgstru#)
IFNOT (l_erfolg& = 0)
'-> wenn PrintDlg mit OK abgeschlossen wurde und erfolgreich war
LET l_hDCPrt& = LONG(printdlgstru#, 16)
MESSAGEBOX STR$(l_hDCPrt&), "Drucker-Kontex :", 32
ELSE
'-> PrintDlg wurde abgebrochen oder war nicht erfolgreich
LET l_hDCPrt& = 0
MESSAGEBOX "PrintDlg konnte keinen Drucker-Kontex liefern !", "Achtung :", 32
ENDIF
DISPOSE printdlgstru#
STARTPRINT
SET("PDC", l_hDCPrt&)
DRAWTEXT 50, 50, STR$(l_hDCPrt&)
DRAWTEXT 50, 80, STR$(%PDC)
ENDPRINT
END
|
| | Datum: 22.07.01 23:19 
(mail@stschnell.de) | |
Hallo Roland,
auch ich habe die Erweiterung getestet, u. a. auch mit dem Programm von Norbert bzw. dem Teil der Kontextermittlung via WinAPI. Leider konnte ich keine durchgehenden Ergebnisse ermitteln, sprich wenn in einem Programmlauf das WinAPI den Wert x ermittelt, dann ermittelt die Variable %PDC den Wert y, obwohl sie doch wohl in einem Programmlauf identisch sein sollten, wenn nicht sogar müssen. Insgesamt hatte ich etwas Anwendungsprobleme, diese Variable so zu verwenden. Ich denke es ist sinniger, diese nur im Zusammenhang mit einer integrierten Funktion anzubieten, mit der der Druckerkontext aufgerufen werden kann.
Ich hoffe ich konnte etwas weiterhelfen...
Tschüss
Stefan
|
|
|