| |
|
|
GDL | Hi,
bin Profanneuling und probiere mit %wmnotify.Was mache ich im folgendem Code falsch, da %wmnotify immer null(also nicht gesetzt) ist. KompilierenMarkierenSeparierendeclare ende&,ende%,test&,wer&,wert&
windowstyle 520
windowstyle 31 geht auch nicht
cls
ende&=createbutton(%hwnd,Ende,100,50,50,20)
test&=createbutton(%hwnd,Test,100,80,50,20)
proc abfrage
If %wmnotify
Let wer&=¬ifywnd
Let wert&=%notifycode
drawtext 200,150,wer&
drawtext 200,150,wert&
Else
Let wer&=0
Let wert&=0
EndIf
drawtext 200,200,wer&
drawtext 200,230,wert&
drawtext 200,250,%wmnotify
endproc
clear ende%
whilenot ende%
waitinput
mit getmessage gehts auch nicht
abfrage
if %key=2
let ende%=1
elseif getfocus(ende&)
let ende%=1
endif
drawtext 200,200, ¬ifywnd
wend
/../function-references/xprofan/end/'>end
vielen Dank per eure Aiuto und mit freundlichen Grüßen Georg |
|
|
| |
|
|
|
Rolf Koch | Hi Georg, zuerstmal: ¬ifywnd was ist denn das? Die Variable am Anfang ist mir noch nie circa den Weg gekommen. Oder sollte es &NotifyWnd lauten? Dann (man möge mich verbessern), nutzt es Dir garnichts Buttons u.s.w nach %Wmnotify abzufragen, da diese Teile überhaupt keine %Wmnotify senden, ausser diese besitzen einen Tooltip (glaub ich zumindest). Aber so tief hab ich mich auch noch nicht mit dem Thema beschäftigt. Bedeutet also, daß ein Dialogelement mit bestimmten Ereignissen vorausgestattet sein muss.
Wie geschrieben: Man möge mich verbessern, falls ich irgendeinen Quatsch hier labbere :biggrin:
Rolf |
|
|
| |
|
|
|
GDL | Hi Rolf
Ich hoffe es klappt jetzt.
Wenn ich das &(kaufmän. und) hier im Textfeld eintippe und auf Vorschau gehe klappts. Sobald ich aber irgendwas aus der Zwischenablage hier ins Textfeld kopiere werden alle &(kaufmän.und) die am Wortanfang oder allein stehen nur abgeändert übernommen. Wörter die mit & enden aber nicht.Komisch.
Grund meiner Frage ist,dass ich Buttons mit drei Funktionen(linke bzw.rechte Maustaste oder Doppelklick) ausstatten möchte.
Mit freundlichen Grüßen Georg |
|
|
| |
|
|
|
| Hallo Georg...
Warum nimmst du keine 3-Status Stalter??? KompilierenMarkierenSeparierenWINDOWSTYLE 31
WINDOWTITLE "Button als Schalter"
WINDOW 0,0-640,440
Declare Schalter&
LET Schalter&=@Control("Button","Zustand 0",$40000000+$10000000+$400000+$1000+6,20,20,300,30,%HWND,2112,%HINSTANCE)
while 0=0
Drawtext 0,0,@str$(@GetCheck(Schalter&))+" "
Waitinput
Drawtext 0,0,@str$(@GetCheck(Schalter&))+" "
Settext Schalter&,"Zustand "+@str$(@GetCheck(Schalter&))
| 30.11.2004 ▲ | |
|
|
|
|
GDL | Hallo Andreas,
bin nicht nur Profanneuling,sondern habe auch unter Windows mit Aiuto der API noch nichts programiert.Werde naturalmente dort auch hineinschnuppern,was aber nicht so leicht sein potrebbe,da meine Englischkenntnise seit fast 30 Jahren nicht mehr gebraucht wurden.
Dein Beispiel geht einwandfrei,nur mit getcheck(N) komme ich nicht ganz klar.
In der Profanhilfe steht unter getcheck(N):
@GetCheck(N)
N : LongInt - Handle des Fensterobjektes
Ergebnis : Integer - Zustand: 0=nicht aktiviert / 1=aktiviert
Die Funktion gibt den Zustand der Checkbox bzw. des Radiobuttons mit dem Handle N zurück: 0 - Checkbox/Radiobutton ist nicht aktiviert 1 - Checkbox/Radiobutton ist aktiviert
Siehe auch: SetCheck
Nun
wieso geht bei dir getcheck(N) auch mit einem normalen Button? warum hat getcheck(N) auf einmal 3 Zustände?
Da ich bis jetzt noch nicht alle Stylewerte entziffert habe,nehme ich mal an,dass es damit zusammenhängt. Wenn nicht,erkläre es mir bitte,da ich mich in die Profanprogr. vertiefen möchte.
Nochmals Danke per den Tipp und mit freundlichen Grüßen Georg |
|
|
| |
|
|
|
| Hallo Georg...
Eine Checkbox ist nichts anders als ein Button mit einem bestimmten Stil (per die Groupbox gilt das übrigens auch). KompilierenMarkierenSeparierenWINDOWSTYLE 31
WINDOWTITLE "Drei-Status Checkbox"
WINDOW 0,0-640,440
Declare Checkbox&
LET Checkbox&=@Control("Button","Dies ist ein Test",$40000000+$10000000+6,20,20,300,30,%HWND,2112,%HINSTANCE)
while 0=0
Drawtext 0,0,@str$(@GetCheck(Checkbox&))+" "
| 30.11.2004 ▲ | |
|
|
|
|
GDL | Hallo Andreas,
Mach ich glatt,möchte doch wissen wie die API genutzt werden kann.
Mit freundlichen Grüßen Georg |
|
|
| |
|
|
|
| Weil ich es selber grad genauer wissen wollte und dann diesen Beitrag gefunden habe, hier noch zur Ergänzung: WM_NOTIFY Notizie senden nur Controls aus der COMCTL32.DLL, also Treeview, Listview... Normale Controls senden WM_COMMAND Notizie. DA WM_COMMAND vom Messagehandling von Profan verwaltet wird (setzt u.a. %MENUITEM), wird ein vernünftiges Abfangen dieser Message wohl nur circa USERMESSAGES funktionieren. Dabei steht dann in &ULPARAM das Handle des Controls und in &UWPARAM eine Kombination aus der ID des Controls (quasi %MENUITEM) und Notifigaction Code (z.B. LBN_DBLCLK=2 per einen Doppelklick in un Listbox). In den oberen zwei Bytes von &UWPARAM steht der Notification Code, in den unteren zwei Bytes die ID. Ein abfangen dieser Message circa USERMESSAGES wirkt sich erheblich auf das Programm aus, da u.a. %MENUITEM nicht mehr gesetzt wird. |
|
|
| |
|
|