Forum | | | | Thomas Freier | Irgendwie viens je pas plus. un Blattformat soll umschaltbar son (hoch/quer). Ist cela Blatt linksbündig, volonté beim change cela RTF-Éditer et qui Kopfzeile (3x Éditer) à qui vorgesehenen Stelle angezeigt. Ist cela Blatt quer et rechtsbündig wird seulement cela RTF-Éditer comment vorgesehen angezeigt et qui Kopfzeile bleibt wohin elle était. Sieht de euch einer meinen faute ou bien hat une anderen Vorschlag? |
| | | | |
| | | allô, je crois es manquer Fichiers et chez Pfadangaben comment KompilierenMarqueSéparationL_Blatt$="hoch|10|E:Verein-Thomas-XProfan11Logo.bmp|5|20|100" > De toute façon sur qui ESC-Sequenzen achten, alors doubler trop \. |
| | | | |
| | Thomas Freier | qui Dossier wird dans diesem Minimalbeispiel (wurde um 980 Zeilen reduziert= Bild, Listview, Fußzeile, usw.) pas gebraucht. je denke, avant dem Umstellen des Seitenformats, doit qui Static dans qui Position 0-0 gescrollt volonté. Den Befehl trop chercher, wird encore Zeit coûter ou bien ..... |
| | | | |
| | | veux oui seulement dire, wenns qui gens pas simple testen peut, ists avec qui Hilfestellung pas so simple. |
| | | | |
| | Thomas Freier | mon Anhang ist dans qui règle getestet. mais wenns den daran échouer sollte, ici plus bereinigt: KompilierenMarqueSéparation $H Windows.ph
$H messages.ph
$H RichEdit.ph
$U dlgmenu.pcu = menu.
var RtfDll&=usedll("RichEd20.dll")
def SetWndSize(3) ~SetWindowPos(&(1),0,0,0,%(2),%(3),~SWP_NOMOVE | ~SWP_NOZORDER)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SubClassProc
L.x&=~GetKeyState(1) & $8000
If L.x&
If ( SubClassMessage(area&, ~WM_VSCROLL) and (&sLParam=0) )
~GetWindowRect(area&,rect#)
maxy&=Long(rect#,12)-Long(rect#,4)+1
L.x&=&sWParam & $0000ffff
L.a&=1
If L.x&=~SB_LINEDOWN
isy&=8
ElseIf L.x&=~SB_PAGEDOWN
isy&=maxy&
ElseIf L.x&=~SB_LINEUP
isy&=-8
ElseIf L.x&=~SB_PAGEUP
isy&=-maxy&
ElseIf L.x&=~SB_THUMBTRACK
so!=yy!
yy!=&sWParam >> 16
isy&=-(so!-yy!)
L.a&=0
EndIf
If L.a&
yy!=yy!+isy&
If yy!<0
isy&=(isy&+(0-yy!))
yy!=0
EndIf
If yy!>(virty&-maxy&)
isy&=isy&-(yy!-(virty&-maxy&))
yy!=virty&-maxy&
EndIf
Endif
Long vs#,0=28
Long vs#,4=~SIF_ALL
Long vs#,12=virty&
Long vs#,16=maxy&
Long vs#,20=yy!
~SetScrollInfo(area&,~SB_VERT,vs#,1)
~ScrollWindow(area&,0,-isy&,0,0)
~UpdateWindow(area&)
ElseIf (SubClassMessage(area&, ~WM_HSCROLL) and (&sLParam=0))
~GetWindowRect(area&,rect#)
maxx&=Long(rect#,8)-Long(rect#,0)+1
L.x&=&sWParam & $0000ffff
L.a&=1
If L.x&=~SB_LINERIGHT
isx&=8
ElseIf L.x&=~SB_PAGERIGHT
isx&=maxx&
ElseIf L.x&=~SB_LINELEFT
isx&=-8
ElseIf L.x&=~SB_PAGELEFT
isx&=-maxx&
ElseIf L.x&=~SB_THUMBTRACK
so!=xx!
xx!=&sWParam >> 16
isx&=-(so!-xx!)
L.a&=0
EndIf
If L.a&
xx!=xx!+isx&
If xx!<0
isx&=(isx&+(0-xx!))
xx!=0
EndIf
If xx!>(virtx&-maxx&)
isx&=isx&-(xx!-(virtx&-maxx&))
xx!=virtx&-maxx&
EndIf
Endif
Long vs#,0=28
Long vs#,4=~SIF_ALL
Long vs#,12=virtx&
Long vs#,16=maxx&
Long vs#,20=xx!
~SetScrollInfo(area&,~SB_HORZ,vs#,1)
~ScrollWindow(area&,-isx&,0,0,0)
~UpdateWindow(area&)
EndIf
EndIf
Case %sMessage=~WM_COMMAND: SendMessage(%hwnd,%sMessage,&sWParam,&sLParam)
Case (SubClassMessage(area&, ~WM_HSCROLL) and (&sLParam<>0)): SendMessage(%hwnd,%sMessage,&sWParam,&sLParam)
Case (SubClassMessage(area&, ~WM_VSCROLL) and (&sLParam<>0)): SendMessage(%hwnd,%sMessage,&sWParam,&sLParam)
EndProc
Proc Blatt_Daten
Seite
Layout$=SubStr$(L_Blatt$,1,"|") .....................Blattausrichtung
Liste
L_LVfont&=Create("Font",substr$(L_Liste$,1,"|"),Round(val(substr$(L_Liste$,2,"|"))*1.7,0),0,0,0,0)
L_LVx% = abs(val(SubStr$(L_Liste$,3,"|"))*4.7) ................Randabstand links
L_LVx1% = abs(val(SubStr$(L_Liste$,4,"|"))*4.7) ...............Randabstand rechts
L_LVy% = abs(val(SubStr$(L_Liste$,5,"|"))*4.7) ................Randabstand oben
EndProc
Proc Blatt_Format
IF Layout$="hoch"
S_B! = (11906/12.2) - S_X!
S_H! = (16838/12.2) - S_Y!
MENU.CHECKMENU MENU&,2004,1
MENU.CHECKMENU MENU&,2005,0
Else
S_H! = (11906/12.2)
S_B! = (16838/12.2)
MENU.CHECKMENU MENU&,2004,0
MENU.CHECKMENU MENU&,2005,1
EndIf
virtx&= S_B!+ 20900
virty&= 500S_H!+ 30
Endproc
Proc Blatt_Basis
~GetWindowRect(area&,rect#)
maxy&=Long(rect#,12)-Long(rect#,4)+1
Long vs#,0=28
Long vs#,4=~SIF_ALL
Long vs#,12=virty&
Long vs#,16=maxy&
Long vs#,20=yy!
~SetScrollInfo(area&,~SB_VERT,vs#,1)
maxx&=Long(rect#,8)-Long(rect#,0)+1
Long vs#,0=28
Long vs#,4=~SIF_ALL
Long vs#,12=virtx&
Long vs#,16=maxx&
Long vs#,20=xx!
~SetScrollInfo(area&,~SB_HORZ,vs#,1)
EndProc
Proc Blatt_RTF
~SetWindowLong(Edit&,~GWL_EXSTYLE,0)
SetWndSize(Hdlg&,(S_B!-10,83466),((L_LVy%-70),83466))
SetWndSize(Edit&,((S_B!-10),83466),((L_LVy%-70),83466))
enablewindow Hdlg&,1
EndProc
Proc Blatt_KF Kopfzeile
SetWindowPos EditKL&=(L_LVx%),(L_LVy%-32) - 120,22;0
SetWindowPos EditKM&=((L_LVx%+122)),(L_LVy%-32) - (S_B!-L_LVx%-L_LVx1%-260),22;0
SetWindowPos EditKR&=((S_B!-L_LVx%-L_LVx1%-40)),(L_LVy%-32) - 124,22;0
SetFont EditKL&,L_LVfont&
SetFont EditKR&,L_LVfont&
SetFont EditKM&,L_LVfont&
EndProc
Proc Blatt_Status
SetText Sz&, 1, "Format: A4-"+ Layout$
SetText Sz&, 2, "Rand links: "+SubStr$(L_Liste$,3,"|")+"mm"
SetText Sz&, 3, "Rand rechts: "+SubStr$(L_Liste$,4,"|")+"mm"
EndProc
########################################################################################
Proc Mitg_Print
Declare B_dlg&, menu&
B_dlg& = @Create("Dialog",%hwnd," Listen-Report " ,10,10,1008,720)
menu&=menu.new(B_dlg&)
menu.setNiceBackground
menu.popup "Datei "
menu.appendmenu 2001,"Neu"
menu.appendmenu 2003,"Öffnen"
menu.appendmenu 2009,"Speichern"
menu.separator
menu.appendmenu 3110,"Beenden"
menu.popup "Blattformat "
menu.appendmenu 2004,"Hochformat"
menu.appendmenu 2005,"Querformat"
Statusbar
Declare L#,Sz&
Dim L#, 24
Long L#,0 = 260, 400, 540, 700 , 900,-1
Sz& = @Create("StatusWindow",B_Dlg&,"",6,L#)
SetText Sz&, 0, "Datei: neu"
SetText Sz&, 1, "Format:"
SetText Sz&, 2, "Rand links: "
SetText Sz&, 3, "Rand rechts: "
SetText Sz&, 4, ""
SetText Sz&, 5, Date$(0)
SetFont Sz&,L_font&
RTF-Blatt
declare hoehe%,font$,kursiv%,underline%,fat%
Declare Edit&,Hdlg&,File$,S_B!,S_H!
Declare L.a&,L.x&,area&, klasse$
Declare isx&,isy&,xx!,yy!,maxx&,maxy&,rect#,vs#
Declare virtx&,virty&,so!
Dim rect#,16
Dim vs#,512
Declare L_Blatt$
Declare Layout$
leere A4 hoch erzeugen, Daten sonst aus nn.RTF
L_Blatt$="hoch|"
.......Ausrichtung,Rand oben
Declare L_Liste$, L_LVfont&, L_LVx%, L_LVx1%, L_LVy%, L_LVn&, L_LVkopf$
L_Liste$ = "Arial|12|20|10|40"
.....Listenfont,Fonthöhe, Abstand links,Abstand rechts,Abstand oben
Blatt_Daten ................... Daten
Blatt_Format....................hoch/quer
Blatt_Status....................Statuszeile
klasse$="#32770"
text$=""
area&=~CreateWindowEx($20000,addr(klasse$),addr(text$),$50300000,4 ,10 ,994 ,610 ,B_dlg&,0,%hinstance,0)
Blatt_Basis
SubClass area&, 1
Lineal
Bmp1& = CREATE("hSizedPic", -1, "Rul2.bmp",1500,25,0)
Create("Bitmap", area&, Bmp1&, 0, 0)
StartPaint Bmp1&
UsePen 1,1,@RGB(0,0,0)
var x!=0
var y!= 4.60
whileloop 0,60
SELECT &Loop
CASEOF 0, 2, 4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60
Line x!,5-x!,24
OTHERWISE
Line x!,10-x!,24
ENDSELECT
x!=x!+(y!*5)
wend
UseFont "Arial",14,0,0,0,0
TextColor @RGB(0,0,255),-1
x!=0
x%=0
whileloop 30
DrawText (x!+3),1,str$(x%)
x!=x!+(y!*10)
x%=x%+1
wend
EndPaint Bmp1&
~RedrawWindow(area&, 0, 0, ~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_UPDATENOW | ~RDW_INTERNALPAINT)
RTF erzeugen
set("fastmode",1)--Für @ProcAddr (Subclassing)
Hdlg&=control("Dialog","Hauptdialog",$58000000,1,30,0,0,area&,5000,0)
Edit&=control("RichEdit20A","",$500050c4,0,0,0,0,Hdlg&,5000,0)
Blatt_RTF
Kopf- unf Fußzeile
var EditKL&=control("Edit","",$500050c4,0,0,0,0,area&,5000,0)
~SetWindowLong(EditKL&,~GWL_EXSTYLE,0)
SetText EditKL&,Date$(0)
var EditKR&=control("Edit","",$500050c4,0,0,0,0,area&,5000,0)
~SetWindowLong(EditKR&,~GWL_EXSTYLE,0)
SetText EditKR&,"Seite:"
var EditKM&=control("Edit","",$540100C1,0,0,0,0,area&,0,%hinstance,$0200)
~SetWindowLong(EditKM&,~GWL_EXSTYLE,0)
SetText EditKM&,"Mitgliederliste"
Blatt_KF Kopfzeile einfügen
setfocus(B_dlg&)
while 1
~RedrawWindow(area&, 0, 0, ~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_UPDATENOW | ~RDW_INTERNALPAINT)
WaitInput
case %key=2 : break
case (abs(%menuitem)=3110) : break
IF (abs(%menuitem)=2004) Hochformat
Layout$="hoch"
Blatt_Format
Blatt_Basis
Blatt_RTF
Blatt_KF
Blatt_Status
setfocus(B_Dlg&)
ElseIF (abs(%menuitem)=2005) Querformat
Layout$="quer"
Blatt_Format
Blatt_Basis
Blatt_RTF
Blatt_KF
Blatt_Status
setfocus(B_Dlg&)
endif
EndWhile
SubClass area&, 0
Dispose rect#
Dispose vs#
Dispose L#
DestroyWindow(B_dlg&)
DeleteObject L_LVfont&
EndProc
########################################################################################
Declare Bmp1&,Bmp2&
window 10,10 - 800,600
cls
var L_font& = @Create("Font","Verdana",16,0,0,0,0)
var old_file$ = GetDir$("@") $ProgDir
declare temp$, text$, x%
Usefont "MS Sans Serif",16,0,0,0,0
SetDialogFont 1
Mitg_Print Liste Mitglieder drucken
WaitInput
DestroyWindow(%hwnd)
FreeDLL RtfDll&
DeleteObject L_font&
Fin
|
| | | | |
| | Jörg Sellmeyer | Ist car qui pcu absolu nötig pour den Programmablauf? je serait qui aussi encore rausnehmen, um Fehlerquellen auszuschließen et cela Programme wirklich sur cela absolu Nötigste trop réduire. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.06.2009 ▲ |
| |
| | | Thomas Freier, Beitrag=52731, Zeitpunkt=21.06.2009
mon Anhang ist dans qui règle getestet.
chez mir wars so, dass Je l' Anhang öffnete et XPSE tout de suite unbekannte ESC-Sequenzen fand. So stiess je sur den Dateinamen pour cela Bild welches pas mitgeliefert était.
Zur dlgmenu.pcu est aussi une .def-Dossier quelle pas manquer sollte pour Tester si le Unit eingebunden wird.
Bien sûr wird quelqu'un, qui ensuite seulement la fois plan regarder veux "woran es hängt", gebremst.
Tjo et maintenant avons wir im Fil cela Beschriebene Phäno: [...] (6 Posts sans Aider) |
| | | | |
| | Thomas Freier | Tjo, ensuite suis je wohl fehl, si maintenant seulement encore chez XPSE konformen Minimalbeispielen (hab je en supplément irgend quelque chose übersehen?) Aider trop erwarten ist et ansonsten seulement überflüssige Posts entstehen. |
| | | | |
| | | si un faute im Voir le texte source ist, ensuite ists wohl wurscht, qui ou bien quoi den faute findet. si Dein Problem ist, dass XPSE den findet, ensuite es Du sûrement fehl.
je überprüfe mon Source doch aussi bevor je vous hochlade, une Sorgfalt qui sûrement Zeit dans Anspruch nimmt - mais qui sollte on sich calme prendre.
Beispiel zeigt mais entier bien sûr: Hättest juste XPSE pris... (ensuite gäbe es vlt. wenigstens cet (sinnlosen) Postings pas)
Es wird doch rien unmögliches verlangt, si on une prf-Dossier une exe-Dossier draufzieht um faute trop voyons - avant dem Poste.
je zumindest gebe mir souvent très viel Mühe beim Fehlerfinden, mais si ensuite im Quell-Code déjà Macken sommes qui qui l'auteur léger hätte trouver peut, ensuite empfinde je es comme Geringschätzung meiner Zeit et suis quand même so gentil et Poste qui Errors qui je erhalte - mais dans qui espoir dass qui l'auteur sich tout autor kümmert statt debattiert.
Andernfalls (vois oui) quoi utilise Dir un fil sans Aider bzw. un fil qui seulement Starthilfe braucht.
Den ganzen Müll ici peux je ensuite wieder couper si es ensuite wieder ums Thema allez.
Thomas Freier, Beitrag=52736, Zeitpunkt=22.06.2009
...chez XPSE konformen Minimalbeispielen...
Peut-être cela (pour näherer Betrachtung) une garnichtmal so schlechte concept: [...] |
| | | | |
| | Dieter Zornow | j'ai Schwierigkeiten cela Problem trop erkennen. si qui Kopfzeile à und dir, date, Mitgliederliste et page ist, modifié sich qui Position qui individuel Überschriften beim commuter sur Querformat, cela est alles wird plus auseinander geschoben. c'est pourquoi c'est moi pas bien sûr wonach je regarder sollte. cela hat rien avec Fehlern trop 1faire, car chez mir fonctionne cela Beispiel et 1 Backslash anstatt 2 ist oui encore ne...aucune faute. Es peux trop einem faute volonté, si une Escapesequenz dans Kleinschrift getroffen wird, c'est pourquoi sollte on sur 2 Backslash aussi achten. après que cela Bild mais pas dabei ist, ist es mais aussi inoffensif. peut-être wäre es nützlich genauer trop décrire, comment sich qui Positionen date Mitgliederliste et page verändern devrait. Vom regarder her sieht es chez mir normal aus comment Querformat son sollte, chez qui Umschaltung. |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 22.06.2009 ▲ |
| |
| | Thomas Freier | je weis oui, si je XPSE verwenden serait, hätte je moins Probleme et cet wohl déjà selbst gelöst. là qui Scrollsript probablement aus qui SCROLLAREA de iF stammt, so ist là aussi qui Solution im Beispiel 5. qui Code hat sich mir malheureusement encore pas erschlossen, là je plan toujours avec qui profed32.exe arbeite et wenns là jusqu'à zur *.exe fonctionne, ist es pour mich OK. Zum Problem qui Bilderreihe: 1. Start avec Format hoch 2. Format sur quer 3. Blatt à droite gescrollt 4. Format sur hoch ; qui EDIT-la ligne ist pas plus linksbündig si: 5. Format quer, cela Blatt ist à gauche gescrollt 6. Format sur hoch, qui EDIT-la ligne ist linksbündig là devrait sich cela Problem doch so beheben laisser: avant dem Formatwechsel per Befehl qui page à gauche scrollen. eh bien nagelt mich s'il te plaît pas fest sur: à gauche bzw. à droite gescrollt. là hab je déjà im club reichlich Verständnisprobleme sur Boote einlagern ou bien auslagern. Je aus Sicht eines Anglers ou bien Seglers.
qui eigentliche devoir est un Listeneditor (Bild7) trop erstellen. Zigmal angefangen et wieder verworfen. Pour un gutes "List&Label"-Beispiel dans XProfan wäre je reconnaissant. Z.Z. plane je: une Kopfbereich comme *.RTF, qui seulement sur dem Deckblatt gedruckt wird tête- et Fußzeile pour alle Druckblätter un Listview pour qui données un Listview, weil es so joli simple ist qui min. Spaltenbreite automatisch festzulegen et qui Spalten nachträglich encore déménagé volonté peut. qui données volonté dans qui *.rtf eingebettet et beim erneuten Aufruf ausgelesen. KompilierenMarqueSéparation Test seulement possible, si Leerzeichen, qui seulement ici automatisch incorporé, wieder gelöscht volonté. Nachtrag à cause de qui Einwände: qui Muster.rtf comme Muster.txt (débaptiser) angehängt. Wird sur un Multi-Éditer ausgelesen. cela insérer erfolgt aussi sur cela Multi-Éditer: qui *.rtf wird gespeichert et zeilenweise ins Multi-Éditer geladen. eh bien volonté pour la ligne deux qui Info-Zeilen eingefügt et alles comme *.rtf gespeichert. allez probablement aussi anders. |
| | | | |
| | | Thomas Freier, Beitrag=52750, Zeitpunkt=22.06.2009
Test seulement possible, si Leerzeichen, qui seulement ici automatisch incorporé, wieder gelöscht volonté.
oui c'est ca, pour solche Fälle halte je toujours [...] prêt - teste cela la fois c'est pour 1:1-Text unschlagbar. Im Beitrag seulement encore qui URL posten.
mon Scrollarea-Include [...] vois je dans obigen Codes mais pas.
Thomas Freier, Beitrag=52750, Zeitpunkt=22.06.2009
Pour un gutes "List&Label"-Beispiel dans XProfan wäre je reconnaissant.
la hâte Du une Screenshot de solch Contrôle welches Du meinst? (vlt. bräuchte je quelque chose comme oui aussi) |
| | | | |
|
répondreOptions du sujet | 2.581 Views |
Themeninformationencet Thema hat 4 participant: |