Forum | | | | Energizer | So gens, melde mich depuis langem aussi la fois wieder!
Habe maintenant la fois alles quelque chose pour mich angepasst. ca ist maintenant erstmal qui Voir le texte source pour qui Tabelle, Sauver/magasin sowie qui Berechnung sommes dans anderen Schnipseln ;) KompilierenMarqueSéparationDeclare lvdll&,text$,x&,y&,z&,listview&
Def GetSysColor(1) !"USER32","GetSysColor"
var Font& = @CREATE("FONT","NEW TIMES ROMAN",14,0,0,0,0)
$I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Window 400,400
Cls GetSysColor(15)
listview&=CreateListView(%hwnd,%hinstance,0,GetSysColor(24),-1,$31)
text$="Kurs,HJ1,HJ2,HJ3,HJ4,Endpunktzahl"
SetColumnsFromMem(listview&,addr(text$),0)
SetFont listview&,Font&
SetDialogFont Font&
Whileloop 1
SetItem listview&,"Deutsch LK"
SetItem listview&,"Mathematik LK"
SetItem listview&,"Englisch LK"
SetItem listview&,"LK 4"
SetItem listview&,"LK 5"
SetItem listview&,"GK1"
SetItem listview&,"GK2"
SetItem listview&,"GK3"
SetItem listview&,"GK4"
SetItem listview&,"GK5"
SetItem listview&,"GK6"
SetItem listview&,"Optional:"
SetItem listview&,"ZusatzGK1"
SetItem listview&,"ZusatzGK2"
SetItem listview&,"ZusatzGK3"
EndWhile
SetColumnWidth(listview&,0,100)
SetColumnWidth(listview&,1,50)
SetColumnWidth(listview&,2,50)
SetColumnWidth(listview&,3,50)
SetColumnWidth(listview&,4,50)
SetColumnWidth(listview&,5,85)
ShowListView(listview&,10,48,354,270)
InitMessages(%hwnd)
usermessages $1407, 16
While 1
waitinput
Case %UMessage = 16 : BREAK
'nach Doppellinksklick Item,
If %umessage=$1407
If Getfocus(Listview&)
IF (&uwParam=1) OR (&uwParam=2) OR (&uwParam=3) OR (&uwParam=4)'hier nur 2.Spalte(Index =1) editieren
EditManual(listview&,&uwParam, &ulParam,0)'Spaltenindex, Zeilenindex (nullbasierend)
Endif
EndIf
EndIf
Wend
messagebox("wird beendet","Programm",32)
CloseMessages(%hwnd)
freedll lvdll lass=s4 href='./../../funktionsreferenzen/XProfan/end/'>Fin
maintenant habe je plusieurs Fragen/Probleme.
1. je serait volontiers qui la ligne "optional" pas editierfähig faire, allez cela ? vous muss oui aussi pas absolument là dans qui Tabelle son, soll arrêt seulement si quelqu'un Zusatzkurse gewählt hat possible son, cet einzutragen!
2. Soll qui Tabelle pour ouvrir des Programms possible vollständig im la fenêtre trop voyons son, so dass je pas scrollen muss.
2.1 Ist es possible, dass sich qui Tabelle chez agrandir des Programmfensters aussi vergrößert?
3. après que dans den Spalten 2-5 qui Noten eingetragen wurden, brauche je une Option, um 42 FELDER avec Noten auszuwählen, quelle qui Abiturnoten ergeben devoir.
3.1 Besonders gentil/hilfreich wäre es, si gewisse Felder bereits vordefiniert et pas änderbar wären (z.B. Z.1-3, sowie Z. 6) ca serait qui verpflichtend einzubringenden Noten kennzeichnen, si quelqu'un cet pas kennt.
peut-être avez son quelques idées et Anregungen pour mich ;)
LG et une schönen 1. Advent encore, Peter |
| | | | |
| | Julian Schmidt | Energizer (01.12.13)
1. je serait volontiers qui la ligne "optional" pas editierfähig faire, allez cela ? vous muss oui aussi pas absolument là dans qui Tabelle son, soll arrêt seulement si quelqu'un Zusatzkurse gewählt hat possible son, cet einzutragen!
Bien sûr allez cela, du musst simple seulement verhindern cela il pour cette la ligne qui Edierfunktion aufruft, etwa so... KompilierenMarqueSéparation Energizer (01.12.13)
2. Soll qui Tabelle pour ouvrir des Programms possible vollständig im la fenêtre trop voyons son, so dass je pas scrollen muss. 2.1 Ist es possible, dass sich qui Tabelle chez agrandir des Programmfensters aussi vergrößert?
cela Skalieren des Listviews avec qui Fenstergröße ist am einfachsten sur %WM_Paint lösbar. ici la fois un Beispiel avec einem mehrzeiligen Editierfeld. KompilierenMarqueSéparationCLS
Set("AutoPaint", 0)
Var edit&=Create("MultiEdit",%hwnd,"Ich bin skallierbar",10,10,width(%hwnd)-20,height(%hwnd)-20)
While 1
WaitInput
If %wmPaint
SetWindowPos edit&=10,10 - width(%hwnd)-20,height(%hwnd)-20
EndIf
Energizer (01.12.13)
3. après que dans den Spalten 2-5 qui Noten eingetragen wurden, brauche je une Option, um 42 FELDER avec Noten auszuwählen, quelle qui Abiturnoten ergeben devoir.
exposition dir ici trop fois le whileloop Boucle à...
Energizer (01.12.13)
3.1 Besonders gentil/hilfreich wäre es, si gewisse Felder bereits vordefiniert et pas änderbar wären (z.B. Z.1-3, sowie Z. 6) ca serait qui verpflichtend einzubringenden Noten kennzeichnen, si quelqu'un cet pas kennt.
quoi veux du oui c'est ca?
Salut
Julian |
| | | | |
| | Energizer | Bzgl. 1.)
j'ai mehrer Versionen ausprobiert, la fois ist gar rien passiert, teils était zwar qui la ligne optionnel pas editierbar, pour mais qui komplette 1. Spalte et teils était seulement la première Spalte dans la ligne 11 (qui dans qui "optional" steht) gesperrt, qui spalten derrière elle mais quand même editierbar.
Nochmal zum Verständnis: j'ai cet Tabelle. là soll qui komplette erste Spalte gesperrt son! Zusätzlich soll également qui GESAMTE la ligne 11 (bzw. 12), alors qui avec dem Text "Optional" gesperrt volonté. Ist cela realisierbar et si oui, à quel Stelle muss je là qui la ligne insérer?
2.
Tut mir Leid mais j'ai ici überhaupt je n'en sais rien, comment je cela Verwenden soll. j'ai versucht versch. Werte ou bien Schleifen trop prendre, hatte Fehlermeldungen et "nicht-plus-beendbare" Programme, mais malheureusement aucun skalierte Tabelle Habe es nichtmal hinbekommen qui Tabelle allgemein Größer trop faire, dass wenigstens si je im Code un größeres "Window" einstelle, qui Tabelle là komplett angepasst wäre
3. ah oui, whileloop, bien là hätte je selber sur elle venons peut. Sry là stand je simple sur dem Schlauch ... quelquefois sommes es qui simplen Dinge ;)
3.1 Folgendermaßen: chez einer Minimalbelegung aller Fächer hätte on am Ende des Jahres 44 Semesternoten, aus denen sich qui Endpunktzahl berechnen serait (11 Kurse * 4 Semester) (naturellement sans Abiklausuren).
en peut mais seulement 42 Noten dans den Endpunktestand sur dem Abiturzeugnis eingebracht volonté, dass est 2 Noten tomber weg (logischerweise wählt on qui schlechtesten). Belegt on maintenant encore Zusatzkurse, hat on encore plus Noten zur Disposition, d.h. il peut am Ende aussi plus schlechte Noten rausfallen laisser.
cependant gibt es quelques Fächer, comment z.B. qui Abiturprüfungsfächer, qui zwingend dans qui Endzensur eingebracht volonté doit. Vermutlich kennt cependant pas chacun cet verpflichtend einzubringenden Kurse. en supplément wäre es eh bien très hilfreich, si sous den 42 auszuwählenden Semesternoten, bereits qui markiert wären, qui zwingend eingebracht volonté doit et cet pas modifié (ausgeklickt) volonté peut.
était ca verständlich, sonst mach je vite nen Bild ou bien iwas um es trop verdeutlichen? |
| | | | |
| | Thomas Freier | peut-être hilft cet Beispiel plus: KompilierenMarqueSéparation $H windows.ph
$I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
Cls
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
Var bb& = Create("Button",%hwnd,"Ende",0,0,0,0)
var listview&=CreateListView(%hwnd,%hinstance,0,$FFFFFF,-1,$31)
InsertColumn listview&,"1",80,0
InsertColumn listview&,"2",80,0
InsertColumn listview&,"3",80,0
InsertColumn listview&,"4",80,0
InsertColumn listview&,"5",80,0
InsertColumn listview&,"6",80,0
Whileloop 10
AddString(listview&,"Test|||||")
wend
var dlg&=%hwnd
Declare _dlgw&,_dlgh&, _odlgw&, _odlgh&, Ende%,bereich#,S&,Z&,y&
dim bereich#,320
_odlgw&=width(dlg&)
_odlgh&=height(dlg&)
setwindowpos bb&=(_odlgw&-70),5 - 60,20;0
ShowListView(listview&,10,30,(_odlgw&-20),(_odlgh&-40))
InitMessages(%hwnd)
WhileNot Ende%
WaitInput
case %key=4:Grid_do
case Getfocus(bb&): Ende%=1
y&=GetControlParas(bereich#)
S&=Long(bereich#,4)'Spalte
Z&=Long(bereich#,8)'Zeile
If y&=2'rechter Mausknopf wurde gedrück
Ifnot S&=1
IfNot Z&=3
EditManual(Listview&,S&,Z&,0)
EndIf
EndIf
EndIf
Wend
proc Grid_do
_dlgw&=width(dlg&)
_dlgh&=height(dlg&)
if ( ( _odlgw&<>_dlgw& ) or ( _odlgh&<>_dlgh& ) )
_odlgw&=_dlgw&
_odlgh&=_dlgh&
setwindowpos bb&=(_odlgw&-70),5 - 60,20;0
setwindowpos listview&=10,30 - (_odlgw&-20),(_odlgh&-40);0
endif
endproc
dispose bereich#
CloseMessages(%hwnd)
='./../../funktionsreferenzen/XProfan/freedll/'>freedll lvdll&
|
| | | | |
| | Thomas Freier |
2. Soll qui Tabelle pour ouvrir des Programms possible vollständig im la fenêtre trop voyons son, so dass je pas scrollen muss.
là hilft seulement Berechnen de Hauteur et max. Breite des Zeilen- bzw. Headertextes : [...] ensuite den Font (Hauteur,ggf. eng) et qui erforderliche Spaltenbreite festlegen et testen. |
| | | | |
| | Energizer | vielen Dank Thomas!
tu as mir très geholfen, habe maintenant déjà presque alles chez mir erweitert, encore un paire Zeilen mais cela peux je aussi encore später faire!
avec cela wären Problem 1 et 2 gelöst !
maintenant devrait je seulement encore quoi pour Punkt 3 überlegen . |
| | | | |
| | Thomas Freier | Ab XProfan 11 nehme je qui Gridboxfunktionen et si nötig qui aus qui Listview.dll. Zeilen vorgeben z.B.: KompilierenMarqueSéparationAddString(listview&,"Deutsch LK|fest|fest|fest|fest")
AddString(listview&,"Mathematik LK|fest|fest|fest|fest")
AddString(listview&,"Englisch LK|fest|fest|fest|fest")
AddString(listview&,"LK 4")
AddString(listview&,"LK 5")
AddString(listview&,"GK1|fest|fest|fest|fest")
AddString(listview&,"GK2")
AddString(listview&,"GK3")
AddString(listview&,"GK4")
AddString( listview&,"GK5")
AddString(listview&,"GK6")
AddString(listview&,"Optional:")
AddString(listview&,"ZusatzGK1")
AddString(listview&,"ZusatzGK2")
AddString(listview&,"ZusatzGK3")
là probablement Zensuren, d.h., seulement payons et Trenner eingegeben volonté devoir, müssten qui Éditer-Felder selbst erzeugt volonté. Siehe Beispiel: Eigene_Eingaben. Weiterschalten per TAB ist peut-être pas absolument erforderlich. Beispiel pour Éditer avec payons: [...] ou bien KompilierenMarqueSéparationDef GetSysColor(1) !"User32","GetSysColor"
cls GetSysColor(15)
UseFont Arial,15,0,0,0,0
SETDIALOGFONT 1
CreateText(%hwnd,"num. Eingabe max.: nn.nn",30,120,200,22)
var Ed&=Créer("Edit",%hwnd,»,30,165,80,20)
@sendmessage(Ed&,$00C5,3,0)'et sur 3 se mettre (n.n) begrenzt
SetFocus(Ed&)
Tandis que 1
WaitInput
cas %clé=2 : BREAK
cas GETFOCUS(Ed&): NUMWERT Ed&,1'Handle, marque vorm Komma
Endwhile
Fin
Proc NUMWERT' AUSWERTUNG sur marque et se mettre
Paramètres ED.N&,ED.N%
var a$="abcdefghijklmnopqrstuvwxyz"
a$=a$+Upper$("abcdefghijklmnopqrstuvwxyz")
a$=a$+"!§$%&/()=?''*':;,-_²³{[]}\^°<>|++-"
var c$=»
WhileLoop len(a$)
c$ = MID $(a$,&Boucle,1)' c$= qui nte Stringteil
Settext ED.N&,@Translate$(gettext$(ED.N&),c$,»)' unzulässige effacer
Settext ED.N&,@Translate$(gettext$(ED.N&),"..",".")' doppelte effacer
Endwhile
a$=$ Trim(gettext$(ED.N&))
WhileLoop ED.N%+1
@Match$("~.", a$)
Si (%MatchPos>0) AND (%MatchPos<ED.N%+1)
a$=" "+a$' Leerzeichen ou bien führende zéro
EndIf
Endwhile
Si len(a$)=ED.N%
cas @IsKey(8):a$=left$(a$,len(a$))
casenot @IsKey(8):a$=left$(a$,ED.N%)+"."
EndIf
SetText ED.N&,a$
sendmessage(ED.N&,$00B1,len(gettext$(ED.N&)),-1)'Cursor à l' Ende
ENDPROC
|
| | | | |
|
répondreOptions du sujet | 6.261 Views |
Themeninformationencet Thema hat 3 participant: |