Entwickler-Ecke

Sonstiges (Delphi) - Variable erhält scheinbar keinen Wert, kann nicht einloggen


Xearox - Do 07.01.10 22:21
Titel: Variable erhält scheinbar keinen Wert, kann nicht einloggen

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdExplicitTLSClientServerBase, IdFTP;

type
  TForm2 = class(TForm)
    LUser: TLabel;
    LPasswort: TLabel;
    Button1: TButton;
    EUser: TEdit;
    EPasswort: TEdit;
    IdFTP1: TIdFTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

uses
  unit1;

{$R *.dfm}


procedure TForm2.Button1Click(Sender: TObject);
begin

  Euser.Text:=XUsername;
  EPasswort.Text:=XPasswort;
  try
    IdFTP1.Username := (XUsername) ;
    IdFTP1.Password := (XPasswort);
    IdFTP1.Host := ('xx.xx.xx.xx') ;
    IdFTP1.Connect;
  finally
    showmessage('Fehler beim Einloggen');
    halt;
  end;
  showmessage('Hallo...Du bist erfolgreich eingeloggt und kannst nun die Datenbank nutzen');
  close;
end;



wieso wird das nicht übernommen?
hab ich was falsches gemacht?

XUsername, XPasswort werden in der Unit1 deklariert.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt


Gausi - Do 07.01.10 22:24

Zum einen ist das Halt; an der Stelle etwas unschön. Damit würgst du dein Programm ab. Wenn du beim Autofahren immer in eine Wand reinbretterst, wenn du anhalten willst, kannst du das so machen. Aber sonst sollte man das nicht tun. ;-)

Zweitens nutzt du try...finally. Der finally-teil wird immer ausgeführt. Du suchst vermutlich try...except.


Xearox - Do 07.01.10 22:28

kenne mich mit den Try blöcken nicht aus, hab einfach mal was versucht...
Das mit dem Halt ist extra, da seltsamer weise, wenn das Prgramm weiterläuft, sich komplett aufhängt, wenn es sich nicht einloggen kann...

Auch ohne Try und nur mit dem setzen der XUsername und XPasswort, wird es nicht in die Unit1 übernommen...

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hab nun die Variabeln in Unit2 angelegt, also von unit1 auf unit2, jedoch das gleich Ergebnis, ich werde einfach nicht eingeloggt


Bergmann89 - Do 07.01.10 23:51

Hey,

hast du die Name un Passwort ma ausgeben lassen oder im Debuger (Strg+F5) angesehen, ob es auch wirklich die Werte sind die du brauchst?
Dann würd ich auch mal die Ereignisse des FTP-Objekts überprüfen, da gibts bestimmt auch eins, was dir ne Fehlermeldung zurückgibt oder sowas.
Das sich das Programm aufhängt hat glaub ich den gleichen Grund wue bei der TIdHTTP-Komponente. Die arbeitet einfach und solange sie das tut bleibt das Ding eben hängen. Da musst du dann n neuen Thread erstellen (Das Problem hatte ich auch erst).

MfG Bergmann


Xearox - Fr 08.01.10 00:11

wie meinste das genau mit dem Debugger?

wie was und wo muss ich was drücken...?



der sagt mir: Im Prozess nicht verfügbar


Astat - Fr 08.01.10 01:20

user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
wieso wird das nicht übernommen?
hab ich was falsches gemacht?

XUsername, XPasswort werden in der Unit1 deklariert.


naja, versuchs mal so.



Delphi-Quelltext
1:
2:
  XUsername := Euser.Text;
  XPasswort := EPasswort.Text;


lg. Astat


Xearox - Fr 08.01.10 03:00

immer wieder diese flüchtigkeits fehler, echt zum heulen.
vertausche ich da einfach mal die Gleichung :(

danke für eure hilfe, hoffe ich mache euch nicht unnötig arbeit...
danke