Español
Foro

XProfan Editierbare Tabellenfelder

Tiempo otra vez Yo ;)

 

Energizer
So Personas, melde mich seit langem auch veces otra vez!

Posesiones ahora veces alles algo para mich adaptado.
Dies es ahora primero el Ver código fuente para el Tabla, speichern/invitar sowie el Berechnung son en otro Schnipseln ;)
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)
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/'>End

Jetzt Yo mehrere Fragen/Problemas.

1. Yo sería gerne el Línea "optional" no editierfähig hacer, va el ?
Sie muss en efecto no necesariamente hay en el Tabla ser, se sólo sólo si alguien Zusatzkurse gewählt ha posible ser, esta einzutragen!

2. Soll el Tabla después de abierto des Programms möglichst vollständig en el Ventana a sehen ser, así dass Yo no scrollen muss.

2.1 ¿Es posible, dass el Tabla en Vergrößern des Programmfensters auch vergrößert?

3. Nachdem en el Spalten 2-5 el Noten eingetragen fueron, brauche Yo una opción, en 42 FELDER con Noten auszuwählen, welche el Abiturnoten ergeben debería.

3.1 Besonders nett/hilfreich wäre lo, si gewisse Felder ya vordefiniert y no änderbar wären (z.B. Z.1-3, sowie Z. 6)
Dies sería el verpflichtend einzubringenden Noten kennzeichnen, si alguien esta no sabe.

Tal vez habt Ihr algunos Ideen y Sugerencias para mich ;)

LG y una schönen 1. Advent todavía,
Peter
 
01.12.2013  
 




Julian
Schmidt
Energizer (01.12.13)

1. Yo sería gerne el Línea "optional" no editierfähig hacer, va el ?
Sie muss en efecto no necesariamente hay en el Tabla ser, se sólo sólo si alguien Zusatzkurse gewählt ha posible ser, esta einzutragen!


Natürlich va el, du musst simplemente sólo verhindern el él para dieser Línea el Edierfunktion aufruft, etwa así...
KompilierenMarcaSeparación
Case &ulParam<>11 : EditManual(listview&,&uwParam, &ulParam,0)
>

Energizer (01.12.13)

2. Soll el Tabla después de abierto des Programms möglichst vollständig en el Ventana a sehen ser, así dass Yo no scrollen muss.
2.1 ¿Es posible, dass el Tabla en Vergrößern des Programmfensters auch vergrößert?


Das Skalieren des Listviews con el Fenstergröße es al einfachsten encima %WM_Paint lösbar. Hier veces una Ejemplo con un mehrzeiligen Editierfeld.
KompilierenMarcaSeparación
CLS
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. Nachdem en el Spalten 2-5 el Noten eingetragen fueron, brauche Yo una opción, en 42 FELDER con Noten auszuwählen, welche el Abiturnoten ergeben debería.


Schau dir hier a veces el whileloop Bucle a...

Energizer (01.12.13)

3.1 Besonders nett/hilfreich wäre lo, si gewisse Felder ya vordefiniert y no änderbar wären (z.B. Z.1-3, sowie Z. 6)
Dies sería el verpflichtend einzubringenden Noten kennzeichnen, si alguien esta no sabe.


Was willst du genau?

Saludo

Julian
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
01.12.2013  
 




Energizer
Bzgl. 1.)

Yo habe mehrer Versionen ausprobiert, veces es gar nichts passiert, teils war zwar el Línea optional no editierbar, dafür aber el komplette 1. Spalte y teils war sólo el erste Spalte en Línea 11 (el en el "optional" es) gesperrt, el spalten detrás de él aber trotzdem editierbar.

Nochmal para Verständnis: Yo habe esta Tabla. Dort se el komplette erste Spalte gesperrt ser! Zusätzlich se ebenfalls el GESAMTE Línea 11 (o. 12), Así que el con el Texto "Optional" gesperrt voluntad. Ist el realisierbar y si sí, a welcher Punto muss Yo como el Línea einfügen?

2.

Tut me Leid aber Yo habe hier überhaupt ni idea, como Yo el Verwenden se. Yo habe intenta versch. Werte oder Schleifen a tomar, hatte Fehlermeldungen y "nicht-mehr-beendbare" Programas, aber desafortunadamente no skalierte Tabla
Posesiones lo nichtmal hinbekommen el Tabla allgemein Größer a hacer, dass wenigstens si yo en el Code una größeres "Window" einstelle, el Tabla hay komplett adaptado wäre

3.
Ach sí, whileloop, bien como hätte Yo selber en él kommen puede. Sry como stand Yo simplemente el Schlauch ... manchmal son lo el simplen Dinge ;)

3.1
Folgendermaßen:
En uno Minimalbelegung aller Fächer hätte uno al Ende des Jahres 44 Semesternoten, de denen el Endpunktzahl berechnen sería (11 Kurse * 4 Semester) (natürlich sin Abiklausuren).

Davon puede aber sólo 42 Noten en el Endpunktestand en el Abiturzeugnis eingebracht voluntad, dass heißt 2 Noten fallen weg (logischerweise wählt uno el schlechtesten). Belegt uno ahora todavía Zusatzkurse, ha uno todavía mehr Noten disponible, d.h. uno kann al Ende auch mehr schlechte Noten rausfallen dejar.

Jedoch hay algunos Fächer, como z.B. el Abiturprüfungsfächer, el zwingend en el Endzensur eingebracht voluntad necesario. Vermutlich sabe sin embargo no cada esta verpflichtend einzubringenden Kurse.
Dazu wäre lo nun muy hilfreich, si bajo el 42 auszuwählenden Semesternoten, ya el markiert wären, el zwingend eingebracht voluntad necesario y esta no verändert (ausgeklickt) voluntad puede.

War dies verständlich, sonst mach Yo rápidamente nen Bild oder iwas en lo a verdeutlichen?
 
03.12.2013  
 




Thomas
Freier
Tal vez hilft dieses Ejemplo más:
KompilierenMarcaSeparación
 $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&
 
Gruß Thomas
Windows XP SP2, XProfan X2
03.12.2013  
 




Thomas
Freier

2. Soll el Tabla después de abierto des Programms möglichst vollständig en el Ventana a sehen ser, así dass Yo no scrollen muss.


Como hilft sólo Berechnen de Höhe y max. Breite des Zeilen- o. Headertextes : [...] 
entonces el Font (Höhe,ggf. eng) y el erforderliche Spaltenbreite festlegen y testen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
03.12.2013  
 




Energizer
vielen Dank Thomas!

Usted hast me muy geholfen, habe ahora ya fast alles en me erweitert, todavía unos pocos Zeilen aber el kann Yo auch todavía später hacer!

Damit wären Problema 1 y 2 gelöst !

Jetzt debería Yo sólo todavía qué para Punkt 3 überlegen .
 
04.12.2013  
 




Thomas
Freier
Ab XProfan 11 Aprovecho el Gridboxfunktionen y si nötig de el Listview.dll. Zeilen vorgeben z.B.:
KompilierenMarcaSeparación
AddString(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")

Como vermutlich Zensuren, d.h., sólo Pagar y Trenner eingegeben voluntad debería, müssten el Editar-Felder incluso producido voluntad. Siehe Ejemplo: Eigene_Eingaben. Weiterschalten por TAB es tal vez no necesariamente erforderlich.
Ejemplo para Editar con Pagar: [...] 
oder
KompilierenMarcaSeparación
Def 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&=Crear("Edit",%hwnd,"",30,165,80,20)
@sendmessage(Ed&,$00C5,3,0)'y en 3 Stellen (n.n) begrenzt
SetFocus(Ed&)

Mientras que 1

    WaitInput
    caso %key=2 : BREAK
    caso GETFOCUS(Ed&): NUMWERT Ed&,1'Handle, Signo vorm Komma

EndWhile

End

Proc NUMWERT' AUSWERTUNG en Signo y Stellen

    Parámetros ED.N&,ED.N%
    var a$="abcdefghijklmnopqrstuvwxyz"
    a$=a$+Upper$("abcdefghijklmnopqrstuvwxyz")
    a$=a$+"!§$%&/()=?''*':;,-_²³{[]}\^°<>|++-"
    var c$=""

    WhileLoop len(a$)

        c$ = MID$(a$,&Loop,1)' c$= el nte Stringteil
        Settext ED.N&,@Translate$(gettext$(ED.N&),c$,"")' unzulässige löschen
        Settext ED.N&,@Translate$(gettext$(ED.N&),"..",".")' doppelte löschen

    EndWhile

    a$=trim$(gettext$(ED.N&))

    WhileLoop ED.N%+1

        @Match$("~.", a$)

        If (%MatchPos>0) AND (%MatchPos<ED.N%+1)

            a$=" "+a$' Leerzeichen oder führende Null

        EndIf

    EndWhile

    If len(a$)=ED.N%

        caso @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 en Ende

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
04.12.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

6.279 Views

Untitledvor 0 min.
E.T.02.01.2016
RICOSCH12.10.2014
Georg Teles27.08.2014
Andreas Koch15.08.2014
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