Français
Forum

le calendrier et GetControlParas(B#)

 

Thomas
Freier
cherche une Solution, avec cela pour dem Double-cliquez sur pas tout de suite cela aktuelle date übernommen wird. Doit je seulement cela Kalenderdatum sur cela im Item vorhandene ajuster ou bien une eigenen le calendrier erstellen? aussi serait je volontiers, dass cela Element pour Datumswahl im le calendrier automatisch détruit wird.
KompilierenMarqueSéparation
*****************************************************************
* Beispiel für die Funktion: GetControlParas(B#)                *
* Autor: Normann Strübli                                        *
*****************************************************************
Declare Listview&,Lvdll&,Mklick&,Element&
Declare LV_Handle&,LV_Column&,LV_Row&,LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&
Declare LV_Font&,LV_Orient&,LV_Text$,Edit_finish%,All_finish%,Eintrag%
declare HandlefromPoint&,mousepos#,HT_Info#,tab%
DIM MousePos#,10
DIM HT_Info#,16
Declare Font&
Declare Bereich#
Dim bereich#,320
Clear bereich#
DEF SetWindowPos(7) !USER32,SetWindowPos
DEF DeleteObject(1) !GDI32,DeleteObject
Def SetWindowLong(3) !USER32, SetWindowLongA
Def GetWindowLong(2) !USER32, GetWindowLongA
DEF GetKeyState(1) ! USER32, GetKeyState
dEF ScreenToClient(2) !USER32,ScreenToClient
DEF Key(1) @equ(@and(getkeystate(&(1)),$8000),$8000)
DEF getcursorpos(1) !USER32,GetCursorPos
DEF mouseposx(0) long(mousepos#,0)
DEF mouseposy(0) long(mousepos#,4)
Def SetEditNumeric(1) SetWindowLong(@&(1),-16,
Or(GetWindowLong(@&(1),-16),$2002))
 $I Listview_Funktionen.inc
SETTRUECOLOR 1
Font& = @CREATE(FONT,NEW TIMES ROMAN,18,0,1,0,0)
Window 0,0-608,413
Windowtitle Beispiel: GetControlParas(B#)
lvdll&=usedll(bvr/Listview.dll)
listview&=CreateListView(%hwnd,%hinstance,0,Rgb(150,150,255),-1,$31)
SetFont listview&,Font&
InsertColumn listview&,Datum,100,2
SetItem listview&,11.02.2008
SetItem listview&,24.05.1997
SetItem listview&,14.08.1988
ShowListView(listview&,0,0,600,368)
InitMessages(%hwnd)

Proc Get_LvData

    LV_Handle&=Long(bereich#,0)              Listview Handle
    LV_Column&=Long(bereich#,4)              Index Spalte
    LV_Row&=Long(bereich#,8)                 Index Zeile
    LV_Xoffset&=Long(bereich#,12)            X Offset
    LV_Yoffset&=Long(bereich#,16)            Y Offset
    LV_Width&=Long(bereich#,20)              Breite
    LV_Height&=Long(bereich#,24)             Höhe
    LV_Font&=Long(bereich#,28)               Font Handle
    LV_Orient&=Long(bereich#,32)             Textausrichtung
    LV_Text$=String$(bereich#,64)            Itemtext
    LV_Height& = @SUB(LV_Height&,2)          Kleine Größenkorrektur

    if LV_Orient& = 1

        LV_Orient& = 2

    Elseif LV_Orient& = 2

        LV_Orient& = 1

    endif

    if @gt(@add(LV_Xoffset&,LV_Width&),@Width(LV_Handle&)) Damit das Element nicht Außerhalb

        LV_Width& = @sub(@Width(LV_Handle&),LV_Xoffset&)       des Sichtbaren Bereiches der Spalte
        endif                                                  erstellt wird

    Endproc

    Proc CursorPos

        getcursorpos(mousepos#)                                    Mausposition ermitteln
        ScreenToClient(LV_Handle&,mousepos#)                       In Bildirmkoordinaten umrechen
        Long Ht_info#,0=Long(mousepos#,0)
        Long Ht_info#,4=Long(mousepos#,4)
        Long Ht_info#,8=0
        Long Ht_info#,12=0

    Endproc

    Proc Edit_Kalender

        var Edit_Finish% = 0
        var Element_E&=Create(DateEdit, LV_Handle&, , LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&)
        SetWindowPos(Element_E&,-1,0,0,0,0,$13)
        @Setfocus(Element_E&)

        Whilenot Edit_Finish%

            getmessage
            case @ISKEY(27) : BREAK

            If @ISKEY(13)                            Enter

                LV_Text$ = @GetText$(Element_E&)        Änderungen übernehmen
                SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
                Edit_Finish% = 1

            endif

        wend

        @DestroyWindow(Element_E&)            Edit zerstören

    Endproc

    HAUPTPROGRAMM

    While 1

        waitinput
        Case %key=2:BREAK
        MKlick& = GetControlParas(Bereich#)Feldparameter auslesen

        If @equ(Mklick&,1)         Doppelklick links

            Get_LvData                 Parameter auslesen
            Edit_Kalender

        endif

    Wend

    Dispose Bereich#
    Dispose Mousepos#
    Dispose HT_Info#
    CloseMessages(%hwnd)
    freedll lvdll&
     $I Listview_Dispose.inc
    DELETEOBJECT Font&
    Fin
 
Gruß Thomas
Windows XP SP2, XProfan X2
19.02.2008  
 



qui Code alleine ist malheureusement pas courir. ici hätte je mir une ZIP gewünscht.
 
19.02.2008  
 




Thomas
Freier
qui Wunsch wird erfüllt.

 
Gruß Thomas
Windows XP SP2, XProfan X2
20.02.2008  
 




Jörg
Sellmeyer

KompilierenMarqueSéparation
Proc Edit_Kalender

    var Edit_Finish% = 0
    var Element_E&=Create(DateEdit, LV_Handle&, GetText$(LV_HAndle&,LV_Row&,LV_Column&), LV_Xoffset&,LV_Yoffset&,LV_Width&,LV_Height&)
    SetWindowPos(Element_E&,-1,0,0,0,0,$13)
    @Setfocus(Element_E&)

    Whilenot Edit_Finish%

        waitinput
        getmessage
        case @ISKEY(27) : BREAK

        If @ISKEY(13)                            Enter

            LV_Text$ = @GetText$(Element_E&)        Änderungen übernehmen
            SetItemText(LV_HAndle&,addr(LV_Text$),LV_Column&,LV_Row&)
            Edit_Finish% = 1

        endif

    wend

    @DestroyWindow(Element_E&)            Edit zerstören

ENDPROC

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
20.02.2008  
 




Thomas
Freier
merci Jörg. tu étais vite comment qui Wüstenwind.
eh bien werde je es versuchen, si je es aussi avec Feldsprüngen par qui bouton TAB comment im Beispiel Eigene Eingaben qui Listview hinbekomme. Sonst trenne je qui Eingabe dans den Feldern.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.02.2008  
 



allô Thomas
So hab je cela chez mir gelöst -
KompilierenMarqueSéparation
PROC KALENDER_HILFE

    Messagebox(Hier kann eine kurze Hilfe hin,Date$(2),64)

ENDPROC

PROC MGH_KALENDER

    declare datum$
    declare font0%,font00%,txt%,datumtext%
    font0%=CREATE(FONT,ARIAL,14,0,0,0,0)
    font00%=CREATE(FONT,ARIAL,16,6,0,0,0)
    declare cal_EE%,cal_win&,calender&,lesen&,aus&,cal_hlp&
    DECLARE d%,m%,y%
    declare d$,m$,y$,dtp#
    DEF getsystime(2) SendMessage(&(1),4097,0,&(2))
    dim dtp#,20

    PROC GETDATE

        parameters chdl&
        waitinput
        getsystime(chdl&,dtp#)
        d$=format$(00,word(dtp#,6))
        m$=format$(00,word(dtp#,2))
        y$=format$(0000,word(dtp#,0))

    ENDPROC

    WindowStyle 48
    cal_win&=CREATE(WINDOW,%HWND,Datum auswählen...,200,100,205,300)
    calender&=Control(SysMonthCal32,,$54000004,1,0,202,155,cal_win&,2000,%hinstance)
    d%=CREATE(EDIT,cal_win&,d$,30,165,30,20)
    SetFont d%,font0%
    m%=CREATE(EDIT,cal_win&,m$,80,165,30,20)
    SetFont m%,font0%
    y%=CREATE(EDIT,cal_win&,y$,130,165,40,20)
    SetFont y%,font0%
    txt%=CREATE(TEXT,cal_win&,T T,35,185,20,20)
    SetFont txt%,font0%
    txt%=CREATE(TEXT,cal_win&,MM,85,185,30,20)
    SetFont txt%,font0%
    txt%=CREATE(TEXT,cal_win&,JJJJ,135,185,50,20)
    SetFont txt%,font0%
    lesen&=Create(Button,cal_win&,&Datum eintragen,10,205,180,25)
    SetFont lesen&,font00%
    cal_hlp&=Create(Button,cal_win&,?,10,240,50,20)
    aus&=Create(Button,cal_win&,&Zurück,80,235,110,25)
    SetFont aus&,font00%
    cal_EE%=0
    SetFocus(d%)

    WHILENOT cal_EE%

        WAITINPUT

        IF CLICKED(lesen&) | (ISKEY(18) & Iskey(68))

            d$=GETTEXT$(d%)
            m$=GETTEXT$(m%)
            y$=GETTEXT$(y%)
            datum$=d$+m$+y$

            IF datum$=

                getdate(calender&)
                datum$=d$+.+m$+.+y$

            ENDIF

            datum$=d$+.+m$+.+y$
            DesTroyWindow(cal_win&)
            SetText datumtext%,datum$
            cal_EE%=1
            dispose dtp#

        ENDIF

        IF CLICKED(aus&) | (ISKEY(18) & Iskey(90))

            DesTroyWindow(cal_win&)
            cal_EE%=1
            dispose dtp#
            SetActiveWindow(%HWnd)

        ENDIF

        CASE CLICKED(cal_hlp&):KALENDER_HILFE

    ENDWHILE

ENDPROC

window (%MaxX+10),0-0,100
mgh_kalender
end
 
20.02.2008  
 




Thomas
Freier
Horst, je suchte pas une le calendrier.
je voudrais, dass beim éditer eines Listviewfeldes einer angeboten wird.
qui Solution de Jörg ist OK, si jeweils un champ editiert volonté peux.
cela Problem venez, si je qui la ligne éditer et TAB un champ plus springen veux (siehe Anhang, ici qui Datumsfelder).
je mach seulement einmal une Gedankenpause. mais peut-être hat ici déjà einer une Solution ou bien une Vorschlag en supplément.

 
Gruß Thomas
Windows XP SP2, XProfan X2
20.02.2008  
 




Jörg
Sellmeyer
je serait avec AddHotKey(2000,9,0) cela Drücken qui Tabtaste intercepter. ensuite peux Du entier gezielt irgendwelche Aktionen vornehmen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
20.02.2008  
 




Frank
Abbing
Thomas, vois du cela comme Listview.dll-Problem?
 
20.02.2008  
 




Thomas
Freier
non, vois je pas so. voulais seulement une Listviewzeile comment im Beispiel Eigene_Eingaben éditer, cependant avec einer Datumsauswahl. Probleme bereitete ensuite getmessage . Wird cela champ erreicht, wird tout de suite cela aktuelle date übernommen, quoi naturellement chez einem vorhandenem date pas tragbar était. Werde avec Jörgs Empfehlungen selbst quelque chose zusammenbauen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.02.2008  
 




Frank
Abbing
Ok.
 
21.02.2008  
 



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

1.888 Views

Untitledvor 0 min.
Walter08.06.2021
Axel Berse18.02.2019
Uwe Lang21.02.2016
Manfred Barei28.11.2015
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