| |
|
|
CB | Hi, brauche mal wieder fachmännische Hilfe!
Habe zum einfacheren Handling mehrere EditControls in einem StaticControl zusammengefasst - nach folgendem Schema: KompilierenMarkierenSeparierenGroupBox5& = Create("GroupBox",%HWND,"",10,249,775,155)
GroupBox5& = Control("Static","",$50000009,10,258,775,148,%hwnd,3501,%Hinstance) Control anlegen (weißer Rahmen)
WSText& = Create("Text",GroupBox5&,"WS :",8,12,32,17)
SetFont WSText&,Fett&
WS1& = Control("ComboBox","",$50000042,40,10,80,121,GroupBox5&,3013,%hinstance)
ClearList
AddString "ges. WS"
AddString "HWS"
AddString "BWS"
AddString "LWS"
AddString "HWS und BWS"
AddString "BWS und LWS"
AddString "HWS und LWS"
MoveListToChoice(WS1&)
ClearList
SendMessage(WS1&,$14E,0,0)
WS2& = Control("ComboBox","",$50000042,120,10,105,121,GroupBox5&,3014,%hinstance)
ClearList
AddString "frei"
AddString "klopfschmerzhaft"
MoveListToChoice(WS2&)
ClearList
SendMessage(WS2&,$14E,0,0)
Da liegen jetzt also EditControls auf einem Static und dieses wiederum auf einem Tabcontrol.
Soweit funktioniert auch alles. Bloß habe ich seitdem das Problem, daß die Abfragen des Status der einzelnen Edits nicht mehr funktionieren. Zum Breakpoint komme ich gar nicht mehr.
Ausschnitt aus der Hauptschleife: KompilierenMarkierenSeparieren Die Konstruktion soll dem Anwender etliches an Herumklicken ersparen. Wenn er einen (bestimmten) Eintrag in einem Feld gewählt hat, werden andere Felder entsprechend gesetzt und der Focus auch gleich dorthin gesetzt.
Hat einer von Euch eine Idee, wo der Fehler liegen könnte?
So nebenbei: mit welchem Stil kriege ich einen Rahmen analog zu einer GroupBox zustande?
Christian |
|
|
| |
|
|
|
Rolf Koch | Hi Christian, [quote:d2b61bdc66] So nebenbei: mit welchem Stil kriege ich einen Rahmen analog zu einer GroupBox zustande? [/quote:d2b61bdc66] Zumindest mal dazu: Dann kuck doch in Roc, vielleicht gefällt Dir ein Rahmen, welcher so ähnlich aussieht.
Rolf |
|
|
| |
|
|
|
| Christian - erfahrungsgemäß wird einem bei solch Problem selten geholfen - sei denn - Du erstellst mal eine kleinste-lauffähige Variante welche genau das Problem erzeugt.
So kamma schneller eine Lösung finden - statt erst selbst diesen Konstrukt auf die Beine zu stellen.
Ich weiß ich weiß - Du hofftest jemand löste bereits ein ähnliches Problem - aber auch die Lösung zuzuordnen ist anhand eines lauffähigen Beispieles einfacher.
Salve. |
|
|
| |
|
|
|
CB | Hi, @iF: hast ja - wieder mal - recht. Das wär ja so, als täte ich den Mechaniker fragen, warum die blöde Karre in jeder Kurve scheppert und hab das Ding zu Hause stehen. Aber irgendwie hatte ich halt wirklich gehofft...
Na gut, habe also meinen Code soweit gestrippt, daß mein Prob erkenntlich sein sollte und der Einfachheit halber die INC mit ALLEN Variablen- und sonstigen DEFs komplett mitgeliefert. Einiges ist bei der Aufräumaktion dabei zuviel gelöscht worden, das tut aber nichts zur Sache.
Die Einträge unter Cor und Pulmo sind konventionell in einer Groupbox zusammengefasst und reagieren korrekt. Aber die Einträge unter WS (Control SkelettGrp) tuns nicht mehr.
Mit ein Grund, weshalb ich die Edits in ein Control stellen will, ist, daß ich auch die elends vielen Einzeleinträge unter TAB3_AKTIV bzw. TAB3_INAKTIV loswerden möchte, und einfach b.B. die jeweiligen Controls aus- und einblende.
Wäre jedenfalls für nen Tip sehr dankbar.
Christian |
|
|
| |
|
|
|
CB | Hi, habe leider einigen überflüssigen Code übersehen zu löschen. Das kann zu einer Fehlermeldung wegen fehlender Registry-Einträge führen. Deshalb hier ne verschlimmbesserte Version.
Christian |
|
|
| |
|
|
|
Rolf Koch | Hi Christian, kann man mal sehen, dass man von Andreas Miethe wirklich lernen kann
Zuerst ganz oben (aber das hast Du glaube ich schon?): KompilierenMarkierenSeparieren Dann darunter Deine Zeile erweitern (also um $4000): KompilierenMarkierenSeparieren Dann eine Proc erstellen (mein Lieblingstipp von Andreas): KompilierenMarkierenSeparierenDef CallWindowProc(5) !"USER32","CallWindowProcA"
Declare OldStaticProc&,UOldStaticProc&,dlg2&
Proc DummyCallback
Parameters wnd&,msg&,wparam&,lparam&
If msg& = $0111
Usermessage an %hwnd schicken
Sendmessage(%hwnd,$4000,0,lParam&)
Endif
Return CallWindowProc(OldStaticProc&,wnd&,msg&,wparam&,lparam&)
EndProc
Dein Static so erstellen: KompilierenMarkierenSeparierenSKELETTGrp& = Control("Static","",$64000000,10,258,775,148,%hwnd,3501,%Hinstance,$010000) Control anlegen (weißer Rahmen)
OldStaticProc& = SetWindowLong(SKELETTGrp&,-4,ProcAddr(DummyCallback,4))
WSText& = Create("Text",SKELETTGrp&,"WS :",8,13,32,17)
SetFont WSText&,Fett&
......
Die Abfragen für das Sonderstatic bitte dann so abfragen: KompilierenMarkierenSeparieren Und ich hoffe, dass ich nix vergessen habe und das Teil dann genauso gut läuft wie bei mir.
Rolf |
|
|
| |
|
|
|
CB | Hallo, Rolf! Vielen Dank nochmal für Deine Mühe! Ich weiß nicht, ob Dich meine Nachricht gestern noch erreicht hat - das Ding funktioniert jedenfalls perfekt! Schicke Dir abends, was ich alles daraus gemacht hab - wirst staunen!
Ciao, Christian |
|
|
| |
|
|
|
Rolf Koch | |
|
| |
|
|