Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ungewolltes "Enter your credentials" bei Datenbank-Login (https://www.delphipraxis.net/179187-ungewolltes-enter-your-credentials-bei-datenbank-login.html)

Der schöne Günther 19. Feb 2014 12:42

Datenbank: SQLite • Version: 3 • Zugriff über: FireDAC

Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das Thema klingt spektakulärer als es ist. Delphi XE5, FireDAC. Ich möchte einen Login-Dialog für eine Verbindung.

Das sieht so aus wie das Bild im Anhang. Ich finde nichts, wie ich den "Enter your credentials"-Text abändern kann. Wo muss ich suchen?

PS: Mein TFDGUIxLoginDialog ist einfach nur folgender
Delphi-Quellcode:
object loginDialog: TFDGUIxLoginDialog
  Provider = 'Forms'
  Caption = 'Anmeldung'
  HistoryWithPassword = False
  VisibleItems.Strings = (
    'Password=Hallo')
  ChangeExpiredPassword = False
  OnShow = loginDialogShow
  Left = 280
  Top = 192
end

Union 19. Feb 2014 12:45

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
In OnShow kannst Du auf die Eigenschaften des Dialogs zugreifen.

Der schöne Günther 19. Feb 2014 12:47

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Das ist mir klar, aber was soll ich denn da einstellen? Ich finde nichts, was diese "Nachricht" repräsentiert. Die Hilfe ist zwar ungewohnt ausführlich aber da finde ich auch nichts.

Union 19. Feb 2014 12:49

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Durch die Components / Controls des Dialogs iterieren und die Caption des Labels auf den von Dir gewünschten Text setzen.

Der schöne Günther 19. Feb 2014 12:56

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Gute Idee :thumb:

Aber
Delphi-Quellcode:
ComponentCount
ist leider Null.

mjustin 19. Feb 2014 13:10

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1248521)
Gute Idee :thumb:

Aber
Delphi-Quellcode:
ComponentCount
ist leider Null.

:)

Dann steht der Text vermutlich in einem resourcestring und kann nur dort manipuliert werden, oder durch Hooken einer API Funktion (so wie es dxgettext macht um Texte zur Laufzeit zu übersetzen).

DeddyH 19. Feb 2014 13:18

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Ein ComponentCount von 0 besagt doch nur, dass der Dialog nicht als Owner der Komponenten angegeben wurde. Wie sieht es denn mit ControlCount aus (also die Parent-Beziehung)?

Der schöne Günther 19. Feb 2014 13:46

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Hat leider nur Komponenten, keine Controls.

Die Vererbungsreihenfolge ist sowieso...

Code:
TComponent -> TFDComponent -> TFDGUIxComponent -> TFDGUIxLoginDialog
Das Ding hat nur eine Property "Caption" (der Fenstertitel des Popups), aber sonst eigentlich nichts brauchbares.


Kann doch nicht sein, dass das sonst noch niemanden gestört hat?

jaenicke 19. Feb 2014 14:06

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1248537)
Kann doch nicht sein, dass das sonst noch niemanden gestört hat?

Ich habe den Standarddialog noch nie benutzt außer für eigene Tests. ;-)

haentschman 19. Feb 2014 14:58

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Zitat:

Ich habe den Standarddialog noch nie benutzt außer für eigene Tests
:thumb: Das hilft enorm...

Zum Thema:
Ich würde dir empfehlen einen eigenen LoginDialog zu entwerfen. Diesen kannst du dann ggf. im Design deiner Anwendung gestalten bzw. mit Icons aufhübschen. Damit bist du unabhängig, auch wenn mal das DBMS wechselt. :wink:

Der schöne Günther 19. Feb 2014 15:07

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Hm, ich wüsste spontan nicht wie- Ich kann mir doch nicht selbst eine Zugangsverwaltung bauen?

Da wäre meine Frage eher "Wie baue ich mir einen eigenen Anmeldedialog für den Zugriff über FireDAC" - Dafür würde ich dann aber ein neues Thema aufmachen.

Union 19. Feb 2014 15:34

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Es geht bestimmt auch einfacher und ohne memory leaks. Aber momentan fällt mir sonst nix ein als den Resourcestring zu patchen:

Delphi-Quellcode:
uses Windows, FireDAC.Stan.ResStrs;

procedure HookLogin;
var
  dwOld : WORD;
  pRes : pResStringRec;
begin
  pRes := pResStringRec(@S_FD_LoginCredentials);
  VirtualProtect(pRes, SizeOf(pRes^), PAGE_EXECUTE_READWRITE, @dwOld);
  pRes.Identifier := Integer(PChar('Und bist Du nicht willig'));
  VirtualProtect(pRes, SizeOf(pRes^), dwOld, @dwOld);
end;

Der schöne Günther 19. Feb 2014 15:47

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
:o Bist du ein Zauberer?

Ich habe keine Ahnung was da vor sich geht, aber es funktioniert. Vielen Dank!

Union 19. Feb 2014 15:54

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Es wird einfach der von FD benutzte Resourcestring ausgetauscht. Was noch fehlt ist das Merken des neuen Pointers mit dem ausgetauschten Text, damit er in der finalization freigegeben werden kann (StrDispose).

Union 19. Feb 2014 23:28

AW: Ungewolltes "Enter your credentials" bei Datenbank-Login
 
Wer lesen kann ist klar im Vorteil :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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