Español
Foro

XProfan Editierbare Tabellenfelder

 

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  
 




Julian
Schmidt
Energizer (25.08.13)

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.


Tomar dafür doch simplemente Choiceboxen/Auswahllisten. Und bau deine Tabla z.B. ähnlich como hier en [...] .
Für el Beschriftung kannst du z.B. CreateText uso.

Alternativ könntest du auch el Listview.dll[...]  uso. Diese Tabla sería entonces el Optik y el Feeling de Excel näher kommen.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.08.2013  
 




Energizer
So primero danke para deinen Referencia.
Tut me Leid, dass Yo ahora sólo antworte hatte algo a Ohren ;)
Hab ahora ya beide Varianten probiert y algo así rumgespielt.
Jedoch Es el Sache con el Listview.dll para mich überzeugender, ya allein porque dass Programa sí no sólo para mich es, pero auch para unos pocos Schüler ;)

Como kriege Yo el ahora con el Tabla así hin, Yo voluntad de el Ayuda por desgracia, no schlau ^ ^

Also Yo hatte me pensamiento, dass mi Felder sí eigentlich todos por Hand eintragbar ser debería, außer el letzte Spalte en el lediglich berechnet se. Dazu Tuve me en el Listview.dll Ayuda el Función EditManual angeschaut. Jedoch es el alles para mich absolutes Neuland, podría me tal vez alguien erklären ?

lg Energizer
 
25.09.2013  
 




Thomas
Freier
Beim Einsatz el Listview.dll hay drei Möglichkeiten el Items ser editado.
Mit EnableEdits(listview&,1+4) . Nach Aktivierung puede todos Items en Pfeiltasten angesteuert y editiert voluntad.
Mit SelectColumnEdits(listview&,addr(texto$)) puede Spalten ausgeschlossen voluntad.
KompilierenMarcaSeparación
Declare 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&
End

Mit EditManual(listview&,&uwParam, &ulParam,0) se sólo en el gewähltem Item una Editar-Feld erstellt.
KompilierenMarcaSeparación
Declarar lvdll&,texto$,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
Ventana 400,400
Cls GetSysColor(15)
listview&=CreateListView(%hwnd,%hInstance,0,GetSysColor(24),-1,$31)
text$="A,B,C"
SetColumnsFromMem(listview&,addr(texto$),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

Mientras que 1

    waitinput
    Case %UMessage = 16 : BREAK
    'después de Doppellinksklick Item,

    If %umessage=$1407

        If Getfocus(Listview&)

            IF &uwParam=1'hier sólo 2.Spalte(Index =1) Editar

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

            Endif

        EndIf

    EndIf

Wend

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

Dann todavía el Möglichkeit alles incluso en el Hand nehmen en z.B. auch una Editar con besonderen Características(z.B.:sólo Pagar), una Auswahlbox, una "DateEdit", usw., beim Item a platzieren, y ggf. por TAB el Items a wechseln.
KompilierenMarcaSeparación
Declarar bereich#,lvdll&,texto$,x&,y&,z&,listview&
Def GetSysColor(1) !"USER32","GetSysColor"
Dim bereich#,256
var Font& = @CREATE("FONT","NEW TIMES ROMAN",14,0,0,0,0)
 $I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Ventana 400,400
Cls GetSysColor(15)
listview&=CreateListView(%hwnd,%hInstance,0,GetSysColor(24),-1,$31)
text$="A,B,C"
SetColumnsFromMem(listview&,addr(texto$),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'Volver
AddHotKey 7002, 9, 0'TAB Links
AddHotKey 7003, 9, 2'TAB Rechts
AddHotKey 7009, 27, 0

Mientras que 1

    waitinput
    Case %key=2:BREAK
    caso %umessage=$1407: EDIT &uwParam, &ulParam'Spaltenindex ,'Zeilenindex (nullbasierend)

Wend

CloseMessages(%hwnd)
freedll lvdll&
End

Proc Editar

    Parámetros spalte%,zeile%
    Declarar Ede_del2&
    INHALT
    @Crear("Tooltip", %hWnd ,Ede_del2& ,"Esc=Abbruch, Valor con Enter tomar.")
    Setfocus(Ede_del2&)

    Mientras que 1

        WaitInput
        caso iskey(27):BREAK'Abbruch ESC

        If MenuItem(7001) O (%MouseKey=2)'Guardar: Enter oder rechte Botón del ratón gedrückt

            SetText Listview&,Línea%,Spalte%,trim$(GetText $(Ede_del2&))
            BREAK

        ElseIf MenuItem(7002)'TAB antes

            SetText Listview&,Línea%,Spalte%,trim$(GetText $(Ede_del2&))
            caso Spalte%<GetColumns(Listview&)-1: inc Spalte%
            INHALT

        ElseIf MenuItem(7003)'TAB rück

            SetText Listview&,Línea%,Spalte%,trim$(GetText $(Ede_del2&))
            caso Spalte%>0 : dec Spalte%
            INHALT

        EndIf

        Ifnot getfocus(Ede_del2&)' Editar verliert el Focus, Eingabe verwefen

            BREAK

        EndIf

    wend

    DestroyWindow(Ede_del2&)
    setfocus(%hwnd)

ENDPROC

Proc Inhalt

    DestroyWindow(Ede_del2&)
    Claro bereich#
    Texto$=trim$(GetText $(Listview&,Línea%,Spalte%))'alter Inhalt
    GetOwnControlParas(bereich#,Listview&,Spalte%,Línea%)
    var opx&=Largo(bereich#,12)'X Offset
    var opy&=Largo(bereich#,16)'Y Offset
    var opb&=Largo(bereich#,20)'Breite
    var oph&=Largo(bereich#,24)'Höhe
    Ede_del2&= @Crear("Edit", Listview& ,Texto$,opx&,opy&,opb&,oph&)
    SetFont Ede_del2&,Font&
    Setfocus(Ede_del2&)
    SendString(Ede_del2&,"+ ({FIN})")'Resalte el texto y el cursor a la Ende

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
25.09.2013  
 




H.Brill
Hier veces una kleines Ejemplo de me.
Como kannst du dir sí qué raussuchen:
KompilierenMarcaSeparación
 $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&
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.
25.09.2013  
 




Energizer
En Línea:

$I Listview_Funktionen.inc

Bringt él en me siempre el Abbruch. Woher bekomme Yo porque esta Expediente?
 
26.09.2013  
 




Thomas
Freier
El es en el ListviewDll.zip . Je después de el cómo arbeitet, muß, si ellos en un otro Ordner abgespeichert, el Pfad a ihr anpasst voluntad, si al no en el Programmeditor einstellen kann. Das Sicherste es, ellos con el Listview.dll en el Arbeitsordener abzuspeichern.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.09.2013  
 




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  
 




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.070 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