Forum | | | | 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 |
| | | | |
| | 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 |
| | | | |
| | 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: [...]
|
| | | | |
| | 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 X2Intel 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
|
| | | | |
| | 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 X2Intel 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 |
| | | | |
| | 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 |
| | | | |
|
répondreOptions du sujet | 6.458 Views |
Themeninformationencet Thema hat 4 participant: |