Français
Forum

SpinEdit Start- et Endwert au cours de qui Laufzeit verändern MESSAGES

 

Rainer
Hoefs
Halo zusammen,

je cherche pour Messages avec denen on chez einem SpinEdit, je pour Situation, qui Min-, Start- et/ou bien Endwerte verändern peux.

Pour chacun Aider reconnaissant,

Salut

Rainer
 
28.06.2015  
 




H.Brill
peut-être hilft dir cela plus : [...] 
 
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
Salut,

vielen Dank, mais funktioniert chez Je ne, j'ai cela SpinEdit avec create("SpinEdit",... erstellt.

MfG
Rainer
 
28.06.2015  
 




RGH
Ab Version X3 lieu je cela Spinedit sur qui neue forme um, là qui bisherige variante de Microsoft comme "veraltet" bezeichnet wird. ensuite volonté cet Messages marcher.

cela bisherige SpinEdit ist avec qui API "createUpDownControl" erzeugt worden. si Du après cherches, devrait Du aussi qui pour passenden Messages trouver. sur qui Shcnelle dans mon "schlauen Buch"* pour Steuerelemente trouvé:

qui Messages attraper avec UDM_ à.
UDM_SETPOS stellt den Startwert un. WPARAM hat 0 et dans LPARAM steht qui Wert.
UDM_SETRANGE stellt den Bereich un. WPARAM hat 0 et LoWord de LPARAM steht qui maximale Wert, dans HiWord(LPARAM) qui Minimalwert (jeweils 16 Bit).
UDM_SETBASE mets qui la base sur WPARAM, welches 10 (dezimal) ou bien 16 (hexadezimal) son peux.

Salut
Roland

* Richard J. Simon, Windows 95/NT API Bible, ruban 2: Steuerelemente & Nouvelles, 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  
 



chez quelque chose comme peux aussi Konstantinopel toujours bien aider:  [...] 


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
Downloadcounter114
Download
 
28.06.2015  
 




RGH
BTW: quoi mir cela vieille livre verheimlichte: il y a aussi UDM_SETRANGE32, wohin qui Werte dans WPARAM et LPARAM stehen.

si Du avec $H commctrl.ph qui passende En-tête-Dossier utilise, sin qui Messages bekannt et peut comment gewohnt genutzt volonté, etwa:

SendMessage(hMeinControl, ~UDM_SETRANGE32, 10, 70)

Salut
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
allô Roland,

funktioniert aussi pas!

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

Proc Dialog3

    Déclarer Db%, Feldname%, FeldLaenge&, DezimalStellen%, FeldTyp%, Sauver%, NeuesFeld%, FeldLoeschen%, Next%, Previous%
    Déclarer ExitDialog%, ErstelleDB%, DbFeldliste%, ListString$, FeldTyp$, DBName%
    Db% = Créer("Dialog",Db%,"Datenbank Felder definieren", 180,70,818,260)
    Var text0% = Créer("Text", Db%, "Datenbankname", 24, 16, 184, 16)
    DBname% = Créer("Edit", Db%, "Datenbankname", 24, 40, 184, 24)
    Var text1% = Créer("Text", Db%, "Feldname", 224, 16, 184, 16)
    Feldname% = Créer("Edit", Db%, "Feldname", 224, 40, 184, 24)
    SendMessage(Feldname%,$00C5,10,0)
    Var text3% = Créer("Text", Db%, "Feldtyp", 424, 16, 160, 16)
    FeldTyp% = Créer("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")
    Sélectionnez String(FeldTyp%,-1,"C =")
    Var  text2% = Créer("Text", Db%, "Feldlänge", 600, 16, 96, 16)
    Feldlaenge& =Créer("SpinEdit", Db%,"1;1;1", 600, 40, 76, 24)
    SEditNum(FeldLaenge&)
    Var text4% = Créer("Text", Db%, "Dezimalstellen", 692, 16, 126, 16)
    Dezimalstellen% = Créer("SpinEdit", Db%, "0;0;2", 692, 40, 96, 24)
    SEditNum(DezimalStellen%)
    Sauver% = Créer("Button", Db%, "*.STR speichern", 495, 80, 121, 24)
    NeuesFeld% = Créer("Button", Db%, "Feld anhängen", 168, 80, 112, 24)
    FeldLoeschen% = Créer("Button", Db%, "Feld löschen", 332, 80, 111, 24)
    ExitDialog% = Créer("Button", Db%, "Beenden", 24, 80, 92, 24)
    ErstelleDb% = Créer("Button", Db%, "*.DBF erstellen", 668, 80, 122, 24)
    DbFeldListe% = Créer(ListBox, Db%, 0, 24, 114, 764, 100)
    EnableWindow FeldLaenge&,1
    SetText FeldLaenge&,"0"
    EnableWindow DezimalStellen%,0
    SetText DezimalStellen%,"0"
    Déclarer I%
    I% = 0
    Utilisateur Messages 16
    Déclarer DialogEnde%
    DialogEnde% = 0

    WhileNot DialogEnde% = 1

        WaitInput
        Cas %umessage = 16 : BREAK

        Si Clicked(Feldname%)

        ElseIf Clicked(FeldTyp%)

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

            Select FeldTyp$

                CaseOf "C"

                EnableWindow FeldLaenge&,1
                '**************************************************************************************
                ' ici soll qui Max-Wert sur 254 à cause de C-champ gesetzt volonté!
                '**************************************************************************************
                SendMessage(FeldLaenge&, ~UDM_SETRANGE32, 1, 254)
                SetText FeldLaenge&,"1"
                EnableWindow DezimalStellen%,0
                SetText DezimalStellen%,"0"

                CaseOf "N"

                '**************************************************************************************
                ' ici soll qui Max-Wert sur 19 à cause de N-champ gesetzt volonté!
                '**************************************************************************************
                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(Sauver%)

        ElseIf Clicked(NeuesFeld%)

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

            Si Sélectionnez String(DbFeldListe%,-1,Upper$(GetText $(Feldname%))) > -1

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

            D'autre

                AddStrings(DbFeldListe%,ListString$)
                Sélectionnez 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

Dialog3
Fin
 
28.06.2015  
 




RGH
Möglicherweise peux on chez dem Contrôle cet Werte pas nachträglich changement. ensuite hilft seulement une: Contrôle avec DestroyWindow() effacer et den neuen Werten récente erstellen.

Salut
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
allô Roland,

cela habe je aussi déjà erfolglos probiert!

MfG
Rainer
 
28.06.2015  
 




RGH
Sorry, mon faute:

cela Handle de SpinEdit ist oui zunächst cela Handle des Éditer-Feldes et pas cela Handle des UpDown-Controls!
là qui ItemId des UpDown-Controls exakt 1 höher ist, comme cela des Éditer-Feldes devant, peux on so dessen Handle ermitteln et den dessus erwähnten Messages aussi réellement im laufenden Programme changement:
var hEdit& = Créer("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 jusqu'à 1440 = Mini-et Maximalwert

Um cela komplette Spinedit trop effacer, muss on beide avec DestroyWindow() entfernen.

Salut
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
merci Roland, maintenant funktioniert es.

MfG
RAiner
 
28.06.2015  
 



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

6.457 Views

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