Français
Source/ Codesnippets

GridBox avec (Sous)Item-Éditer

 

Matthias
Arlt

'Es wird pas qui standardmäßige Inplace-Editor qui Listview genutzt.
'cette serait seulement pour la première Spalte zur Disposition stehen...
'Original-Source Thomas Freier - modifiziert Matthias Arlt
Fenêtre 0,0 - 600,410
declare LV&,Spalte&,Zeile&,Item&,Edit&,Font&,Txt$
declare rect#,cellpos_x%,cellpos_y%,cellwidth%,cellheight%
Font&=CreateFont("Verdana",16,0,0,0,0)
SetDialogFont Font&
LV&=Créer("GridBox",%hwnd,"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)
SetFont LV&,Font&

whileloop 0,20

    Addstring(LV&,str$(&loop) + "|0|0|0|0")

Wend

Edit& = create("Edit",LV&,»,0,0,0,0)
setfont Edit&,Font&

proc SetSubItemEdit

    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)
    cellheight% = (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#
    settext Edit&, Txt$
    setwindowpos Edit& = cellpos_x%,cellpos_y% - cellwidth%,cellheight%
    setfocus(Edit&)
    'SendMessage(Edit&,"+({FIN})") 'Cursor à l' Ende mettons...
    SendMessage(Edit&,$B1,0,-1)'ou bien Alles markieren... (Explorer-konform)

endproc

AddHotKey 13, 13, 0
AddHotKey 37, 37, 0
AddHotKey 38, 38, 0
AddHotKey 39, 39, 0
AddHotKey 40, 40, 0
SubClass %hwnd, 1
usermessages 2000

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

        elseif (Long(&sLParam,8) = -180)'LVN_BEGINSCROLL

            settext LV&,Zeile&,Spalte&,gettext$(Edit&)
            setwindowpos Edit& = 0,0-0,0

        endif

    endif

endproc

tandis que 1

    waitinput

    si (%umessage = 2000)

        Txt$ = GetText $(LV&,&uwparam,&ulparam)
        Spalte&= &ulparam
        Zeile&= &uwparam
        SetSubItemEdit

        tandis que getfocus(Edit&)

            waitinput

            si (%menuitem = 13)

                pause

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

                settext LV&,Zeile&,Spalte&,gettext$(Edit&)
                cas (%menuitem = 37) : Spalte& = (Spalte& - 1)
                cas (%menuitem = 38) : Zeile& = (Zeile& - 1)
                cas (%menuitem = 39) : Spalte& = (Spalte& + 1)
                cas (%menuitem = 40) : Zeile& = (Zeile& + 1)
                Txt$ = GetText $(LV&,Zeile&,Spalte&)
                SetSubItemEdit

            endif

        Wend

        settext LV&,Zeile&,Spalte&,gettext$(Edit&)
        setwindowpos Edit& = 0,0-0,0
        setfocus(%hwnd)

    endif

Wend

usermessages 0
SubClass %hwnd, 0
end
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
02.11.2016  
 




Ernst
Einen le crochet hat qui Geschichte, si qui Scrollbalken ins Spiel venez - cela Éditer-champ bzw. qui Cursor peut sich pas mitscrollen.

z.B.: un Subitem dans qui dritten la ligne wird doppelgeklickt -> Éditer erscheint; beim hinaufscrollen um une la ligne sieht on cela Erscheinungsbild des Edits dans qui zweiten et den Cursor au-dessous dans qui dritten la ligne. chez qui Eingabe wird dans qui dritten la ligne sous dem Éditer geschrieben (scheinbar) - beim Klick sur un d'autre Subitem wird qui Text dans cela eigentlich richtige Subitem (zweite la ligne) übernommen.
 
11.01.2017  
 




Matthias
Arlt
Eigentlich soll cela Éditer standardmäßig oui garnicht mitscrollen (im Explorer tut es cela oui aussi pas...). je habs nochmal révisée. avec cela sollte eh bien cela gewohnte Verhalten hergestellt son.

et qui Vollständigkeit halber cela Ganze et avec ca optimiert et juste encore avec Weiterschaltung mittels Pfeiltasten...

j'ai cela la fois dans qui Code-Box im Eingangsbeitrag déménagé. Schließlich pouvoir es keinen Sinn, là den encore pas fehlerbereinigten Source stehen trop laisser. cela allez seulement trop Lasten qui Übersichtlichkeit. Siehe alors plus dessus...

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



Zum Quelltext


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

6.176 Views

Untitledvor 0 min.
Gast.081503.10.2024
Member 862464112.05.2024
Walter28.11.2022
RudiB.20.08.2022
plus...

Themeninformationen

cet Thema hat 2 participant:

Matthias Arlt (2x)
Ernst (1x)


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