| |
|
|
- Page 1 - |
|
Detlef Tussing | hallo allen Profaner`n
hab schon wieder eine Frage, bei dem zusammenkopieren von verschiedenen Programmen mach ich jetzt 2 Fenster auf. Ich hätte aber gerne die ListBox im Fenster 1, und kein weiters Fenster. KompilierenMarkierenSeparieren1. Fenster
DEF GETSYSCOLOR(1) !USER32,GetSysColor
WINDOWSTYLE 31 47
WINDOWTITLE Test
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-660,500
SETTRUECOLOR 1
CLS GETSYSCOLOR(1)15
SETDIALOGFONT 1
2.Fenster im 1. Fenster
dlg% = create(Dialog,%Hwnd,Test2,340,200,250,100)
CBox& = @Control(ComboBox,,$5421034E,10,10,200,200,Dlg%,2000,%hinstance)
End%=@createbutton(Dlg%,Auswahl,80,40,80,32)
Addfiles *.DAT
MoveListToChoice(CBox&
und da ich auch neugierig bin, wüste ich gern was das $5421034E im 2. Fenster bedeutet. Ich habe das komplette Programm auf einen anderen Rechner kopiert, da sind die Fenster an einer andern Stelle als bei mir, hängt das mit der Einstellung der Grafikkarte zusammen? |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Frank Abbing |
Wofür CLS ? - Das Fenster wird mit WINDOW x,y-x2,y1 erstellt
Horst, CLS erstellt nicht nur ein Fenster, sondern löscht in erster Linie den Bildschirm (mit einer vordefinierten Farbe). CLS ist eine Abkürzung per CLear Screen. Existiert noch kein Fenster, dann erstellt es eben eines. Genauso wie z.B. PRINT. |
|
|
| |
|
|
|
| @Frank Natürlich hast Du Recht in der Beziehung CLS RGB(r%,g%,b%) - Ich nehme aber lieber UseBrush und Rectangle, weil ich hier dann bei Programmeinstellungen z. B. die Oberfläche eleganter ändern kann (meine unmassgebliche Meinung ) Zusätzlich kann ich mit Rectangle einzelne Zonen auf der Oberfläche unterschiedlich färben. - (ich hoffe, Du sprichst jetzt noch mit mir ) |
|
|
| |
|
|
|
Frank Abbing | Noch flexibler ist LoadBmp oder SetPixel, da kannst du jeden Bildpunkt gesondert einfärben... Ne, is klar. Ich weiss ja was du meinst. |
|
|
| |
|
|
|
Detlef Tussing | und was mach ich mit ENTER anstatt OK |
|
|
| |
|
|
|
Frank Abbing | Probier mal %key 13 oder 10. |
|
|
| |
|
|
|
Detlef Tussing | Ihr seid alle hilfsbereit, doch wo sol ich %key13 eingeben ? |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|
|
| |
|
| |
|
|
|
Detlef Tussing | Bitte per ganz dumme noch mal
Mein Prog reagiert nur auf Ok nicht auf ENTER KompilierenMarkierenSeparierendeclare exit&,e%,a$
declare edit&,vorgabe$
DEF GETSYSCOLOR(1) !USER32,GetSysColor
WINDOWSTYLE 31 47
WINDOWTITLE Apex Elektronik GmbH Grevenbroich Tel. 02181-24040
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-400,150
SETTRUECOLOR 1
CLS GETSYSCOLOR(1)15
SETDIALOGFONT 1
exit& = CreateButton(%HWnd,Ok,150,50,100,35)
vorgabe$ =
edit& = CONTROL(Edit,vorgabe$,$54810020,150,20,100,25,%HWnd,0,%HInstance,$0200)
SetFocus(edit&)
whilenot e%
if (%key=255) or (%key=13) or getfocus(exit&)
e% = 1
endif
wend
A$ = gettext$(edit&)
if a$=qwert
print a$
waitinput
else
end
endif
|
|
|
| |
|
|
|
| @Hallo Detlef Da DU XPROFAN10 hast, hab ich Deinen Text etwas abgeändert und Erklärungen dazu geschrieben. Hoffe, Du kommst durch... KompilierenMarkierenSeparierendeclare exit&,e%,a$
e%=0 besser
declare edit&,vorgabe$
DEF GETSYSCOLOR(1) !USER32,GetSysColor
WINDOWSTYLE 3147
WINDOWTITLE Apex Elektronik GmbH Grevenbroich Tel. 02181-24040
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-400,150
Für das Fenster hatte ich Dir eine andere Möglichkeit weiter oben gepostet
SET(TRUECOLOR,1) Muss nicht sein - XProfan ist standartdmäßig so eingestellt
CLS GETSYSCOLOR(1)15
SETDIALOGFONT 1
exit& = CreateButton(%HWnd,&Ok,150,50,100,35)überholt
exit&=CREATE(BUTTON,%HWND,&OK,150,50,100,35)
vorgabe$ = Wenn die Vorgabe ist, warum schreibst Du dann nicht im Edit& auch
edit& = CONTROL(Edit,vorgabe$,$54810020,150,20,100,25,%HWnd,0,%HInstance,$0200)
edit& = CONTROL(Edit,,$54810020,150,20,100,25,%HWnd,0,%HInstance,$0200)
SetFocus(edit&)
whilenot e%
if ISKEY(255) | (ISKEY(18) & ISKEY(79)) | CLICKED(exit&)
Du hast den Focus auf der Eingabe(SetFocus(edit&)) daher kann die Enter(13)-Taste nicht
reagieren. Da Du XProfan10 hast, nimm anstelle von %Key - ISKEY
Hier ist jetzt die ALT(18)-Taste und die O(79)-Taste kombiniert. Zusammen gedrückt, schliessen sie auch
Anstelle von GetFocus besser CLICKED verwenden. Das ist der Windows-Standard.
Befehl wird erst beim Loslassen des Buttons ausgeführt.
e% = 1
endif
ENDWHILE Wend ist überholt
A$ = gettext$(edit&)
if a$=qwert
print a$
waitinput
else
end
endif
-----------------------------
END
|
|
|
| |
|
|
|
Detlef Tussing | Danke, die Erklärung der Befehle ist erheblich besser als bei XProfan Aiuto doch mit ENTER komm ich nicht weiter |
|
|
| |
|
|
|
| Detlef Die ENTER-Taste ist auch nicht aktiv ! - In dem Code, den ich Dir geändert habe kannst Du jetzt circa das Systemmenu oben rechts mit dem [X]-Button, mit dem OK-Button oder mit den beiden Tasten ALT + O beenden. Die ENTER-Taste ist zum Beenden eines Programmi nicht üblich. Wenn Du Deinen WindowsStyle so angibst : 31 + 512, hast Du die Reaktion eines Dialoigfensters auf dem Hauptfenster. Dann kannst Du mit der TAB-Taste aus dem EDIT auf den Button umschalten und dann funktioniert auch die ENTER-Taste. Aber, wie gesagt, ENTER per das Programmende ist nicht üblich |
|
|
| |
|
|