Français
Forum

XProfan Editierbare Tabellenfelder

 
- page 1 -



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
 
25.08.2013  
 



 
- page 1 -



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! ;)
 
26.09.2013  
 




Thomas
Freier
Über qui Funktionen qui Listview.dll beim Anlegen qui Leerzeilen z.B.:
KompilierenMarqueSéparation
Whileloop 5

    SetItem listview&,"","LK1",""

EndWhil

un Item avec SetItemText(H,T,S,L) .
là XProfan 11.n verwendet wird, peut aussi qui Funktionen le Gridboxen verwendet volonté.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




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 ;)
 
26.09.2013  
 




Thomas
Freier
ensuite scheidet qui variante 1 aus. seulement sur variante 3 ist cela possible.
simple qui Bedingungen abfragen, z.B.:
KompilierenMarqueSéparation
If %umessage=$1407

    IfNot (&uwParam=5) AND (&ulParam=11)'Doppellinksklick: edit Item

        EDIT &uwParam, &ulParam'Spaltenindex ,'Zeilenindex (nullbasierend)

    Endif

/a>

PS. variante 2 allez naturellement aussi, si aucun speziellen EDITs verwendet volonté.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




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? ;)
 
26.09.2013  
 



 
- page 2 -



Thomas
Freier
qui Abfrage sur
KompilierenMarqueSéparation
IF (&uwParam=1) OR (&uwParam=2) OR (&uwParam=3)re>
ou bien
KompilierenMarqueSéparation
IF (&uwParam>0) AND (&uwParam<4)re>
ou bien
KompilierenMarqueSéparation
Minibeispiel Listview-/Gridboxgröße zum la fenêtre
KompilierenMarqueSéparation
Set("ErrorLevel", 2)
 $H Windows.ph
 $H messages.ph
DECLARE LV&,a$

SubClassproc

    IF SUBCLASSMESSAGE(%HWND,~WM_SIZING) or SUBCLASSMESSAGE(%HWND,~WM_SIZE)

        SETWINDOWPOS LV&=10, 30 - (Width(%HWND)-20), (Height(%HWND)-60)
        SET("WinProc",0)

    ENDIF

endproc

CLS
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
a$ = "Links;0;180;Mitte;2;100;Rechts;1;80"
LV&=Créer("GridBox", %HWND, a$, 3, 10, 30, (Width(%HWND)-20), (Height(%HWND)-60))
SUBCLASS %HWND,1

WHILE 1

    WAITINPUT

ENDWHILE

FIN
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




Energizer
alors pour qui Abfrage fand je deine erste Possibilité am besten, hat soweit aussi geklappt doch comment mach je cela pour Zeilen?

et avec qui Listboxgröße komm je encore pas entier bien sûr ...

Pour CLS fängst du oui à avec setclasslong

ab dem punkt était oui dein erstes programm entier anders, là konnte je ensuite alle tabellen changement et maintenant steht oui derrière chaque spaltennamen deux payons et qui felder sommes gar pas editierbar?

oui sry je sais ist ne lourd naissance avec mir ici ;)
 
27.09.2013  
 




Thomas
Freier
cela était seulement un Beispiel avec qui internen Gridboxfunktion comment sich qui Gridbox einer Größenveränderung des Hauptfensters anpasst.
Um Beispiele zum "Abiturrechner" anzupassen, müßten plus Informationen vorliegen, z.B.: Soll es un dans qui Taille unveränderbares ou bien veränderbares Hauptfenster volonté. Erforderliche Breite qui Listbox , si pas horizontal gescrollt volonté soll. Wieviele Zeilen sommes vorgesehen. Hat cela Hauptfenster une Toolbar et/ou bien Statuszeile?
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.09.2013  
 




Energizer
alors cela Hauptfenster peux calme dans seiner taille veränderbar son, dass wäre mir égal et quelquefois wahrscheinlich aussi très convenable

comment breit qui listbox son soll peux je eigentlich pas dire, là je qui genaue breite sais alors wäre un anpassen à cela la fenêtre très bien ... sollte cela pas aller pourrait je naturellement aussi qui längste kombination de buchstaben, payons etc. qui pour fächer dans frage venons eingeben et dir ne pixelzahl ou bien so appeler

zeilen sommes es 15, spalten 6

si du avec toolbar dessus qui leiste meinst wohin fichier Sauver etc venons soll ensuite oui ;)

je werde bientôt chaque unterprogramme meines abirechners zusammenfügen et ensuite ici la fois nen beispiel posten, vllt peut son euch ensuite besser hinein versetzen.
 
27.09.2013  
 




H.Brill
je sais maintenant pas, si ImportDLL déjà dans qui Version 11.2 Free
disponible était. si oui, peux on qui DLL aussi sans Includedatei
(Listview_funktionen.inc) nutzen. Es manquer arrêt seulement qui paire Procs,
qui dans qui Include zusätzlich défini sommes. mais qui peux on oui
aussi dans seinen Quellcode kopieren.
cela sähe ensuite so aus :
KompilierenMarqueSéparation
Declare hd%, ende%, lvdll&, Grid&, edits$
Declare datensatz#
Declare sp1$, sp2$, sp3$, sp4$, Name$, Ort$, Strasse$, Telefon$
sp1$ = "Name"
sp2$ = "Wohnort"
sp3$ = "Strasse"
sp4$ = "Telefon"
Dim datensatz#, 20
lvdll& = Importdll("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
IColumn(Grid&, addr(sp1$), 220, 0)
IColumn(Grid&, addr(sp2$), 150, 0)
IColumn(Grid&, addr(sp3$), 150, 0)
IColumn(Grid&, addr(sp4$), 120, 0)
' zwei Einträge ins Listview
Name$    = "Maier"
Ort$     = "Hamburg"
Strasse$ = "Hauptstr"
Telefon$ = "4711"
Long datensatz#, 0  =  Addr(Name$)
Long datensatz#, 4  =  Addr(Ort$)
Long datensatz#, 8  =  Addr(Strasse$)
Long datensatz#, 12 =  Addr(Telefon$)
SItem(Grid&, datensatz#, 4)
Name$    = "Müller"
Ort$     = "Köln"
Strasse$ = "Rheinstr."
Telefon$ = "4712"
Long datensatz#, 0  =  Addr(Name$)
Long datensatz#, 4  =  Addr(Ort$)
Long datensatz#, 8  =  Addr(Strasse$)
Long datensatz#, 12 =  Addr(Telefon$)
SItem(Grid&, datensatz#, 4)
' 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

Dispose datensatz#
FreeDll lvdll&
/../function-references/XProfan/end/'>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.
28.09.2013  
 




Thomas
Freier

si du avec toolbar dessus qui leiste meinst wohin fichier Sauver etc venons soll ensuite oui ;)

So comment je es vois reicht un menu. qui Button einer Toolbar sommes chez umfangreichen Menüs pour schnelle Einklickaktionen de Vorteil.
une Statuszeile ist approprié une gewählte Dossier/Informationen anzuzeigen, d.h., si pour einer Berechnug cet gespeichert et später wieder angezeigt volonté soll.



chez qui Fächerauswahl serait je cet pour DRAG&DROP anbieten.
Beispiel
KompilierenMarqueSéparation
 $H Windows.ph
 $H messages.ph
 $I Listview_Funktionen.inc
Def GetSysColor(1) !"USER32","GetSysColor"
var Font& = @CREATE("FONT","NEW TIMES ROMAN",14,0,0,0,0)
Window 930,350
WindowTitle "Abiturrechner"
SetTrueColor 1
Cls GetSysColor(15)
SetDialogFont Font&
' Menü
PopUp "Programm"
AppendMenu 109,"Ende"
PopUp "Fächer"
AppendMenu 102,"übernehmen"
AppendMenu 103,"ausblenden"
AppendMenuBar 104,"Berechnen"
AppendMenuBar 105,"Drucken"
AppendMenuBar 106,"Eingaben löschen"
' Listview
Declare lvdll&,text$,x&,y&,z&,x%,y%,z%,listview&
lvdll&=usedll("Listview.dll")
listview&=CreateListView(%hwnd,%hinstance,0,GetSysColor(24),-1,$431)
'bei +400 kann der Anwender die Spaltenbreite nicht verändern
text$="Spalte 1,Spalte 2,Spalte 3,Spalte 4,Spalte 5,Spalte 6"
SetColumnsFromMem(listview&,addr(text$),0)
SetFont listview&,Font&

Whileloop 15

    SetItem listview&,str$(&loop),"","","","",""

EndWhile

SetColumnWidth(listview&,0,80)
SetColumnWidth(listview&,1,240)
SetColumnWidth(listview&,2,140)
SetColumnWidth(listview&,3,140)
SetColumnWidth(listview&,4,140)
SetColumnWidth(listview&,5,140)
ShowListView(listview&,10,10,900,270)
' damit beim Fensterverändern die Anzeige ruhiger bleibt:
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
' Liste mit den Fächern
Declare Fach&, LV_F&
LV_F&=CreateListView(%hwnd,%hinstance,0,GetSysColor(24),-1,$431)
text$="Fach"
SetColumnsFromMem(LV_F&,addr(text$),0)
SetColumnWidth(LV_F&,0,80)
SetFont LV_F&,Font&
AddString(LV_F&,"Fach 1")
AddString(LV_F&,"Fach 2")
AddString(LV_F&,"Fach 3")
EnableDragDrop(listview&,1+16)
EnableDragDrop(LV_F&,1+16)

Proc FAECHEROPEN

    ShowListView(listview&,10,10,(Width(%HWND)-160),270)
    ShowListView(LV_F&,(Width(%HWND)-140),10,100,100)

EndProc

Proc FAECHERCLOSE

    ShowListView(LV_F&,0,0,0,0)
    ShowListView(listview&,10,10,(Width(%HWND)-20),270)

EndProc

' ermöglicht Aktionen beim Fensterverändern (durchbricht Waitinput)
SUBCLASS %HWND,1
InitMessages(%hwnd)
usermessages $1407, 16

While 1

    waitinput
    Case (%UMessage = 16) OR MenuItem(109) : BREAK

    If %umessage=$1407'nach Doppellinksklick

        If Getfocus(Listview&)

            IF (&uwParam=2) OR (&uwParam=3) OR (&uwParam=4)

                EditManual(listview&,&uwParam, &ulParam,0)'Spaltenindex, Zeilenindex (nullbasierend)

            Endif

        EndIf

    ElseIf MenuItem(102)

        FAECHEROPEN

    ElseIf MenuItem(103)

        FAECHERCLOSE

    ElseIf MenuItem(104)

        messagebox("berechnet was auch immer","Programm",32)

    ElseIf MenuItem(105)

        messagebox("druckt die Tabelle","Programm",32)

    ElseIf MenuItem(106)'leeres Listview

        DeleteAllItems(Listview&)

        Whileloop 15

            SetItem listview&,str$(&loop),"","","","",""

        EndWhile

        DeleteAllItems(LV_F&)
        AddString(LV_F&,"Fach 1")
        AddString(LV_F&,"Fach 2")
        AddString(LV_F&,"Fach 3")

    ElseIf MenuItem(15000)' Fenstergröße wurde verändet. Höhe soll bleiben

        x%=%WinLeft
        y%=%WinTop
        z%=Width(%HWND)+8
        SETWINDOWPOS %hwnd=x%,y% - z%,(270+80);0

    endif

Wend

messagebox("wird beendet","Programm",32)
CloseMessages(%hwnd)
freedll lvdll&
End

SubClassproc

    IF SUBCLASSMESSAGE(%HWND,~WM_SIZING) or SUBCLASSMESSAGE(%HWND,~WM_SIZE)

        case ~WM_LBUTTONUP: SetMenuItem 15000' für Aktionen nach der Fenstergrößenänderung
        SETWINDOWPOS Listview&=10, 10 - (Width(%HWND)-22), 270
        SET("WinProc",0)

   
ass=s4 href='./../../function-references/XProfan/endif/'>ENDIF endproc

Soll DROP seulement pour einer Spalte qui Hauptliste zulässig son, doit cet sur GetDragDropParas(B) gesteuert volonté. aussi, si dans qui Fächertabelle qui Faktoren le Fächern hinterlegt sommes et cet dans qui Hauptliste übernommen volonté devoir.

19 kB
Hochgeladen:28.09.2013
Downloadcounter149
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.09.2013  
 




Energizer
So erstmal merci pour eure Aider!

suis maintenant erstmal jusqu'à 10.10 im Urlaub, werde mich ensuite wieder chez euch annoncer

lg ;)
 
28.09.2013  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

12.895 Views

Untitledvor 0 min.
Thomas Zielinski20.12.2022
Walter08.05.2021
Normann Strübli24.03.2020
Jörg Sellmeyer12.06.2019
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie