Español
Foro

XProfan Editierbare Tabellenfelder

 
- Página 1 -



Energizer
¡Hola liebes Form ;),
bin nun auch neu esta y a el Arbeit con XProfan 11.2 Libre (el es doch el aktuellste oder?)

Posesiones ya una wenig herumgestöbert y dank el Ayuda vom XLehrbuch de Dietmar Horn auch ya kleinere Programas geschafft.

Nun se Yo para una zwölfte Klasse una Abiturrechner programa. Dieser se así trabajo, dass uno todos Fächer inkl. Punkte eingibt y Abirechner anhand div. Vorgaben (Abiprüfungsfächer voluntad 5-fach gewertet, en Wahl uno Zusatzprüfung 4-fach etc.) el Endpunktzahl calcular.

Nun bin Yo al Überlegen, cómo hacerlo con el Eingabe al besten regeln debería.
Am liebsten wäre me sí eigentlich una tabla (ähnlich Excel) en el el Anwender simplemente selber Werte eingebn kann. Desde que dafür direkt nichts gefunden habe, Yo quería todos encima una Umweg hacer, indem el Anwender en vordefinierten CheckBoxen seine Fächer auswählt y esta entonces en el Tabla übertragen voluntad. ¿Es esta posible a definieren, como viele Checkboxen gewählt voluntad dürfen?

Tal vez kann me alguien de euch en Solución dieses Problems helfen, o. me incluso una todavía bessere Solución para el Implementierung el Userdaten en mein Programa vorschlagen.

Mfg Peter
 
25.08.2013  
 



 
- Página 1 -



Energizer
@Thomas Freier:
Gracias para deine schnelle Ayuda! Su erste Möglichkeit gefällt me muy bien, como voluntad Yo veces algo más rumprobieren ;)

@H.Brill:
Auch deine Variante es ähnlich el por Thomas, Yo denke veces como voluntad Yo qué zusammenschustern ;)

1. Finde el Variante por Thomas aufgrund el Función para "sperren" uno Spalte muy bien. Mit welchem Befehl bekomme Yo hier nun una Vorgabetext hinein?
Hätte me pensamiento como Vorgaben como "LK1" etc. reinzuschreiben ... para el no así con Wissen bedachten Personas ;)

Vielen Dank Personas, Ihr helft una Principiante como me wirklich muy! ;)
 
26.09.2013  
 




Thomas
Freier
Über el Características el Listview.dll beim Anlegen el Leerzeilen z.B.:
KompilierenMarcaSeparación
Whileloop 5

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

EndWhil

Ein Item con SetItemText(H,T,S,L) .
Como XProfan 11.n verwendet se, puede auch el Características a Gridboxen verwendet voluntad.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




Energizer
ok also Yo habe ahora una tabla con más Spalten y zeilen, como Yo todos wünsche ;) auch con vorschrift en el feldern.

ahora sería Yo sólo gerne una einzelne zeile y una einzelne spalte "schreibgeschützt" hacer

z.b. para spalte 6 y zeile 12

PS: außerdem sería Me gusta el tabelle größer hacer, así dass Yo todos felder gleichzeitig sehe, finde desafortunadamente sólo ne option en el fenster a vergrößern?

lg ;)
 
26.09.2013  
 




Thomas
Freier
Dann scheidet el Variante 1 de. Nur encima Variante 3 es el posible.
Einfach el Bedingungen abfragen, z.B.:
KompilierenMarcaSeparación
If %umessage=$1407

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

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

    Endif

/a>

PS. Variante 2 va natürlich auch, si no speziellen EDITs verwendet voluntad.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




Energizer
bien also tener ahora probiert, spalten/zeilen ya otra vez drin udn así aber como bekomme Yo ahora mehrer zeilen oder spalten "editierfähig" ?

tener ahora intenta en folgende zeile:
KompilierenMarcaSeparación
IF &uwParam=1'hier nur 2.Spalte(Index =1) editierenre>

hinter el 1 todavía 2, 3 etc a escribir (con kommas para el otro spalten) ha aber
por desgracia, no geklappt

como mach Yo el ahora? ;)
 
26.09.2013  
 



 
- Página 2 -



Thomas
Freier
El Abfrage encima
KompilierenMarcaSeparación
IF (&uwParam=1) OR (&uwParam=2) OR (&uwParam=3)re>
oder
KompilierenMarcaSeparación
IF (&uwParam>0) AND (&uwParam<4)re>
oder
KompilierenMarcaSeparación
Minibeispiel Listview-/Gridboxgröße para Ventana
KompilierenMarcaSeparación
Conjunto("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&=Crear("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
Also para el Abfrage fand Yo deine erste Möglichkeit al besten, ha soweit auch geklappt doch como mach Yo el para Zeilen?

Und con el Listboxgröße komm Todavía no bastante klar ...

Nach CLS fängst du sí a con setclasslong

de el punkt war sí dein erstes programm bastante anders, como podría Yo entonces todos tabellen ändern y ahora es sí hinter cada spaltennamen zwei zahlen y el felder son nada editierbar?

sí sry Yo weiß es ne pesado geburt con me hier ;)
 
27.09.2013  
 




Thomas
Freier
Das war sólo una Ejemplo con el internen Gridboxfunktion como el Gridbox uno Größenveränderung des Hauptfensters anpasst.
Um Beispiele para "Abiturrechner" anzupassen, müßten mehr Informationen vorliegen, z.B.: Soll lo una en el Größe unveränderbares oder veränderbares Ventana principal voluntad. Erforderliche Breite el Listbox , si no horizontal gescrollt voluntad se. Wieviele Zeilen son vorgesehen. Sombrero la ventana principal una Toolbar y/oder Statuszeile?
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.09.2013  
 




Energizer
Also la ventana principal kann ruhig en su größe veränderbar ser, dass wäre me egal y manchmal wahrscheinlich auch muy passend

como breit el listbox ser se kann Yo eigentlich no sagen, como Yo el genaue breite weiß also wäre una adaptar a el fenster muy bien ... debería el no ir podría Yo natürlich auch el längste kombination de buchstaben, zahlen etc. el para fächer en frage kommen eingeben y dir ne pixelzahl más o menos nennen

zeilen son lo 15, spalten 6

si du con toolbar oben el leiste media wo datei speichern etc kommen se entonces sí ;)

Yo voluntad demnächst cada unterprogramme meines abirechners zusammenfügen y luego hier veces nen beispiel puesto, vllt könnt ihr euch entonces mejor hinein versetzen.
 
27.09.2013  
 




H.Brill
Yo weiß ahora no, si ImportDLL ya en el Versión 11.2 Libre
verfügbar war. Wenn sí, puede ser el DLL auch sin Includedatei
(Listview_funktionen.inc) nutzen. Lo fehlen sólo sólo el pocos Procs,
el en el Incluir zusätzlich definiert son. Aber el puede ser sí
auch en seinen Quellcode kopieren.
Das sähe entonces así de :
KompilierenMarcaSeparación
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/'>End
 
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 con toolbar oben el leiste media wo datei speichern etc kommen se entonces sí ;)

So Yo lo sehe reicht una Menü. El Button uno Toolbar son en umfangreichen Menüs para schnelle Einklickaktionen de Vorteil.
Un Statuszeile es geeignet una gewählte Expediente/Informationen anzuzeigen, d.h., si después de uno Berechnug esta gespeichert y später otra vez adecuado voluntad se.



En Fächerauswahl sería Yo esta para DRAG&DROP anbieten.
Ejemplo
KompilierenMarcaSeparación
 $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 sólo después de uno Spalte el Hauptliste zulässig ser, muß dieses encima GetDragDropParas(B) gesteuert voluntad. Auch, si en el Fächertabelle el Faktoren a Fächern hinterlegt son y esta en el Hauptliste übernommen voluntad debería.

19 kB
Hochgeladen:28.09.2013
Ladeanzahl153
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.09.2013  
 




Energizer
So primero danke para eure Ayuda!

Bin ahora primero a 10.10 en el Fiesta, voluntad mich entonces otra vez en euch informe

lg ;)
 
28.09.2013  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

13.041 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie