Français
Forum

Listbox/Gridbox Einträge éditer

 

Christof
Neuß
Salut,

comme Front-Fin pour Datenbankanwendungen eignet sich plan souvent un Browse-la fenêtre. Dabei peut qui données direct dans einer Art Tabelle (z.B. Gridbox) angezeigt et bearbeitet volonté.

qui Dialoge "Listbox" et "Gridbox" aus XProfan wären eigentlich prädestiniert, cet trop leisten. malheureusement gibt es aucun (simple) Possibilité, qui Einträge direct trop éditer.

je sais, dass es z.B. avec qui Listview.dll allez. avec cela habe je aussi déjà experimentiert. là je mais possible wenige/aucun externe DLL nutzen voudrais, wäre une Solution avec "Bordmitteln" genial.

Hat eigentlich la fois quelqu'un cette Ansatz ici weiterverfolgt?
Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
Listboxeinträge éditer
Lauffähig ab Profan-Version 5.0
********************** HINWEISE ********************************
CODE ERZEUGT MIT ROKOS OBJECT CREATOR 2.8c
DATUM  31.01.2003    um  22:33 montre
VERWENDETE PROFANVERSION IST 7.0 ODER HÖHER
NUR D' UNSORTIERTE LISTBOX GÜLTIG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Def GetSysColor(1) !USER32,GetSysColor
SETTRUECOLOR 1
DECLARE ENDE%,editfeld%,top%
DECLARE LISTBOX1%,font%,font2%,Text%
DECLARE BUTTON1%,listindex%,gtext$
font%=@CREATE(FONT,MS Sans Serif,13,0,0,0,0)
WINDOWSTYLE 63
WINDOWTITLE EDITLISTBOX (c) by Rolf Koch 2003
WINDOW 214,134-429,218
CLS GETSYSCOLOR(15)
USEFONT MS Sans Serif,8,0,0,0,0
SETDIALOGFONT 1
LISTBOX1% = CREATE(LISTBOX,%HWND,LISTBOX1,0012,0013,0401,0107)
TEXT% = CREATE(TEXT,%HWND,s'il te plaît Eintrag Vous pouvez et éditer - Mauszeiger muss au cours de qui Eingabe dans qui Listbox rester!,0012,0123,0400,040)
BUTTON1% = CREATE(BUTTON,%HWND,Good by,0091,0150,0228,0033)
EDITFELD%=@Contrôle(EDIT,,$54010000,0,0,0,0,listbox1%,1000,%HINSTANCE)
setfont editfeld%,font%
clearlist
addstring(listbox1%,Test1 qui Listbox)
addstring(listbox1%,Test2 qui Listbox)
addstring(listbox1%,Test3 qui Listbox)
addstring(listbox1%,Test4 qui Listbox)
addstring(listbox1%,Test5 qui Listbox)
addstring(listbox1%,Test6 qui Listbox)
addstring(listbox1%,Test7 qui Listbox)
addstring(listbox1%,Test8 qui Listbox)
addstring(listbox1%,Test9 qui Listbox)
addstring(listbox1%,Test10 qui Listbox)
addstring(listbox1%,Test11 qui Listbox)
addstring(listbox1%,Test12 qui Listbox)
addstring(listbox1%,Test13 qui Listbox)
addstring(listbox1%,Test14 qui Listbox)
addstring(listbox1%,Test15 qui Listbox)
addstring(listbox1%,Test16 qui Listbox)
addstring(listbox1%,Test17 qui Listbox)
addstring(listbox1%,Test18 qui Listbox)
addstring(listbox1%,Test19 qui Listbox)
addstring(listbox1%,Test20 qui Listbox)
addstring(listbox1%,Test21 qui Listbox)
addstring(listbox1%,Test22 qui Listbox)
addstring(listbox1%,Test23 qui Listbox)
addstring(listbox1%,Test24 qui Listbox)
addstring(listbox1%,Test25 qui Listbox)

WHILENOT ENDE%

    WAITINPUT

    Si @EQU(%KEY,2)

        LET ENDE%= 1

    ELSEIF GETFOCUS(LISTBOX1%) LISTBOX

        listindex%=@GetCursel(listbox1%)

        ifnot lt(listindex%,0)

            Top%=@SendMessage(Listbox1%,398,0,0)
            @SendMessage(listbox1%,$0186,-1,0)
            settext editfeld%,@GetString$(listbox1%,listindex%)
            setwindowpos Modifier le champ de%=2,mul(sub(listindex%,top%),13)-430,13;0
            setfocus(editfeld%)
            sendmessage(editfeld%,$00B1,add(len(gettext$(editfeld%)),1),-1)

            WHILE GETFOCUS(editfeld%) DUMMYSCHLEIFE

                getmessage

                si equ(%message,160)

                    setfocus(%hwnd)

                endif

            WEND

            GTEXT$=gettext$(editfeld%)
            @DeleteString(Listbox1%,listindex%)
            @InsertString(Listbox1%,listindex%,gtext$)
            setwindowpos Modifier le champ de%=0,0-0,0;0
            setwindowpos listbox1%=0012,0013-0401,0107;0

        endif

    ELSEIF GETFOCUS(BUTTON1%) BUTTON

        LET ENDE%=1

    ENDIF

WEND

Deleteobject font%

ou bien hat quelqu'un une autre concept, comment on une Datenbrowser avec Editiermöglichkeit realisieren pourrait?

suis gespannt et pour jeden Hinweis reconnaissant.

Vielen Dank et viele Grüße

Christof
 
XProfan X3
Win10 16 GB RAM
18.10.2016  
 




Michael
W.
Hatte je bisher pas gebraucht, mais cela sieht bien aus.

ici la fois courir eingestellt, là Apostroph (Kommentar) et Anführungszeichen par une kleinen Unfall abhanden kamen.
aussi qui Vergleiche habe je par qui Operatoren ersetzt.
'Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
'Listboxeinträge éditer
'Lauffähig ab Profan-Version 5.0
'********************** HINWEISE ********************************
'CODE ERZEUGT MIT ROKOS OBJECT CREATOR 2.8c
'DATUM  31.01.2003    um  22:33 montre
'VERWENDETE PROFANVERSION IST 7.0 ODER HÖHER
'NUR D' UNSORTIERTE LISTBOX GÜLTIG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Def GetSysColor(1) !"User32","GetSysColor"
SETTRUECOLOR 1
DECLARE ENDE%, editfeld%, top%
DECLARE LISTBOX1%, font%, font2%, Text%
DECLARE BUTTON1%, listindex%, gtext$
font% = @CREATE("FONT","MS Sans Serif",13,0,0,0,0)
WINDOWSTYLE 63
WINDOWTITLE "EDITLISTBOX (c) by Rolf Koch 2003"
WINDOW 214,134 - 429,218
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",8,0,0,0,0
SETDIALOGFONT 1
LISTBOX1% = CREATE("LISTBOX",%HWND,"LISTBOX1",0012,0013,0401,0107)
TEXT% = CREATE("TEXT",%HWND,"Bitte Eintrag Vous pouvez et éditer - Mauszeiger muss au cours de qui Eingabe dans qui Listbox rester!",0012,0123,0400,040)
BUTTON1% = CREATE("BUTTON",%HWND,"Good by",0091,0150,0228,0033)
EDITFELD% = @Contrôle("EDIT",»,$54010000,0,0,0,0,listbox1%,1000,%HINSTANCE)
setfont editfeld%,font%
clearlist
addstring(listbox1%,"Test1 qui Listbox")
addstring(listbox1%,"Test2 qui Listbox")
addstring(listbox1%,"Test3 qui Listbox")
addstring(listbox1%,"Test4 qui Listbox")
addstring(listbox1%,"Test5 qui Listbox")
addstring(listbox1%,"Test6 qui Listbox")
addstring(listbox1%,"Test7 qui Listbox")
addstring(listbox1%,"Test8 qui Listbox")
addstring(listbox1%,"Test9 qui Listbox")
addstring(listbox1%,"Test10 qui Listbox")
addstring(listbox1%,"Test11 qui Listbox")
addstring(listbox1%,"Test12 qui Listbox")
addstring(listbox1%,"Test13 qui Listbox")
addstring(listbox1%,"Test14 qui Listbox")
addstring(listbox1%,"Test15 qui Listbox")
addstring(listbox1%,"Test16 qui Listbox")
addstring(listbox1%,"Test17 qui Listbox")
addstring(listbox1%,"Test18 qui Listbox")
addstring(listbox1%,"Test19 qui Listbox")
addstring(listbox1%,"Test20 qui Listbox")
addstring(listbox1%,"Test21 qui Listbox")
addstring(listbox1%,"Test22 qui Listbox")
addstring(listbox1%,"Test23 qui Listbox")
addstring(listbox1%,"Test24 qui Listbox")
addstring(listbox1%,"Test25 qui Listbox")

WHILENOT ENDE%

    WAITINPUT

    Si (%KEY = 2)

        LET ENDE% = 1

    ELSEIF GETFOCUS(LISTBOX1%)'LISTBOX

        listindex% = @GetCursel(listbox1%)

        ifnot (listindex% < 0)

            Top% = @SendMessage(Listbox1%,398,0,0)
            @SendMessage(listbox1%,$0186,-1,0)
            settext editfeld%,@GetString$(listbox1%,listindex%)
            setwindowpos Modifier le champ de% = 2,((listindex% - top%) * 13) - 430,13; 0
            setfocus(editfeld%)
            sendmessage(editfeld%,$00B1,(len(gettext$(editfeld%)) + 1), -1)

            WHILE GETFOCUS(editfeld%)'DUMMYSCHLEIFE

                getmessage

                si (%message = 160)

                    setfocus(%hwnd)

                endif

            WEND

            GTEXT$ = gettext$(editfeld%)
            @DeleteString(Listbox1%,listindex%)
            @InsertString(Listbox1%,listindex%,gtext$)
            setwindowpos Modifier le champ de% = 0,0 - 0,0;0
            setwindowpos listbox1% = 0012,0013 - 0401,0107;0

        endif

    ELSEIF GETFOCUS(BUTTON1%)'BUTTON

        LET ENDE% = 1

    ENDIF

WEND

Deleteobject font%
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
18.10.2016  
 




Thomas
Freier
Ansatz la fois verfolgt. qui Éditer-Position doit mais pour cela verwendete WIN ajusté volonté (im Moment pour WIN7). un Beispiel, dass je encore verwende.
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
Fenêtre Style 16+512
Fenêtre 600,410
Titre de la fenêtre "Volumen, Schwerpunkt, ...."
cls ~GetSysColor(15)
Set("Décimal",2)
Déclarer Ende%,x&,x%,x!,x$,y&,y%,y!
Déclarer Item&,Wert&,Teil_L&
var LV_F&=CreateFont("Verdana",16,0,0,0,0)
SetDialogFont LV_F&
x$="Werte dans qui Tabelle pour Doppellinksklick eingeben.\n"
x$=x$+"Fläche allez avant a*b.\n"
x$=x$+"Fläche, bzw. a*b allez avant Radius.\n"
x$=x$+"Radius et Surface, bzw. a*b führt trop abgerundeten Kanten.\n"
x$=x$+"Wird zur Surface un Radius eingegeben, wird qui Ursprungsfläche modifié.\n"
Créer("Tooltip",%hwnd,%hwnd,x$)
CreateText(%hwnd,"Abschnitte",10,60,70,22)
CreateText(%hwnd,"Länge",100,10,70,22)
CreateText(%hwnd,"Teil-Länge",100,60,70,22)
CreateText(%hwnd,"spez. Gew.",10,10,90,22)
var LV1&=Créer("GridBox", %hwnd,"Inhalt;0;160;Wert;1;120",0,280,10,300,90)
setstyle Lv1&,getstyle(Lv1&) | ~LVS_NOCOLUMNHEADER
SetFont LV1&,LV_F&
Addstring(LV1&,"Volumen|0")
Addstring(LV1&,"Schwerpunkt de 0|0")
Addstring(LV1&,"Gewicht|0")
Addstring(LV1&,"Moment|0")
var Teile%=4
var Teile&=CreateText(%hwnd,"4",12,82,20,22)
var plus& = Créer("Button",%hwnd,"+",33,80,22,22)
var minus& = Créer("Button",%hwnd,"-",56,80,22,22)
var Spez& = Créer("Edit",%hwnd,"1",10,30,70,22)
sendmessage(Spez&,$00C5,7,0)
var Abst& = Créer("Edit",%hwnd,"1",100,30,70,22)
sendmessage(Abst&,$00C5,7,0)
Teil_L&=CreateText(%hwnd,str$(val(gettext$(Abst&))/Teile%),100,82,70,22)
Créer("GroupBox",%hwnd,"zu Null",480,114,100,140)
var récente1&=Créer("Button",%hwnd,"Fläche",490,140,80,22)
var récente2&=Créer("Button",%hwnd,"Seite-a",490,164,80,22)
var récente3&=Créer("Button",%hwnd,"Seite-b",490,188,80,22)
var récente4&=Créer("Button",%hwnd,"Radius",490,212,80,22)
var Ende&=Créer("Button",%hwnd,"ENDE",480,340,100,22)
var Rechne&=Créer("Button",%hwnd,"Rechne",480,316,100,22)
var LV&=Créer("GridBox", %hwnd,"x;1;0;Pos.;1;60;Fläche;1;120;Seite-a;1;80;Seite-b;1;80;Radius;1;80",0,10,110,460,250)
Addstring(LV&,"0.5|0|0|0|0|0")
Addstring(LV&,"2|1|0|0|0|0")
Addstring(LV&,"1|2|0|0|0|0")
Addstring(LV&,"2|3|0|0|0|0")
Addstring(LV&,"0.5|4|0|0|0|0")
SetFont LV&,LV_F&
SubClass %hwnd, 1
Utilisateur Messages 2000

WhileNot Ende%

    WaitInput
    cas Clicked(Ende&): Ende% = 1
    cas getfocus(Abst&) : NUMWERT Abst&, 3
    cas getfocus(Spez&) : NUMWERT Spez&, 3
    cas getfocus(Rechne&) : RECHNE
    cas getfocus(récente1&) : ITEM_LEER 2
    cas getfocus(récente2&) : ITEM_LEER 3
    cas getfocus(récente3&) : ITEM_LEER 4
    cas getfocus(récente4&) : ITEM_LEER 5
    settext Teil_L&,str$(val(gettext$(Abst&))/Teile%)

    Si (%umessage = 2000) AND (&ulparam > 1)

        'EDIT anlegen
        x$ = GetText $(LV&, &uwparam, &ulparam)
        x&= &ulparam
        y&= &uwparam
        x%=0
        y%=SendMessage(LV&,$101D, x&,0)

        Whileloop 0,x&-1,1

            x%=x%+SendMessage(LV&,$101D, &loop,0)

        Endwhile

        ' EDIT-Position vom System dépendant......austesten
        Wert& = Créer("Edit",LV&,x$,x%+2,(y&*20)+26,y%-2,18)
        @sendmessage(Wert&,$00C5,9,0)
        SetFont Wert&,LV_F&
        setfocus(wert&)
        @SendString(Wert&,"+ ({FIN})")

        Tandis que getfocus(wert&)

            waitinput
            cas getfocus(Wert&) : NUMWERT Wert&, 2

        Endwhile

        cas $ Trim(gettext$(wert&))=» : settext Wert&,"0"
        SetText LV&, y&, x&, translate$(gettext$(wert&),»,".")
        DestroyWindow(Wert&)
        setfocus(%hwnd)

    ElseIf getfocus(Minus&) AND (Teile%>4)

        SetText LV&, GetCount(LV&)-3, 0, "0.5"
        DeleteString(LV&,GetCount(LV&)-1)
        DeleteString(LV&,GetCount(LV&)-1)
        dec Teile%,2
        settext Teile&,str$(Teile%)
        settext Teil_L&,str$(val(gettext$(Abst&))/Teile%)
        setfocus(%hwnd)

    ElseIf getfocus(Plus&)

        SetText LV&, GetCount(LV&)-1, 0, "1"
        Addstring(LV&,"2|"+str$(GetCount(LV&))+"|0|0|0|0")
        Addstring(LV&,"0.5|"+str$(GetCount(LV&))+"|0|0|0|0")
        inc Teile%,2
        settext Teile&,str$(Teile%)
        settext Teil_L&,str$(val(gettext$(Abst&))/Teile%)
        setfocus(%hwnd)

    Endif

Endwhile

Usermessages 0
SubClass %hwnd, 0
FIN

SubClassProc

    Si SubClassMessage(%hWnd, ~WM_NOTIFY)

        Si Long(&sLParam,8)=-3

            item&=Long(&sLParam,12)

            Si item&<>-1

                SendMessage(%hwnd, 2000, item&, Long(&sLParam,16))

            EndIf

        EndIf

    EndIf

ENDPROC

Proc ITEM_LEER

    Paramètres x%

    WhileLoop 0,(GetCount(LV&)-1) ,1

        SetText LV&,&loop,x%,"0"

    Wend

ENDPROC

Proc RECHNE

    Set("Décimal",2)
    Déclarer S1!,F!,V!,G!,S!,T!
    T!=val(gettext$(Abst&))/Teile%

    WhileLoop 0,(GetCount(LV&)-1) ,1

        y!=sqr(val(Gettext$(LV&,&loop,5)) * 2) * Pi() / 4' Radius
        x!=val(Gettext$(LV&,&loop,3)) * val(Gettext$(LV&,&loop,4))'quatre-Eck
        cas val(Gettext$(LV&,&loop,2))=0 : SetText LV&,&loop,2,str$(x!)'aucun Surface ensuite a*b

        Si val(Gettext$(LV&,&loop,2))=0

            SetText LV&,&loop,2,str$(Y!)'aucun Surface ensuite R

        D'autre

            x!=sqr(val(Gettext$(LV&,&loop,5)) * 2) - y!
            SetText LV&,&loop,2, str$(val(Gettext$(LV&,&loop,2))- x! )'Surface - Rundung

        EndIf

        F! = F! + (val(Gettext$(LV&,&loop,2)) * val(Gettext$(LV&,&loop,0)))
        S1!=S1! + (val(Gettext$(LV&,&loop,2)) * val(Gettext$(LV&,&loop,0)) * val(Gettext$(LV&,&loop,1)))

    Endwhile

    Si (F!=0) OU (S1!=0)

        MessageBox("Eingaben manquer,\noder dürfen pas zéro son.\n\nBitte Changement!","Hinweis",32)
        RETOUR

    EndIf

    V!= F!*2/3*val(gettext$(Abst&))/Teile%
    SetText LV1&,0,1,str$(V!)
    S!=S1!/F!*val(gettext$(Abst&))/Teile%
    SetText LV1&,1,1,str$(S!)
    G!=V!*val(gettext$(Spez&))
    SetText LV1&,2,1,str$(G!)
    SetText LV1&,3,1,str$(S!*G!)

ENDPROC

Proc NUMWERT

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

    WhileLoop len(n.a$)

        n.c$ = MID $(n.a$,&Boucle,1)' c$= qui nte Stringteil
        Settext ED.N&,@Translate$(gettext$(ED.N&),n.c$,»)' unzulässige effacer
        Settext ED.N&,@Translate$(gettext$(ED.N&),"..",".")' doppelte effacer
        Settext ED.N&,@Translate$(gettext$(ED.N&),",,",»)' doppelte effacer

    Endwhile

    Settext ED.N&,@Translate$(gettext$(ED.N&),»,".")
    n.a$=$ Trim(gettext$(ED.N&))

    WhileLoop ED.N%+1

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

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

            n.a$="0"+n.a$

        EndIf

    Endwhile

    Si len(n.a$)=ED.N%

        cas @IsKey(8):n.a$=left$(n.a$,len(n.a$))
        casenot @IsKey(8):n.a$=left$(n.a$,ED.N%)+"."

    EndIf

    SetText ED.N&,n.a$
    sendmessage(ED.N&,$00B1,len(gettext$(ED.N&)),len(gettext$(ED.N&))+1)'Cursor à l' Ende
    SetFocus(ED.N&)

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
19.10.2016  
 




HofK
Thomas Freier (19.10.2016)
Ansatz la fois verfolgt. qui Éditer-Position doit mais pour cela verwendete WIN ajusté volonté (im Moment pour WIN7).


Pour Win 10 passt es chez mir so comment vorgegeben.
 
22.10.2016  
 




Christof
Neuß
allô Thomas,

c'est oui cool. merci!

Sorry. Momentan viens je pas so wirklich en supplément, mich avec cela trop beschäftigen. mais cela fais je sur jeden le cas encore.

Salut

Christof
 
XProfan X3
Win10 16 GB RAM
30.10.2016  
 




Matthias
Arlt
Hab cela Beispiel de Thomas qui besseren Vue d'ensemble à cause de la fois sur cela Wesentliche reduziert et quelque chose modifiziert. So sollte es eigentlich aussi indépendant de qui Win-Version passen...
Fenêtre 0,0 - 600,410
declare LV&,Spalte&,Zeile&,Item&,Edit&,Font&,Txt$
declare rect#,cellpos_x%,cellpos_y%,cellwidth%,cellhight%
Font&=CreateFont("Verdana",16,0,0,0,0)
SetDialogFont Font&
LV&=Créer("GridBox",%hwnd,"x;1;0;Spalte 1;1;60;Spalte 2;1;120;Spalte 3;1;80;Spalte 4;1;80;Spalte 5;1;80",0,10,10,460,250)
Addstring(LV&,"0.5|0|0|0|0|0")
Addstring(LV&,"2|1|0|0|0|0")
Addstring(LV&,"1|2|0|0|0|0")
Addstring(LV&,"2|3|0|0|0|0")
Addstring(LV&,"0.5|4|0|0|0|0")
SetFont LV&,Font&
SubClass %hwnd, 1
usermessages 2000

tandis que 1

    waitinput

    si (%umessage = 2000)

        Txt$ = GetText $(LV&,&uwparam,&ulparam)
        Spalte&= &ulparam
        Zeile&= &uwparam
        dim rect#,16
        SendMessage(LV&,$100E,Zeile&,rect#)'LVM_GETITEMRECT
        cellpos_x% = long(rect#,0)
        cellpos_y% = long(rect#,4) - 1
        cellwidth% = sendmessage(LV&,$101D,Spalte&,0)
        cellhight% = (long(rect#,12) - long(rect#,4)) + 1

        si Spalte& > 0

            whileloop 0,(Spalte& - 1),1

                cellpos_x% = cellpos_x% + sendmessage(LV&,$101D,&loop,0)

            Wend

        endif

        dispose rect#
        Edit& = create("Edit",LV&,Txt$,cellpos_x%,cellpos_y%,cellwidth%,cellhight%)
        setfont Edit&,Font&
        setfocus(Edit&)
        'SendMessage(Edit&,"+({FIN})") 'Cursor à l' Ende mettons...
        SendMessage(Edit&,$B1,0,-1)'ou bien Alles markieren...

        tandis que getfocus(Edit&)

            waitinput

        Wend

        settext LV&,Zeile&,Spalte&,gettext$(Edit&)
        destroywindow(Edit&)
        setfocus(%hwnd)

    endif

Wend

usermessages 0
SubClass %hwnd, 0
end

SubClassProc

    si SubClassMessage(%hwnd, 78)'WM_NOTIFY

        si (Long(&sLParam,8) = -3)

            Item&=Long(&sLParam,12)

            si (Item& <> -1)

                SendMessage(%hwnd,2000,Item&,Long(&sLParam,16))

            endif

        endif

    endif

endproc

 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
02.11.2016  
 




Thomas
Freier
super, et s'il te plaît le Quelltexten comme Gridbox avec Item-Éditer .
 
Gruß Thomas
Windows XP SP2, XProfan X2
02.11.2016  
 




Matthias
Arlt
Wurde soeben erledigt...

Salut Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
02.11.2016  
 




Christof
Neuß
Hey, c'est oui super!!!

Vielen Dank!

Kriege je es selber hin, dass qui Eingabe pour den Abschluss aussi sur ENTER (et/ou bien Pfeiltasten) reagiert, statt seulement sur Klick dans cela prochain champ?

Salut

Christof
 
XProfan X3
Win10 16 GB RAM
04.11.2016  
 




Thomas
Freier
oui sur qui 'AddHotKey's.
Soll ensuite mais sur qui Pfeiltasten cela prochain Item editiert volonté, dois du qui EDIT-Positionswerte (Spalte& bzw. Zeile& changement) récente ermitteln, alors eigenes Proc.
ici übernimmt seulement ENTER, flèche à gauche ou bien à droite den neuen Wert.
Fenêtre 0,0 - 600,410
declare LV&,Spalte&,Zeile&,Item&,Edit&,Font&,Txt$
declare rect#,cellpos_x%,cellpos_y%,cellwidth%,cellhight%
Font&=CreateFont("Verdana",16,0,0,0,0)
SetDialogFont Font&
LV&=Créer("GridBox",%hwnd,"x;1;0;Spalte 1;1;60;Spalte 2;1;120;Spalte 3;1;80;Spalte 4;1;80;Spalte 5;1;80",0,10,10,460,250)
Addstring(LV&,"0.5|0|0|0|0|0")
Addstring(LV&,"2|1|0|0|0|0")
Addstring(LV&,"1|2|0|0|0|0")
Addstring(LV&,"2|3|0|0|0|0")
Addstring(LV&,"0.5|4|0|0|0|0")
SetFont LV&,Font&
SubClass %hwnd, 1
usermessages 2000
AddHotKey 7001, 13, 0'Retour
AddHotKey 7002, 37, 0'flèche à gauche
AddHotKey 7003, 39, 0'flèche à droite

tandis que 1

    waitinput

    si (%umessage = 2000)

        Txt$ = GetText $(LV&,&uwparam,&ulparam)
        Spalte&= &ulparam
        Zeile&= &uwparam
        ' Werte pour cela EDIT
        dim rect#,16
        SendMessage(LV&,$100E,Zeile&,rect#)'LVM_GETITEMRECT
        cellpos_x% = long(rect#,0)
        cellpos_y% = long(rect#,4) - 1
        cellwidth% = sendmessage(LV&,$101D,Spalte&,0)
        cellhight% = (long(rect#,12) - long(rect#,4)) + 1

        si Spalte& > 0

            whileloop 0,(Spalte& - 1),1

                cellpos_x% = cellpos_x% + sendmessage(LV&,$101D,&loop,0)

            Wend

        endif

        dispose rect#
        ' EDIT
        Edit& = create("Edit",LV&,Txt$,cellpos_x%,cellpos_y%,cellwidth%,cellhight%)
        setfont Edit&,Font&
        setfocus(Edit&)
        'SendMessage(Edit&,"+({FIN})") 'Cursor à l' Ende mettons...
        SendMessage(Edit&,$B1,0,-1)'ou bien Alles markieren...

        tandis que 1

            waitinput

            Si MenuItem(7001) OU MenuItem(7002) OU MenuItem(7003)

                settext LV&,Zeile&,Spalte&,gettext$(Edit&)
                destroywindow(Edit&)
                pause

            D'autre

                destroywindow(Edit&)
                pause

            Endif

        Wend

        SendMessage(LV&,$102A,0,0)'LV récente zeichnen
        setfocus(%hwnd)

    endif

Wend

usermessages 0
SubClass %hwnd, 0
end

SubClassProc

    si SubClassMessage(%hwnd, 78)'WM_NOTIFY

        si (Long(&sLParam,8) = -3)

            Item&=Long(&sLParam,12)

            si (Item& <> -1)

                SendMessage(%hwnd,2000,Item&,Long(&sLParam,16))

            endif

        endif

    endif

endproc

 
Gruß Thomas
Windows XP SP2, XProfan X2
04.11.2016  
 




Matthias
Arlt
...ou bien bspw. so:
Fenêtre 0,0 - 600,410
declare LV&,Spalte&,Zeile&,Item&,Edit&,Font&,Txt$
declare rect#,cellpos_x%,cellpos_y%,cellwidth%,cellhight%
Font&=CreateFont("Verdana",16,0,0,0,0)
SetDialogFont Font&
LV&=Créer("GridBox",%hwnd,"x;1;0;Spalte 1;1;60;Spalte 2;1;120;Spalte 3;1;80;Spalte 4;1;80;Spalte 5;1;80",0,10,10,460,250)
Addstring(LV&,"0.5|0|0|0|0|0")
Addstring(LV&,"2|1|0|0|0|0")
Addstring(LV&,"1|2|0|0|0|0")
Addstring(LV&,"2|3|0|0|0|0")
Addstring(LV&,"0.5|4|0|0|0|0")
SetFont LV&,Font&
SubClass %hwnd, 1
usermessages 2000
AddHotKey 13, 13, 0
AddHotKey 37, 37, 0
AddHotKey 38, 38, 0
AddHotKey 39, 39, 0
AddHotKey 40, 40, 0

tandis que 1

    waitinput

    si (%umessage = 2000)

        Txt$ = GetText $(LV&,&uwparam,&ulparam)
        Spalte&= &ulparam
        Zeile&= &uwparam
        dim rect#,16
        SendMessage(LV&,$100E,Zeile&,rect#)'LVM_GETITEMRECT
        cellpos_x% = long(rect#,0)
        cellpos_y% = long(rect#,4) - 1
        cellwidth% = sendmessage(LV&,$101D,Spalte&,0)
        cellhight% = (long(rect#,12) - long(rect#,4)) + 1

        si Spalte& > 0

            whileloop 0,(Spalte& - 1),1

                cellpos_x% = cellpos_x% + sendmessage(LV&,$101D,&loop,0)

            Wend

        endif

        dispose rect#
        Edit& = create("Edit",LV&,Txt$,cellpos_x%,cellpos_y%,cellwidth%,cellhight%)
        setfont Edit&,Font&
        setfocus(Edit&)
        'SendMessage(Edit&,"+({FIN})") 'Cursor à l' Ende mettons...
        SendMessage(Edit&,$B1,0,-1)'ou bien Alles markieren...

        tandis que getfocus(Edit&)

            waitinput

            si (%menuitem = 13)

                pause

            elseif (%menuitem = 37) | (%menuitem = 38) | (%menuitem = 39) | (%menuitem = 40)

                cas (%menuitem = 37) : SendMessage(%hwnd,2000,(Zeile&),(Spalte& - 1))
                cas (%menuitem = 38) : SendMessage(%hwnd,2000,(Zeile& - 1),Spalte&)
                cas (%menuitem = 39) : SendMessage(%hwnd,2000,(Zeile&),(Spalte& + 1))
                cas (%menuitem = 40) : SendMessage(%hwnd,2000,(Zeile& + 1),Spalte&)
                pause

            endif

        Wend

        settext LV&,Zeile&,Spalte&,gettext$(Edit&)
        destroywindow(Edit&)
        setfocus(%hwnd)

    endif

Wend

usermessages 0
SubClass %hwnd, 0
end

SubClassProc

    si SubClassMessage(%hwnd, 78)'WM_NOTIFY

        si (Long(&sLParam,8) = -3)

            Item&=Long(&sLParam,12)

            si (Item& <> -1)

                SendMessage(%hwnd,2000,Item&,Long(&sLParam,16))

            endif

        endif

    endif

endproc

 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
04.11.2016  
 




Alibre
oui, c'est oui Genial!
Vielen Dank à alle!
 
XProfan X4
PRFellow für ProfanX4 -> Das wär was!
28.01.2021  
 




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

11.541 Views

Untitledvor 0 min.
Gast.0815 vor 11 Tagen
Walter03.05.2024
Rainer Hoefs10.05.2023
Hans Neff24.01.2023
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