Forum | | | | Energizer | allô liebes forme ;), suis eh bien aussi récente dabei et à qui travail avec XProfan 11.2 Free (c'est doch qui aktuellste ou bien?)
Habe déjà un peu herumgestöbert et dank qui Aider vom XLehrbuch de Dietmar Horn aussi déjà kleinere Programme geschafft.
eh bien soll je pour une zwölfte super une Abiturrechner programmieren. cette soll so marcher, dass on alle Fächer inkl. Punkte eingibt et qui Abirechner anhand div. Vorgaben (Abiprüfungsfächer volonté 5-matière gewertet, chez l'élection einer Zusatzprüfung 4-matière etc.) qui Endpunktzahl errechnen.
eh bien suis je am Überlegen, comment on cela avec qui Eingabe am besten régulariser sollte. Am liebsten wäre mir oui eigentlich une Tabelle (ähnlich Excel) dans qui qui Anwender simple selber Werte eingebn peux. là je pour direct rien trouvé habe, voulais je cela ganze sur une le détour faire, indem qui Anwender dans vordefinierten CheckBoxen sa Fächer auswählt et cet ensuite sur qui Tabelle übertragen volonté. Ist es dabei possible trop définir, comment viele Checkboxen gewählt volonté dürfen?
peut-être peux mir quelqu'un de euch chez qui Solution cet Problems aider, bzw. mir sogar une encore bessere Solution pour qui Implementierung qui Userdaten dans mon Programme proposer.
Mfg Peter |
| | | | |
| | Julian Schmidt | Energizer (25.08.13)
eh bien suis je am Überlegen, comment on cela avec qui Eingabe am besten régulariser sollte. Am liebsten wäre mir oui eigentlich une Tabelle (ähnlich Excel) dans qui qui Anwender simple selber Werte eingebn peux. là je pour direct rien trouvé habe, voulais je cela ganze sur une le détour faire, indem qui Anwender dans vordefinierten CheckBoxen sa Fächer auswählt et cet ensuite sur qui Tabelle übertragen volonté.
prends pour doch simple Choiceboxen/Auswahllisten. et bau deine Tabelle z.B. ähnlich comment ici sur [...] . Pour qui Beschriftung peux du z.B. CreateText verwenden.
Alternativ könntest du aussi qui Listview.dll[...] verwenden. cet Tabelle serait ensuite qui optique et den Feeling de Excel näher venons. |
| | | | |
| | Energizer | So erstmal merci pour deinen Hinweis. Tut mir Leid, dass je maintenant seulement antworte hatte quelque chose à Ohren ;) Hab maintenant aussi déjà beide Varianten probiert et quelque chose avec cela rumgespielt. cependant ist qui l'affaire avec qui Listview.dll pour mich überzeugender, déjà seul weil dass Programme oui pas seulement pour mich ist, mais aussi pour un paire Schüler ;)
comment kriege je cela maintenant avec qui Tabelle so hin, je werde aus qui Aider malheureusement pas malain ^ ^
alors je hatte mir gedacht, dass mon Felder oui eigentlich alle per main eintragbar son devoir, sauf qui dernier Spalte dans qui lediglich berechnet wird. en supplément J'ai eu mir dans qui Listview.dll Aider qui Funktion EditManual angeschaut. cependant ca sera tout pour mich absolutes Neuland, pourrait mir cela peut-être quelqu'un expliquer ?
lg Energizer |
| | | | |
| | Thomas Freier | Beim Einsatz qui Listview.dll gibt es trois Opportunités qui Items trop éditer. avec EnableEdits(listview&,1+4) . Pour Aktivierung peut alle Items sur qui Pfeiltasten angesteuert et editiert volonté. avec SelectColumnEdits(listview&,addr(text$)) peut Spalten ausgeschlossen volonté. 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)
'Spalten erstellen
text$="A,B,C"
SetColumnsFromMem(listview&,addr(text$),0)
SetFont listview&,Font&
SetDialogFont Font&
'Leerzeilen erstellen
Whileloop 5
SetItem listview&,"","",""
EndWhile
'Spaltenbreite
SetColumnWidth(listview&,0,100)
SetColumnWidth(listview&,1,100)
SetColumnWidth(listview&,2,100)
ShowListView(listview&,10,48,354,270)
InitMessages(%hwnd)
EnableEdits(listview&,1+4)'Item editierbar nach Doppellinksklick
UserMessages 16
While 1
waitinput
Case %UMessage = 16 : BREAK
Wend
messagebox("wird beendet","Programm",32)
setfocus(%hwnd)
DestroyWindow(%hwnd)
CloseMessages(%hwnd)
freedll lvdll&
Fin
avec EditManual(listview&,&uwParam, &ulParam,0) wird seulement im gewähltem Item un Éditer-champ erstellt. KompilierenMarqueSéparationDéclarer 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
Fenêtre 400,400
Cls GetSysColor(15)
listview&=CreateListView(%hwnd,%HINSTANCE,0,GetSysColor(24),-1,$31)
text$="A,B,C"
SetColumnsFromMem(listview&,addr(text$),0)
SetFont listview&,Font&
SetDialogFont Font&
Whileloop 5
SetItem listview&,»,»,»
Endwhile
SetColumnWidth(listview&,0,100)
SetColumnWidth(listview&,1,100)
SetColumnWidth(listview&,2,100)
ShowListView(listview&,10,48,354,270)
InitMessages(%hwnd)
usermessages $1407, 16
Tandis que 1
waitinput
Cas %UMessage = 16 : BREAK
'pour Doppellinksklick Item,
Si %umessage=$1407
Si Getfocus(Listview&)
IF &uwParam=1'ici seulement 2.Spalte(index =1) éditer
EditManual(listview&,&uwParam, &ulParam,0)'Spaltenindex, Zeilenindex (nullbasierend)
Endif
EndIf
EndIf
Wend
messagebox("wird beendet","Programm",32)
CloseMessages(%hwnd)
freedll lvdll&
Fin
ensuite encore qui Possibilité alles selbst dans qui main prendre um z.B. aussi un Éditer avec besonderen Eigenschaften(z.B.:seulement payons), une Auswahlbox, un "DateEdit", usw., beim Item trop platzieren, et ggf. per TAB qui Items trop échanger. KompilierenMarqueSéparationDéclarer bereich#,lvdll&,text$,x&,y&,z&,listview&
Def GetSysColor(1) !"User32","GetSysColor"
Faible bereich#,256
var Font& = @CREATE("FONT","NEW TIMES ROMAN",14,0,0,0,0)
$I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Fenêtre 400,400
Cls GetSysColor(15)
listview&=CreateListView(%hwnd,%HINSTANCE,0,GetSysColor(24),-1,$31)
text$="A,B,C"
SetColumnsFromMem(listview&,addr(text$),0)
SetFont listview&,Font&
SetDialogFont Font&
Whileloop 5
SetItem listview&,»,»,»
Endwhile
SetColumnWidth(listview&,0,100)
SetColumnWidth(listview&,1,100)
SetColumnWidth(listview&,2,100)
ShowListView(listview&,10,48,354,270)
InitMessages(%hwnd)
usermessages $1407
AddHotKey 7001, 13, 0'Retour
AddHotKey 7002, 9, 0'TAB à gauche
AddHotKey 7003, 9, 2'TAB à droite
AddHotKey 7009, 27, 0
Tandis que 1
waitinput
Cas %clé=2:BREAK
cas %umessage=$1407: EDIT &uwParam, &ulParam'Spaltenindex ,'Zeilenindex (nullbasierend)
Wend
CloseMessages(%hwnd)
freedll lvdll&
Fin
Proc Éditer
Paramètres spalte%,la ligne%
Déclarer Ede_del2&
INHALT
@Créer("Tooltip", %hWnd ,Ede_del2& ,"Esc=Abbruch, Wert avec Enter prendre.")
SetFocus(Ede_del2&)
Tandis que 1
WaitInput
cas iskey(27):BREAK'Abbruch ESC
Si MenuItem(7001) OU (%MouseKey=2)'Sauver: Enter ou bien rechte Bouton de la souris gedrückt
SetText Listview&,la ligne%,Spalte%,$ Trim(GetText $(Ede_del2&))
BREAK
ElseIf MenuItem(7002)'TAB avant
SetText Listview&,la ligne%,Spalte%,$ Trim(GetText $(Ede_del2&))
cas Spalte%<GetColumns(Listview&)-1: inc Spalte%
INHALT
ElseIf MenuItem(7003)'TAB rück
SetText Listview&,la ligne%,Spalte%,$ Trim(GetText $(Ede_del2&))
cas Spalte%>0 : dec Spalte%
INHALT
EndIf
Ifnot getfocus(Ede_del2&)' Éditer verliert den Concentrer, Eingabe verwefen
BREAK
EndIf
Wend
DestroyWindow(Ede_del2&)
setfocus(%hwnd)
ENDPROC
Proc le contenu
DestroyWindow(Ede_del2&)
Claire bereich#
Text$=$ Trim(GetText $(Listview&,la ligne%,Spalte%))'alter le contenu
GetOwnControlParas(bereich#,Listview&,Spalte%,la ligne%)
var opx&=Long(bereich#,12)'X Offset
var opy&=Long(bereich#,16)'Y Offset
var opb&=Long(bereich#,20)'Breite
var oph&=Long(bereich#,24)'Hauteur
Ede_del2&= @Créer("Edit", Listview& ,Text$,opx&,opy&,opb&,oph&)
SetFont Ede_del2&,Font&
SetFocus(Ede_del2&)
SendString(Ede_del2&,"+ ({FIN})")'Text Marque et Cursor à l' Ende
ENDPROC
|
| | | | |
| | H.Brill | ici la fois un kleines Beispiel de mir. là peux du dir oui quoi raussuchen: KompilierenMarqueSéparation $I Listview_Funktionen.inc
Declare hd%, ende%, lvdll&, Grid&, edits$
lvdll&=usedll("Listview.dll")
edits$ = "1111"' alle Spalten editierbar
hd% = @Create("Window",%HWnd,"Editieren mit rechter Maustaste",10,10,800, 300)
ende% = @Create("Button", hd%, "Ende", 20, 10, 120, 20)
Grid&=CreateListview(hd%,%hinstance,0,$ffffff,-1,$31)
' Spalten definieren
InsertColumn(Grid&, "Name", 220, 0)
InsertColumn(Grid&, "Wohnort", 150, 0)
InsertColumn(Grid&, "Straße", 150, 0)
InsertColumn(Grid&, "Telefon", 120, 0)
' zwei Einträge ins Listview
SetItem Grid&, "Maier", "Hamburg", "Hauptstr.", "4711"
SetItem Grid&, "Müller", "Köln", "Feldstr.", "4711"
' Listview anzeigen u. Optionen (EnableEdits) setzen
ShowListview(Grid&, 10, 40, 600, 200)
InitMessages(hd%)' nötig wegen EnableEdits
EnableEdits(Grid&, 1+8)
SelectColumnEdits(Grid&, Addr(edits$))
WhileNot @Clicked(ende%)
WaitInput
EndWhile
FreeDll lvdll&
Fin
|
| | | 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. | 25.09.2013 ▲ |
| |
| | Energizer | chez qui la ligne:
$I Listview_Funktionen.inc
Bringt il chez mir toujours den Abbruch. Woher bekomme je car cet Dossier? |
| | | | |
| | Thomas Freier | qui ist dans qui ListviewDll.zip . Je pour dem comment on arbeitet, doit, si vous dans einem anderen Dossier abgespeichert, den Pfad trop son anpasst volonté, si on cela pas im Programmeditor einstellen peux. cela Sicherste ist, vous avec qui Listview.dll im Arbeitsordener abzuspeichern. |
| | | | |
| | Energizer | @Thomas Freier: merci pour deine schnelle Aider! Votre erste Possibilité comme mir très bien, là werde je la fois quelque chose plus rumprobieren ;)
@H.Brill: aussi deine variante ist ähnlich qui de Thomas, je denke la fois là werde je mir quoi zusammenschustern ;)
1. Finde qui variante de Thomas aufgrund qui Funktion zum "sperren" einer Spalte très bien. avec welchem Befehl bekomme je ici eh bien une Vorgabetext hinein? Hätte mir gedacht là Vorgaben comment "LK1" etc. reinzuschreiben ... pour qui pas so avec savons bedachten gens ;)
Vielen Dank gens, son helft einem Débutant comment mir wirklich très! ;) |
| | | | |
| | Thomas Freier | Über qui Funktionen qui Listview.dll beim Anlegen qui Leerzeilen z.B.: KompilierenMarqueSéparation un Item avec SetItemText(H,T,S,L) . là XProfan 11.n verwendet wird, peut aussi qui Funktionen le Gridboxen verwendet volonté. |
| | | | |
| | Energizer | ok alors j'ai maintenant une Tabelle avec mehreren Spalten et zeilen, so comment je mir cela ganze wünsche ;) aussi avec vorschrift dans den feldern.
maintenant serait je seulement volontiers une einzelne la ligne et une einzelne spalte "schreibgeschützt" faire
z.b. pour spalte 6 et la ligne 12
PS: aussi serait je volontiers qui tabelle größer faire, so dass je alle felder gleichzeitig vois, finde malheureusement seulement ne option um cela la fenêtre trop agrandir?
lg ;) |
| | | | |
| | Thomas Freier | ensuite scheidet qui variante 1 aus. seulement sur variante 3 ist cela possible. simple qui Bedingungen abfragen, z.B.: KompilierenMarqueSéparation PS. variante 2 allez naturellement aussi, si aucun speziellen EDITs verwendet volonté. |
| | | | |
| | Energizer | bien alors hab maintenant probiert, spalten/zeilen encore drin udn so mais comment bekomme je maintenant mehrer zeilen ou bien spalten "editierfähig" ?
hab maintenant versucht dans folgende la ligne: KompilierenMarqueSéparation
IF &uwParam=1'hier nur 2.Spalte(Index =1) editierenre> derrière qui 1 encore 2, 3 etc trop écrivons (avec kommas pour qui anderen spalten) hat mais malheureusement pas geklappt
comment mach je cela maintenant? ;) |
| | | | |
|
répondreOptions du sujet | 12.896 Views |
Themeninformationencet Thema hat 4 participant: |