Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort) (https://www.delphipraxis.net/9751-im-edit-feld-einer-inpubox-nur-%2A%2A%2A-anzeigen-passwort.html)

dopeline 3. Okt 2003 09:09


Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin.

ich habe eine InputBox (siehe anhang->Password.jpg). wenn man da das richtige passwort eingibt, öffnet sich ein anderes formular. nun soll, wenn alles was in das edit-feld der inputbox eingetragen wird, mit sternchen dargestellt werden. (PasswordChar).

wie mache ich das?



Gruß, dopeline

flomei 3. Okt 2003 09:11

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Du hast die Antwort doch schon gegeben! Als PasswordChar "*" eingeben. Fertig! Oder meinst du gar nicht in Delphi???

MfG Florian :hi:

Killian 3. Okt 2003 09:17

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Moinsen!
Ich glaube dopeline meint die funktion InputBox. Aber ich glaube nicht das das mit damit geht. Schau doch einfach mal in die Hilfe. Da müsste sowas ja drinne stehen ;)

Gruss Killian

Dagon 3. Okt 2003 09:28

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
@dopeline: Da musst du wohl selber eine InputBox schreiben. Anders gehts wohl nicht.

Obwohl, wie ich sehe, hast du die Enterprise Version, folglich den Source mit dabei. Da kannst du nachsehen, wie die InputBox implementiert ist, kopieren und einfach die Zeile PasswortChart := '*' hinzufügen.

Alexander 3. Okt 2003 09:37

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Es geht scchon anders.
Bei dem Edit der InputBox handelt es sich ja im Prinzip auch nur um ein TEdit oder Edit-Control.
Das heißt du kannst, wenn du das HAndle hast, das Passwortcharacter setzen:
http://msdn.microsoft.com/library/de...sswordchar.asp

Oder aber du erstellt dir solch eine Box halt selber, z.b. in eine resource-DAtei oder so...

dopeline 3. Okt 2003 11:18

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Zitat:

Zitat von the_master
[...] Da kannst du nachsehen, wie die InputBox implementiert ist, kopieren und einfach die Zeile PasswortChart := '*' hinzufügen.

wie kann man das machen? ich hab zwar schon ein bischen rumgesucht, bin aber nicht fündig geworden... ich würde es gerne erst so probieren, wie du vorgeschlagen hast, denn bei den anderen möglichkeiten habe ich keine ahnung was gemeint ist... :oops:



Gruß, dopeline

Alexander 3. Okt 2003 11:33

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
suche hier mal nach Handle + Edit oder so.
Da würst du bestimmt fündig werden wie man das Handle herausbekommt.
Und dann
Delphi-Quellcode:
SendMessage(hier_das_handle_eintragen, EM_SETPASSWORDCHAR, '*', 0);
Das müsste dann funktionieren.

Dagon 3. Okt 2003 11:41

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Zitat:

Zitat von dopeline
Zitat:

Zitat von the_master
[...] Da kannst du nachsehen, wie die InputBox implementiert ist, kopieren und einfach die Zeile PasswortChart := '*' hinzufügen.

wie kann man das machen? ich hab zwar schon ein bischen rumgesucht, bin aber nicht fündig geworden... ich würde es gerne erst so probieren, wie du vorgeschlagen hast, denn bei den anderen möglichkeiten habe ich keine ahnung was gemeint ist... :oops:
Gruß, dopeline

Der einfachste Weg ist, du schreibst InputBox in eine Prozedur (z. B. ins OnClick-Event von nem Button) und drückst dann Ctrl (bzw. Strg) und klickst mit der Maus auf InputBox. Dann wählst du in der nun angezeigten Funktion auf die selbe Art InputQuery an.
Nun bist du mehr oder weniger am Ziel.

Alexander 3. Okt 2003 12:18

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Naja so kann man das auch machen, mit Bordmitteln funktioniert das aber auch so wie ich es gerade gesagt habe...
Zum Handle suchen:
Der Code von Chrisitian Seehase sollte fast genau das können was du willst, du muss ihn nur noch für's Label umschreiben...
http://www.delphipraxis.net/internal...ht=edit+handle

dopeline 3. Okt 2003 12:30

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
das habe ich auf dieser Seite gefunden:
Delphi-Quellcode:
[...]
2nd example: You need to change the edit property of a InputQuery, for instance the PasswordChar.

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure WMHack(var message: TMessage); message WM_USER + 1024;
  end;
...
implementation
...
const
  ACaption = 'Caption';

procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle, WM_USER + 1024, 0, 0);
  InputBox(ACaption, 'Prompt', 'Default');
end;

procedure TForm1.WMHack(var message: TMessage);
var
  i: Integer;
  j: Integer;
begin
  for i := 0 to Screen.FormCount-1 do
    if Screen.Forms[i].Caption = ACaption then
    begin
      for j := 0 to Screen.Forms[i].ControlCount-1 do
        if Screen.Forms[i].Controls[j] is TEdit then
        begin
          TEdit(Screen.Forms[i].Controls[j]).PasswordChar := '#';
          TEdit(Screen.Forms[i].Controls[j]).SelectAll;
          Exit;
        end;
    end;
end;
[...]
Funktioniert nur irgendwie nicht. :(
meckert schon, wenn ich die prozedur unter private deklariere...
Code:
[Fehler] Uhaupt.pas(116): Ungenügende Forward- oder External-Deklaration: 'TFormHaupt.WMHack'
Kann jemand helfen?

Gruß, dopeline

Dagon 3. Okt 2003 12:48

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Wenn ich den Code von oben nehme, klappt alles hervorragend! Häng sonst mal den Source deinens Progarmms an, dann kann ich dir besser sagen, was nicht stimmt.

Christian Seehase 3. Okt 2003 13:00

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
Moin Dopeline,

ich würde mal sagen, Dein Formular heisst TFormHaupt, und Du hast den Source einfach per Copy&Paste eingefügt, ohne darauf zu achten, dass in der Implementierung TForm1.WMHack(...) steht.

dopeline 3. Okt 2003 13:26

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
oh gott wie blöd! :oops: :oops: :oops:
naklar, ich habs ja FormHaupt genannt!

da ist aber noch eine kleinigkeit: wo füge ich denn das ein?:
Delphi-Quellcode:
const
 ACaption ='caption';
funzt auch, wenn man es weglässt, aber die box soll ja schließlich nicht 'caption' heißen. egal wo ich es einfüge, er meckert immer.

Gruß, dopeline

dopeline 3. Okt 2003 13:32

Re: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort
 
hat sich erledigt... :wall: :wall: :wall: wie blöd ist dass denn?! ich krieg heute die elementarsten dinge nicht gebacken!
sorry für hohlen fragen... :oops:


dopeline

leo03 14. Nov 2013 09:29

AW: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort)
 
Grab mal diesen uralten Thread aus da ich gerade sowas brauchte.

Mit der InputQuery lässt sich das leicht lösen. :)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
  s :='';
  InputQuery('MyCaption',#31+'MyPromt:',s);
end;
der Indikator für die Passwort maskierte Eingabe ist das #31 vor dem Prompt. (oder jedes andere Zeichen < #32)
Weiss nicht seit wann das standardmäßig eingebaut ist, auf jeden Fall klappt das so beim Delphi XE2. Die Funktionalität ist in der Delphi Hilfe jedoch nicht beschrieben (oder ich habs nicht gefunden). Bin auch erst bei der Analyse des InputQuery Quellcodes darübergestolpert.

Schöne Grüße

himitsu 14. Nov 2013 09:44

AW: Im Edit-Feld in einer InpuBox nur *** anzeigen (Passwort)
 
Im XE ist es noch nicht drin.

Das haben die wohl eingebaut, als im XE2 das InputQuery erweitert wurde.
Jetzt kann man da auch mehrere Queries auf Einmal stellen.

Und die XE3-Hilfe kennt es natürlich auch noch nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz