PasswortRequester

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Statt 1 kannst du natürlich auch wieder eine hohe Zahl einsetzen.
Ich weis jetzt nicht, ob #PB_Any mit Shortcuts funktioniert.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Ich weis jetzt nicht, ob #PB_Any mit Shortcuts funktioniert.
Nein, Shortcuts, MenuID, ToolBarButton sind keine Objekte, also kein
#PB_Any, sondern einen positiven Wert ab 0 bis ca 32767 bzw. inzwischen
glaube ich, alles pos. im Longbereich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Könntet ihr meine Fragen nicht direkt mit Nein/Ja beantworten?

Währe echt nett
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Scarabol hat geschrieben:Könntet ihr meine Fragen nicht direkt mit Nein/Ja beantworten?
Ja
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Macros hat geschrieben:Und dem Fenster eine Numer wie z.B. 997 geben,
sonst "überschreibt" es eventuell ein vorher geöffnetes Fenster, genauso bei den Gadgets, hohe Zahlen vergeben.
Auch den Shortcut nicht vergessen. (Der übrigens durchaus Sinn hat)
hier hat Macros nicht ganz unrecht; fenster und gadgets mit derselben ID überschreiben sich, den fehler habe ich auch schn gemacht.

wenn man den passwort requester in eine procedure packt und universell nutzen will, würde ich auf #PB_Any umsatteln. Ist am "kugelsichersten", um es mal mit der PB-Hilfe deutlich zu machen ;-)

wollte auch noch mal meinen senf dazu geben, oder wie man ja neuerdings auch sagt: "meine 2 cents"...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

AND51 hat geschrieben: hier hat Macros nicht ganz unrecht; fenster und gadgets mit derselben ID überschreiben sich, den fehler habe ich auch schn gemacht.
So so, wenn ich es nicht dynamisch benötige, fange ich meine Fenster mit 0
an, und die Gadgets auch mit 0, meist hab ich soviele Überschneidungen wie
Fenster :lol:

Hab ich was verkehrt verstanden oder spieltste 1.April :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hier nochmals der überarbeitete Code er sollte jetzt ohne Beeinflussung auf anderes unabhänig laufen, währe schön wenn ihr das mal testen könntet und bei Fehlern eventuell bescheidsagen würdet.

Code: Alles auswählen


Procedure$ PasswordRequester(Title$, Text$)
WindowID = OpenWindow(#PB_Any, 1, 1, 294, 98, #PB_Window_ScreenCentered, Title$)
If WindowID
MenuID = 1
AddKeyboardShortcut(WindowID, #PB_Shortcut_Return, 1)
CreateGadgetList(WindowID(WindowID))
TextGadget = TextGadget(#PB_Any, 10, 10, 280, 20, Text$)
StringGadget = StringGadget(#PB_Any, 10, 32, 274, 21, "", #PB_String_Password)
ActivateGadget(StringGadget)
ButtonGadget = ButtonGadget(#PB_Any, 107, 68, 80, 25, "Ok", #PB_Text_Center)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
If EventGadgetID() = ButtonGadget
Break
EndIf
ElseIf EventID = #PB_Event_Menu
If EventMenuID() = MenuID
Break
EndIf
EndIf
ForEver
RemoveKeyboardShortcut(WindowID, MenuID)
Password$ = GetGadgetText(StringGadget)
CloseWindow(WindowID)
ProcedureReturn Password$
EndIf
EndProcedure



pass$ = PasswordRequester("Test", "Bitte geben sie ihr Passwort ein:")
If pass$ <> ""
MessageRequester("Info", pass$)
EndIf
Kann man den RemoveKeyboardshortcut nicht weglassen wenn das Fenster sowieso geschlossen wird?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Kann man den RemoveKeyboardshortcut nicht weglassen wenn das Fenster sowieso geschlossen wird?
Ja
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
rob6523
Beiträge: 3
Registriert: 31.10.2004 18:33

Beitrag von rob6523 »

Hier die PB 4.0 code:

Code: Alles auswählen

Procedure$ PasswordRequester(Title$, Text$) 
WindowID = OpenWindow(#PB_Any, 1, 1, 294, 98, Title$, #PB_Window_ScreenCentered) 
If WindowID 
MenuID = 1 
AddKeyboardShortcut(WindowID, #PB_Shortcut_Return, 1) 
CreateGadgetList(WindowID(WindowID)) 
TextGadget = TextGadget(#PB_Any, 10, 10, 280, 20, Text$) 
StringGadget = StringGadget(#PB_Any, 10, 32, 274, 21, "", #PB_String_Password) 
SetActiveGadget(StringGadget) 
ButtonGadget = ButtonGadget(#PB_Any, 107, 68, 80, 25, "Ok", #PB_Text_Center) 
Repeat 
EventID = WaitWindowEvent() 
If EventID = #PB_Event_Gadget 
  If EventGadget() = ButtonGadget 
    Break 
  EndIf 
ElseIf EventID = #PB_Event_Menu 
  If EventMenu() = MenuID 
    Break 
  EndIf 
EndIf 
ForEver 
RemoveKeyboardShortcut(WindowID, MenuID) 
Password$ = GetGadgetText(StringGadget) 
CloseWindow(WindowID) 
ProcedureReturn Password$ 
EndIf 
EndProcedure 



pass$ = PasswordRequester("Test", "Bitte geben sie ihr Passwort ein:") 
If pass$ <> "" 
MessageRequester("Info", pass$) 
EndIf 
Antworten