| |
|
|
H.Brill | Hallo Frank, Gibt es eine Möglichkeit, einzelne Linien auszublenden ? Sollte dann in etwa so aussehen (Anhang):
Wenn mans auch später so drucken könnte, wärs ideal. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 27.05.2007 ▲ |
|
|
|
|
Frank Abbing | Tut mir leid, Heinz,
diese Möglichkeit sehe ich nicht. |
|
|
| |
|
|
|
| Nuja! Du könntest Uwes SortierkriteriumBeispielcode für Listviews benutzen! Nicht das Selbe - aber ein Effekt der Dir entgegenkommen sollte! (nicht wörtlich nehmen *g*) |
|
|
| |
|
|
|
Frank Abbing | Diese Dinge funktionieren jedoch erst ab WindowsXP. Ich denke, ich werde solche Neuerungen mit in die Listview.dll aufnehmen. |
|
|
| |
|
|
|
H.Brill | Danke für die Antworten. Wäre zu schön gewesen, besonders wegen der Übersichtlichkeit der Datensätze. Was mir noch einfällt : Ich könnte die Kunden in ein Treeview (.dll) setzen und die dazugehörigen Daten (hier 1 Kiste, Limo, Preis) in ein LV schreiben, so wie in Franks Demo - Beispielen. Aber dann hab ich das Problem mit dem Drucken. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 27.05.2007 ▲ |
|
|
|
|
ByteAttack | Naja! Es gibt da noch ne gefakte Möglichkeit. Wenn es klar ist, das es nur drei Zeilen sind, so schalte die Gitternetzlinien einfach aus, und füge eine Hintergrundgrafik ein. |
|
|
| |
|
|
|
Thomas Freier | Eine Übersichtlichkeit des Kundenwechsels ist ja schnell durch blockweisen Farbwechsel erreichbar, und die Druckroutine hatte bei meinem Beispiel mit Abfrage und Druck des MEMO-Feldes kaum mehr als 200 Zeilen. Würden heute sicher wegen der Ausrichtung etwas mehr werden. |
|
|
| |
|
|
|
ByteAttack | OK! Ich habe jetzt mal ein Beispiel reingestellt mit kompletten Sourcecode in der Zip. KompilierenMarkierenSeparieren $P*
USERMESSAGES 16
Declare lvdll&,exit%,liste&,freelist&,text$,lvfont&,idx%,idx2%,Kalender&,HeuteWT$,DateTimePick#,WahlDatum$,IstDatum$,X&
Def GSC(1) !USER32,GetSysColor
Def GetWindowLong(2) !USER32,GetWindowLongA
Def SetWindowLong(3) !USER32,SetWindowLongA
Def SetWinPos(7) !USER32,SetWindowPos
DEF DTP_GETSYSTEMTIME(2) SendMessage(&(1),4097,0,&(2))
Dim DateTimePick#,20
lvdll&=usedll($ProgDir+Listview.dll)
$I ListView_Include.inc
Register(123456) Oder so ähnlich ;-)
lvfont&=Create(Font,Verdana,14,0,1,0,0)
$I date.inc
##### Ermittelt den Wochentag zum Datum #####
Proc Wochentag
Parameters datum$
Declare tag$,monat$,jahr$
tag$=substr$(datum$,1,.)
monat$=substr$(datum$,2,.)
jahr$=substr$(datum$,3,.)
Return fdate(%l,mktime(0,0,0,monat$,tag$,jahr$))
EndProc
##### ListView #####
Proc Liste
liste&=CreateListview(%hwnd,%hinstance,0,-1,-1,$400)
InsertColumn liste&,,52,0
InsertColumn liste&,HeuteWT$,200,0
freelist&=SetLineHeight(liste&,22)
DestroyImageList(freelist&)
text$=$ProgDir+lvback.gif
SetBackImage(liste&,addr(text$),1)
WhileLoop 48
SetItem liste&,,
EndWhile
SetFont liste&,lvfont&
ShowListview(liste&,10,10,273,623)
SelectLine(liste&,41,3) Scrollt runter bis 08:00 Uhr ganz oben ist.
SelectLine(liste&,16,3) Selektiert 08:00
InitMessages(%hwnd)
EndProc
##### Kalender #####
Proc Kal
Kalender&=Control(SysMonthCal32,,$54000004,290,10,180,620,%hwnd,2000,%hinstance)
SetWindowLong(Kalender&,-20,Or(GetWindowLong(Kalender&,-20),512))
SetWinPos(Kalender&,0,0,0,0,0,$023)
SetFont Kalender&,lvfont&
SendMessage(Kalender&,$100A,4,rgb(255,255,210))
SendMessage(Kalender&,$100A,5,rgb(125,125,125))
Endproc
##### Fügt ggf. eine Null vor dem Tag oder Monat #####
Proc NullZumDatum
Parameters Datum$
Declare Tag$,Monat$,Jahr$,NeuDatum$
Tag$=substr$(datum$,1,.)
Monat$=substr$(datum$,2,.)
Jahr$=substr$(datum$,3,.)
Case Len(Tag$)=1:Tag$=0+Tag$
Case Len(Monat$)=1:Monat$=0+Monat$
NeuDatum$=Tag$+.+Monat$+.+Jahr$
Return NeuDatum$
EndProc
##### Wählt das Datum, und setzt es als Spaltenüberschrift
Proc WahlDatum
Declare Datum#,Colum$
Wochentag IstDatum$
Colum$=$(0)+, +IstDatum$
Dim Datum#,256
String Datum#,0=Colum$
SetColumnName(liste&,Datum#,1)
Dispose Datum#
EndProc
##### Hauptfenster #####
Proc Hauptfenster
SetTrueColor 1
WindowStyle 26
WindowTitle ListView-Terminkalender
Window ((%maxX/2)-242),((%maxY/2)-335)-485,670
CLS GSC(15)
EndProc
##### Hauptprogramm #####
Hauptfenster
Wochentag Date$(0)
HeuteWT$=$(0)
Liste
Kal
##### Hauptprogrammschleife #####
DTP_GETSYSTEMTIME(Kalender&,DateTimePick#)
IstDatum$=Str$(word(DateTimePick#,6));.;Str$(word(DateTimePick#,2));.;Str$(word(DateTimePick#,0))
NullZumDatum IstDatum$
IstDatum$=$(0)
WhileNot exit%
GetMessage
Case %Umessage=16:exit%=1
DTP_GETSYSTEMTIME(Kalender&,DateTimePick#)
WahlDatum$=Str$(word(DateTimePick#,6));.;Str$(word(DateTimePick#,2));.;Str$(word(DateTimePick#,0))
NullZumDatum WahlDatum$
WahlDatum$=$(0)
ifnot WahlDatum$=IstDatum$
IstDatum$=WahlDatum$
WahlDatum
endif
Wend
CloseMessages(%hwnd)
$I ListView_Dispose.inc
Dispose DateTimePick#
|
|
|
| |
|
|
|
Frank Abbing | Toll, gewusst wie... |
|
|
| |
|
|
|
Jac de Lad | Wow! |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 30.10.2007 ▲ |
|
|
|
|
ByteAttack | So nun ein Update. Jetzt habe ich das selbe Spiel nochmal gemacht, mit dem Unterschied, das wenn sich die Fenstergröße ändert, sich auch die Spaltenbreit sowie die Hintergrundgrafik mit verändert. Ach, was rede ich da! Einfach Downloaden und schauen... |
|
|
| |
|
|
|
Jörg Sellmeyer | Ist doch immer wieder erstaunlich, was mit ein bischen Hirnschmalz alles möglich ist. Sehr Cool! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 30.10.2007 ▲ |
|
|
|