Español
Foro

SpinEdit Start- y Endwert während el Laufzeit verändern MESSAGES

 

Rainer
Hoefs
Halo zusammen,

Yo búsqueda después de Messages con denen uno en una SpinEdit, je después de Situation, el Min-, Start- y/oder Endwerte verändern kann.

Für jede Ayuda dankbar,

Saludo

Rainer
 
28.06.2015  
 




H.Brill
tal vez hilft dir el más : [...] 
 
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.
28.06.2015  
 




Rainer
Hoefs
¡Hola,

vielen Dank, aber no trabajo para mí, Tengo el SpinEdit con create("SpinEdit",... erstellt.

MfG
Rainer
 
28.06.2015  
 




RGH
Ab Versión X3 lugar Yo el Spinedit en el neue Form en, como el bisherige Variante de Microsoft como "veraltet" bezeichnet se. Dann voluntad esta Messages trabajo.

Das bisherige SpinEdit es con el API "createUpDownControl" producido worden. Si usted danach suchst, solltest Usted auch el dafür passenden Messages encontrar. Auf el Shcnelle en mi "schlauen Buch"* para Steuerelemente gefunden:

El Messages fangen con UDM_ a.
UDM_SETPOS stellt el Startwert una. WPARAM ha 0 y LPARAM es el Valor.
UDM_SETRANGE stellt el Zona una. WPARAM ha 0 y LoWord de LPARAM es el maximale Valor, en HiWord(LPARAM) el Minimalwert (jeweils 16 Bit).
UDM_SETBASE setzt el Base en WPARAM, welches 10 (dezimal) oder 16 (hexadezimal) ser kann.

Saludo
Roland

* Richard J. Simon, Windows 95/NT API Bible, Band 2: Steuerelemente & Noticias, SAMS 1996, 129,00 DM
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
28.06.2015  
 



En algo como kann auch Konstantinopel siempre bien helfen:  [...] 


UD_MAXVAL = { $7 | 7 }FFF
UD_MINVAL = -UD_MAXVAL
UDM_GETACCEL = WM_USER + { $6C | 108 }
UDM_GETBASE = WM_USER + { $6E | 110 }
UDM_GETBUDDY = WM_USER + { $6A | 106 }
UDM_GETPOS = WM_USER + { $68 | 104 }
UDM_GETRANGE = WM_USER + { $66 | 102 }
UDM_GETRANGE32 = WM_USER + { $70 | 112 }
UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
UDM_SETACCEL = WM_USER + { $6B | 107 }
UDM_SETBASE = WM_USER + { $6D | 109 }
UDM_SETBUDDY = WM_USER + { $69 | 105 }
UDM_SETPOS = WM_USER + { $67 | 103 }
UDM_SETRANGE = WM_USER + { $65 | 101 }
UDM_SETRANGE32 = WM_USER + { $6F | 111 }
UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
UDN_DELTAPOS = UDN_FIRST - { $1 | 1 }
UDN_FIRST = { $0 | 0 }-{ $2D1 | 721 }
UDN_LAST = { $0 | 0 }-{ $2E4 | 740 }
UDS_ALIGNLEFT = { $8 | 8 }
UDS_ALIGNRIGHT = { $4 | 4 }
UDS_ARROWKEYS = { $20 | 32 }
UDS_AUTOBUDDY = { $10 | 16 }
UDS_HORZ = { $40 | 64 }
UDS_HOTTRACK = { $100 | 256 }
UDS_NOTHOUSANDS = { $80 | 128 }
UDS_SETBUDDYINT = { $2 | 2 }
UDS_WRAP = { $1 | 1 }

485 kB
Hochgeladen:28.06.2015
Ladeanzahl114
Descargar
 
28.06.2015  
 




RGH
BTW: Was me alte Buch verheimlichte: Lo son auch UDM_SETRANGE32, wo el Werte en WPARAM y LPARAM posición.

Si usted con $H commctrl.ph el passende Encabezamiento-Expediente nutzt, sin el Messages bekannt y puede como gewohnt genutzt voluntad, etwa:

SendMessage(hMeinControl, ~UDM_SETRANGE32, 10, 70)

Saludo
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
28.06.2015  
 




Rainer
Hoefs
Hola Roland,

funktioniert auch no!

MfG
Rainer
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
Def sEditNum(1) Externo("USER32","SetWindowLongA",&(1),-16,(Externo("USER32","GetWindowLongA",&(1),-16) | $2000))
cls

Proc Diálogo3

    Declarar Db%, Feldname%, FeldLaenge&, DezimalStellen%, FeldTyp%, Guardar%, NeuesFeld%, FeldLoeschen%, Next%, Previous%
    Declarar ExitDialog%, ErstelleDB%, DbFeldliste%, ListString$, FeldTyp$, DBName%
    Db% = Crear("Dialog",Db%,"Datenbank Felder definieren", 180,70,818,260)
    Var texto0% = Crear("Text", Db%, "Datenbankname", 24, 16, 184, 16)
    DBname% = Crear("Edit", Db%, "Datenbankname", 24, 40, 184, 24)
    Var texto1% = Crear("Text", Db%, "Feldname", 224, 16, 184, 16)
    Feldname% = Crear("Edit", Db%, "Feldname", 224, 40, 184, 24)
    SendMessage(Feldname%,$00C5,10,0)
    Var texto3% = Crear("Text", Db%, "Feldtyp", 424, 16, 160, 16)
    FeldTyp% = Crear("ChoiceBox", Db%, 0, 424, 40, 160, 116)
    AddStrings(FeldTyp%,"C = Alphanumerisch")
    AddStrings(FeldTyp%,"N = Numerisch")
    AddStrings(FeldTyp%,"D = Datum")
    AddStrings(FeldTyp%,"L = Logisch (J/N)")
    AddStrings(FeldTyp%,"M = Memofeld")
    Seleccione String(FeldTyp%,-1,"C =")
    Var  texto2% = Crear("Text", Db%, "Feldlänge", 600, 16, 96, 16)
    Feldlaenge& =Crear("SpinEdit", Db%,"1;1;1", 600, 40, 76, 24)
    SEditNum(FeldLaenge&)
    Var texto4% = Crear("Text", Db%, "Dezimalstellen", 692, 16, 126, 16)
    Dezimalstellen% = Crear("SpinEdit", Db%, "0;0;2", 692, 40, 96, 24)
    SEditNum(DezimalStellen%)
    Guardar% = Crear("Button", Db%, "*.STR speichern", 495, 80, 121, 24)
    NeuesFeld% = Crear("Button", Db%, "Feld anhängen", 168, 80, 112, 24)
    FeldLoeschen% = Crear("Button", Db%, "Feld löschen", 332, 80, 111, 24)
    ExitDialog% = Crear("Button", Db%, "Beenden", 24, 80, 92, 24)
    ErstelleDb% = Crear("Button", Db%, "*.DBF erstellen", 668, 80, 122, 24)
    DbFeldListe% = Crear("ListBox", Db%, 0, 24, 114, 764, 100)
    EnableWindow FeldLaenge&,1
    SetText FeldLaenge&,"0"
    EnableWindow DezimalStellen%,0
    SetText DezimalStellen%,"0"
    Declarar I%
    I% = 0
    Mensajes del usuario 16
    Declarar DialogEnde%
    DialogEnde% = 0

    Sinestar encargado DialogEnde% = 1

        WaitInput
        Case %umessage = 16 : BREAK

        If Clicked(Feldname%)

        ElseIf Clicked(FeldTyp%)

            Feldtyp$ = Left$(GetText $(FeldTyp%),1)

            Select FeldTyp$

                CaseOf "C"

                EnableWindow FeldLaenge&,1
                '**************************************************************************************
                ' Hier se el Max-Valor en 254 wegen C-Feld gesetzt voluntad!
                '**************************************************************************************
                SendMessage(FeldLaenge&, ~UDM_SETRANGE32, 1, 254)
                SetText FeldLaenge&,"1"
                EnableWindow DezimalStellen%,0
                SetText DezimalStellen%,"0"

                CaseOf "N"

                '**************************************************************************************
                ' Hier se el Max-Valor en 19 wegen N-Feld gesetzt voluntad!
                '**************************************************************************************
                SendMessage(FeldLaenge&, ~UDM_SETRANGE32, 1, 19)
                EnableWindow FeldLaenge&,1
                SetText FeldLaenge&,"1"
                EnableWindow DezimalStellen%,1
                SetText DezimalStellen%,"0"

                CaseOf "D"

                SetText DezimalStellen%,"0"
                EnableWindow DezimalStellen%,0
                SetText FeldLaenge&,"8"
                EnableWindow FeldLaenge&,0

                CaseOf "L"

                SetText DezimalStellen%,"0"
                EnableWindow DezimalStellen%,0
                SetText FeldLaenge&,"1"
                EnableWindow FeldLaenge&,0

                CaseOf "M"

                SetText DezimalStellen%,"0"
                EnableWindow DezimalStellen%,0
                SetText FeldLaenge&,"10"
                EnableWindow FeldLaenge&,0

            EndSelect

        ElseIf Clicked(FeldLaenge&)

        ElseIf Clicked(Dezimalstellen%)

        ElseIf Clicked(Guardar%)

        ElseIf Clicked(NeuesFeld%)

            ListString$ = Upper$(GetText $(Feldname%))+";"+Upper$(Left$( GetText $(FeldTyp%);1))+";"+GetText $( FeldLaenge&)+";"+GetText $(DezimalStellen%)

            If Seleccione String(DbFeldListe%,-1,Upper$(GetText $(Feldname%))) > -1

                MessageBox("Feld besteht ya!\r\rBitte Felddaten korrigieren!","Fehler en Felddefinition!",64)
                SetFocus(Feldname%)

            Más

                AddStrings(DbFeldListe%,ListString$)
                Seleccione String(DbFeldListe%,-1,ListString$)

            EndIf

        ElseIf Clicked(FeldLoeschen%)

        ElseIf Clicked(Next%)

        ElseIf Clicked(Previous%)

        ElseIf Clicked(ExitDialog%)

            DialogEnde% = 1

        ElseIf Clicked(ErstelleDB%)

        ElseIf Clicked(DbFeldliste%)

        EndIf

    EndWhile

    DestroyWindow(Db%)

ENDPROC

Diálogo3
End
 
28.06.2015  
 




RGH
Möglicherweise puede ser en el Control esta Werte no nachträglich ändern. Dann hilft sólo eins: Control con DestroyWindow() löschen y el neuen Werten neu redactar.

Saludo
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
28.06.2015  
 




Rainer
Hoefs
Hola Roland,

el Yo auch ya erfolglos probiert!

MfG
Rainer
 
28.06.2015  
 




RGH
Sorry, mein Fehler:

Das Handle de SpinEdit es sí primero el Handle des Editar-Feldes y no el Handle des UpDown-Controls!
Como el ItemId des UpDown-Controls exakt 1 höher es, como el des Editar-Feldes davor, puede ser así dessen Handle ermitteln y el oben erwähnten Messages auch tatsächlich en el laufenden Programa ändern:
var hEdit& = Crear("SpinEdit", %hWnd, "60; -100; 100", 8, 56, 80, 20)
var hSpin& = GetHandle(%hWnd, ItemId(hEdit&) + 1)
SendMessage(hSpin&,$467,0,95)'  95 = Ausgangszahl
SendMessage(hSpin&,$46f,40,1440)'  40 a 1440 = Mini-y Maximalwert

Um el komplette Spinedit a löschen, muss uno beide con DestroyWindow() entfernen.

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
28.06.2015  
 




Rainer
Hoefs
Gracias Roland, ahora funktioniert lo.

MfG
RAiner
 
28.06.2015  
 



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.453 Views

Untitledvor 0 min.
H.Brill20.05.2023
Rainer Hoefs22.04.2023
Ernst16.04.2021
Michael W.02.01.2021
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