Entwickler-Ecke

Datenbanken - Delphi Adressbuch Hilfe


Black_Fox - Mo 10.03.08 16:12
Titel: Delphi Adressbuch Hilfe
Hallo ich brauche dringend Hilfe, wir sollen als Schüler Projekt ein Adressbuch (mit Datenbank) erstellen. Leider hab ich keine Ahnung wie ich das machen soll und wollte fragen ob ihr mir helfen könnt.

Die Aufgabenstellung lautet:

Erstellen Sie ein Adressbuch.

Muss-Kriterien:
- Zufügen, Ändern, Löschen von Kontaktdaten
- Name, Vorname, Bild, E-Mail, Telefonnummer, Handy-Nummer, Adresse, Gebursdatum soll man eintragen können
- Suchmöglichkeit soll vorhaanden sein
- autmatisches sortiertes Abspeichern bzw. Anzeigen der gesammelten Daten soll möglich sein
- die gesamelten Daten sollen auch extra nochmal speicherbar sein
- Zugriff auf das Adressbuch soll passwortgeschützt sein

Kann-kriterien:
- Terminerinnerung bei Geburtstag
- Kontrolle der E-Mail ob es wirklich eine E-Mail ist


Xentar - Mo 10.03.08 16:23

Und wo genau hängst?
Wir machen hier nicht die Hausaufgaben für dich - du musst schon was selber tun..


Black_Fox - Mo 10.03.08 17:32
Titel: Re
jo das verlang ich ja auch nicht hab halt bloß vorher noch nie mit delphi datenbankeinbindung gearbeitet und weiß jetzt gar nicht wie ich anfangen soll


Agawain - Mo 10.03.08 17:39

http://www.delphi-treff.de/tutorials/datenbank-tutorials/win32/datenbank-einstieg/


Black_Fox - Mo 10.03.08 17:41
Titel: re
danke werd das beispiel mal nach machen


Black_Fox - Fr 14.03.08 14:46
Titel: re
werd mich in den ferien mal damit besschäftigen hab zurzeit nicht viel freizeit bzw. zei für dieses projekt hab ja bis 30. mai zeit


Black_Fox - Di 25.03.08 23:22
Titel: re
huhu hab jetzt damit angefangen und wollte mal fragen wie ich das adressbuch mit einem pw schützen kann? diese pw soll der benutzer selbst ändern können, hab das zurzeit so das das passwort im quellcode enthalten ist heißt bei mir zurzeit 'admin' da aber der anwender keinen zugriff auf den quellcode hat weiß ich jetzt nicht wie ich das so hinbekomme das es es selber ändern kann? brauche dringend hilfe


Blackheart666 - Di 25.03.08 23:45

Wie wärs das Passwort verschlüsselt in einer Datei zu speichern zb. Ini


Black_Fox - Di 25.03.08 23:55
Titel: re
und wie müsste ich das machen? form1 (passworteingabe) erscheint ja beim programm start --> da gibts dann ein edit feld wo man das pw einträgt --> als standard pw hab ich admin erstmal drin so das wenn er admin eingegeben hat sich eine form2 (adressbuch) öffnet --> das ist dann sozusagen die main form und hat ein menü --> in dem menü soll man dann das pw ändern können also man hat da dann 2 editfelder --> 1. editfeld(passworteingeben) und 2. editfeld(pw wiederholen) wenn man dann auf speichern klickt soll man nur noch mit dem neuen pw reinkommen.


Black_Fox - Mi 26.03.08 00:15
Titel: re
ich hab kein plan wie das mit der ini datei geht -.-,
also muss ich sozusagen mein pw erst in ner ini datei speichern und der inhalt der ini datei wird dann bei der pw eingabe verglichen ob die übereinstimmen?


Agawain - Mi 26.03.08 00:43

genau, aber eigentlich könntest Du das PW auch in der Datenbank speichern.

Der Benutzer gibt seinen Benutzernamen und das PW ein, Dein Proggi holt sich Daten aus der Benutzertabelle.

Schau Dir dazu locate an. Ist der Benutzer gefunden, verleichst Du die beiden Passwörter, das aus dem edit und das aus der DB, erst wenn die übereinstimmen, werden die Tabellen der Adressdaten geöffnet.


Black_Fox - Mi 26.03.08 00:51
Titel: re
ah k endlich mal was was ich verstehe werd das mal probieren, ist ja dann so ähnlich wie beim suchen in der db


Black_Fox - Mi 26.03.08 13:15
Titel: re
@Agawain
Hab 2 Fragen: 1. Wie kann ich die Daten nun vergleichen? bzw. wie kann ich die Spalte Passwort aus meiner Tabelle ansprechen?
Geht das so: "if EPasswort.Text = FLogin.DBEPW then"?

2. Bekomm an der Stelle: "if FLogin.TLogin.Locate('Benutzer', EBenutzer.Text) then" immer die Fehlermeldung: "Nicht genügend wirkliche Parameter"?

Hab das so zurzeit:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TFPWEingabe.Button2Click(Sender: TObject);
begin
 if FLogin.TLogin.Locate('Benutzer', EBenutzer.Text) then  //In der Tabelle TLogin von der Form FLogin wird ein Benutzer gesucht der in das Edit Feld EBenutzer eingegeben wurde
 begin
  if EPasswort.Text = FLogin.DBEPW then  //Werte werden verglichen
     FAdressbuch.show; //Hauptform
     FPWEingabe.Hide; //Form wo man Passwort eingeben muss erscheint beim Programmstart
 else
  ShowMessage('Falsches Passwort'); //MessageBox mit dem Inhalt "Falsches Passort!" erscheint
 end;
end;


Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.


Agawain - Mi 26.03.08 15:37

hi

ein Feld sprichst Du so an:

1. form1.dataset1.FieldByName('MeinFeldName').asString

oder so
2. form1.dataset1.fieldvalues['MeinFeldName']

bzw. so
3. form1.dataset1['MeinFeldName']

Welcher Methode Du den Vorzug geben willst, kannst Dir ja mal die Hilfe dazu angucken, hat Beides Vor- und Nachteile.
Form1 kannst Du natürlich weglassen, wenn sich die Datenquelle auf dem selben Formular befindet.

2. und 3. sind im Grunde identisch.

Beim Locate kommt die Fehlermeldung, weil Dir der letzte Parameter, die Suchptionen, fehlt.
Auch wenn Du da korrekterweise keine verwendest....Delphi erwartet dort eine leer geschlossene eckige Klammer, also

form1.Datset1.locate('MeinFeldName', SuchWert, [])

Noch so als Anmerkung, Du solltest noch sicher stellen, dass Benutzernamen nicht doppelt vor kommen können.


Black_Fox - Mi 26.03.08 17:12
Titel: re
Ok thx hab das jetzt so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TFPWEingabe.Button2Click(Sender: TObject);
begin
 if FLogin.TLogin.Locate('Benutzer', EBenutzer.Text, []) then
  begin
   if EPasswort.Text = FLogin.TLogin['Passwort'] then
      FAdressbuch.show;
      FPWEingabe.Hide;
   end
 else
 ShowMessage('Falsches Passwort');
end;


Aber irgendwas fehlt da jetzt? Bisher sucht er nur den eingegebenen Benutzer in der Tabelle, bringt eine MsgBox mit der Anzege Falsches Passwort.

Also muss er jetzt noch das Passwort in der Tabelle suchen oder?

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.


Xentar - Mi 26.03.08 17:18

Gewöhn dir doch bitte an, Delphi TAGs hier im Forum zu verwenden, sowie den Quellcode korrekt einzurücken.
Wenn man dies macht, sieht man den Fehler recht schnell:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TFPWEingabe.Button2Click(Sender: TObject);
begin
  if FLogin.TLogin.Locate('Benutzer', EBenutzer.Text, []) then
  begin
    if EPasswort.Text = FLogin.TLogin['Passwort'] then
      FAdressbuch.show;
    FPWEingabe.Hide;
  end
  else
    ShowMessage('Falsches Passwort');
end;


Das Else gehört also im Moment zu dem Locate. Also findet er deinen Benutzernamen nicht (Groß- / Kleinschreibung beachten!)


Black_Fox - Mi 26.03.08 17:23
Titel: re
@Xentar

Ok es klappt erstmal nur jetzt hab ich folgendes Problem: hab jetzt 2 Benutzer: admin mit dem pw admin und test mit dem pw test. Aber wenn ich jetzt als Benutzer admin und als pw test eingebe kommt kine MsgBox "Falsches Passwort!" sondern die PWEingabe Form verschwindet was eigentlich nicht passieren dürfte, was kann ich dagegen tun?


Agawain - Mi 26.03.08 17:41


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TFPWEingabe.Button2Click(Sender: TObject);
begin
  if FLogin.TLogin.Locate('Benutzer', EBenutzer.Text, []) then
     begin
        if EPasswort.Text = FLogin.TLogin['Passwort'] then
          begin
            FAdressbuch.show;
            FPWEingabe.Hide;
          end
        else
            ShowMessage('Falsches Passwort');
    end
  else
     ShowMessage('Benutzer nicht vorhanden');
end;


Black_Fox - Mi 26.03.08 17:45
Titel: re
@Agawain

Danke jetzt gehts! Und jetzt muss ich noch in dem Formular wo ich die Benutzer und das PW anlege verhindern da es doppelte Datensätze gibt?


Agawain - Mi 26.03.08 17:48

ja

mehrere Benutzer unter demselben Namen gibbet niergendwo :lol:


Locate findet sowieso nur den ersten.
Und mit Locate kannst du dann auch abfragen, obs den schon gibt.


Black_Fox - Mi 26.03.08 17:54
Titel: re
Ok aber auf dem Formular wo ich die Felder hab, hab ich ja kein Button sondern nur die Navigatorbar kann ich auch der diese Aufgabe zuweisen?


Agawain - Mi 26.03.08 18:00

Ja

Nun isset aber jut mit dem am Händchen führen :mrgreen:

Schau doch selber erstmal nach, welche Eigenschaften, Ereignisse und Methoden der Navigator hat.

Wenn Du die oben angegebenen Anforderungen erfüllt hast, dann bist Du doch selbständig schon ganz schön weit gekommen :zustimm:

also weiter so


Black_Fox - Mi 26.03.08 18:10
Titel: re
ok ich werds versuchen^^


Black_Fox - Do 27.03.08 16:32
Titel: re
kannste mir wenigstens einen tipp geben wie das + auf der navigator leiste ansprechen kann? hab schon einiges ausprobiert aber an ereignissen hat gar nicht wirklich gepasst

man könnte es mit einem onclick ereignis machen aber dazu müsste ich wissen wie der + button auf der navi heißt finde aber nichts dazu


Blackheart666 - Do 27.03.08 18:35

Einen Tipp Komponentenname eingeben den Punkt setzen kurz warten und schauen was da alles so angezeigt wird, vieleicht auch mal dran denken das dies alles englisch ist dann kommt man leichter drauf. :wink:


Martok - Do 27.03.08 19:00

Ich weiß zwar nicht, ob dein 'Navigator' ein DBNavigator ist... aber wenn, dann guck dir mal das Ereignis OnClick und dessen Parameter Button an ;)


Agawain - Fr 28.03.08 00:31

oder Du markierst einfach den Navigator auf dem Formular und drückst auf F1.

Da gibts sogar ein Beispiel :idea:

Du kannst Dir auch die Ereignisse von TTable angucken, damit gehts auch, vielleicht sogar etwas kontrollierbarer, also z.B. beforePost

Übrigens noch ein Tipp, Du musst dafür Sorge tragen, dass es wenigstens einen Benutzer gibt, also auch prüfen, ob in der Benutzertabelle der letzte Datensatz gelöscht wird und das verhindern, sonst komm ich nämlich, lösch alle Benutzer und schliesse das Programm, dann öffne ich es wieder und dann sag ich...Und nu :roll:


Black_Fox - Fr 28.03.08 16:08
Titel: re
Hi ok ich mach das mit der Hilfe von der Tabelle also nicht mehr mit der "DBNavigator-Komponente".
Ich wollte dafür BeforeInsert also bevor ein Datensatz eingefügt wird soll er das machen benutzen.
Bloß nun hab ich das Problem das er nicht abbricht, sondern den Datensatz trotzdem einträgt und einen leeren Datensatz kann ich auch nicht mehr hinzufügen sondern nur noch die vorhandenen bearbeiten.
Dazu kommt das er jetzt immer wenn ich auf den + Button klicke die MsgBox anzeigt, was ja logisch ist da ich nur die ändern kann die schon da sind^^, wie kann ich das ändern?
Soll ich anstatt des abort villt Table1.Delete verwenden?

So hab ichs:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
 if Table1.Locate('Benutzer', DBEdit1.Text, []) then
    ShowMessage('Benutzer bereits vorhanden!');
    abort;
end;


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


Agawain - Fr 28.03.08 16:13

Ne, ne, Du mußt das mit beforePost machen.

Insert legt ja erstmal nur einen leeren Datensatz an.
Da gibts noch gar nix zu prüfen.

Aber wenn der Benutzer den Datensatz speichert, also den Haken klickt, oder den Datensatz wechselt, dann führt das Grid ein Post aus.


Black_Fox - Fr 28.03.08 18:33
Titel: re
aber wenn ich das in post mache kommt immer ne fehlermeldung T_T


Xentar - Fr 28.03.08 19:11
Titel: Re: re
user profile iconBlack_Fox hat folgendes geschrieben:
aber wenn ich das in post mache kommt immer ne fehlermeldung T_T


Verrate uns bloß nicht, was für eine Fehlermeldung kommt.. geschweige denn, was für einen Quelltext du verwendest..
Könnte ja passieren, dass man dir helfen kann.


Black_Fox - Fr 28.03.08 22:16
Titel: re
Also das hier ist die Fehlermeldung:

Im Projekt Project1.exe ist eine Exception der Klasse EStackOverflow aufgetreten. Meldung: "Stack-Überlauf". Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

Und das der Code dazu:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
 if Table1.Locate('Benutzer', DBEdit1.Text, []) then
    ShowMessage('Benutzer bereits vorhanden!');
    abort;
end;


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


Agawain - Fr 28.03.08 23:40

tz

also EStackoverflow bedeutet, iwie hast es nu hingekriegt, ne Endlosschleife zu produzieren und das hat nichts mit dem von dir geposteten Quelltext zu tun, jedenfalls nicht direkt

Häng mal das ganze Projekt hier rein, aber mal ehrlich...ich find es etwas schade, dass Du wenn Du etwas machst, nicht auch mal ein bissel nach rechts und links guckst und Dir ein paar Gedanken machst.

Edit// wahrscheinlich hast Du noch das BeforeInsert drin oder irgendwas in der Art...versuch erstmal selbst dahinter zu kommen und dir klar zu machen, was da abläuft


Black_Fox - Sa 29.03.08 16:09
Titel: re
Ich mach mir doch Gedanken bloß ich weiß ni wo der Fehler leigt weil das ist eigentlich der wichtigste Teil im Quelltext. Dazu kommt das ich das erste mal mit DB in Zusammenhang mit Delphi arbeite.

Hier ist der gesamte Quelltext, hab nen neues Projekt erstellt und das da genauso gemacht und der selbe Fehler kommt:


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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, DBTables;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBNavigator1: TDBNavigator;
    procedure Table1BeforePost(DataSet: TDataSet);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
 if Table1.Locate('Benutzer', DBEdit1.Text, []) then
    ShowMessage('Benutzer bereits vorhanden!');
    abort;
end;

end.


Hab zu dem Fehler nur das gefunden, aber werde daraus nicht shlau:

Beschreibung

EStackOverflow wird ausgelöst, wenn das System den erforderlichen Stack-Speicher nicht zuweisen kann. Mögliche Gründe sind extrem große lokale Variablen, eine große Rekursionstiefe oder unzulässiger Machinencode.

Zur Laufzeit werden Exception-Informationen in die Felder von EExternal gespeichert.

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


Xentar - Sa 29.03.08 16:29

Stackoverflow kann man auch als "Endlosschleife von Prozeduren" beschreiben, also Prozeduren, die sich immer wieder selber aufrufen (Rekursion). Wenn das zu viele werden, tritt eben dieser Fehler auf.

In deinem Fall:
1. Der Datensatz soll gespeichert werden -> OnBeforePost wird aufgerufen
2. In diesem Ereignis rufst du Locate auf. Locate verschiebt aber den aktuellen Datensatz. Um diesen zu verschieben, muss der aktuelle aber erst gespeichert werden -> zurück zu 1

Das Ganze läuft dann immer wieder im Kreis, bis irgendwann der Stack überläuft.


Lösung hab ich grad keine, da ich noch nie eine Eingabe direkt ins Grid erlaubt habe.. ich bau mir da immer einen eigenen Editor (neues Formular) für.


Black_Fox - Sa 29.03.08 17:06
Titel: re
@Agawain kennst du ne lösung?^^


Black_Fox - So 30.03.08 15:06

keiner ne idee?


Agawain - So 30.03.08 15:40

Xentars Vermutung wird wohl stimmen.

Erstell Dir ein Query auf die Benutzertabelle. Da führste das Locate aus.


Black_Fox - So 30.03.08 20:59

Ok hab ne query auf die oberflche gesetzt und da bei beforepost das mit dem locate reingeschrieben, aber wie funkt das jetzt mit der query? muss doch bestimmt noch mehr einstellungen vornehmen?


Black_Fox - So 30.03.08 21:01

Ok hab ne query auf die oberflche gesetzt und da bei beforepost das mit dem locate reingeschrieben, aber wie funkt das jetzt mit der query? muss doch bestimmt noch mehr einstellungen vornehmen?

kommt nämlich keine messagebox wenn ich jetzt nen doppelten datensatz eintrage und wenn ich die query aktivieren will kommt immer keine sql befehle vorhanden?


Black_Fox - Di 01.04.08 14:20

Warum antworet mir keiner mehr? T_T

Kann das mit dem PW auch erstmal auslassen!
Wollte mal fragen wie ich ein Bild in der Datenbank speichern kann? Sprich z.B. auf einen Button klicken "Bild öffnen" dann such ich mir das gewisse Bild aus und es wird in dem DBImage Feld angezeigt? Kann ich das mit einem Dialog machen?
Und das Speichern des Bildes würde ja dann wieder mit der DBNavigator Komponente gehen oder?


Xentar - Di 01.04.08 15:13

1. Sollst du nicht so ungeduldig sein. Man kann ja wohl, nachdem man eine Frage stellt, 2-3 Tage warten, bevor man nachfragt.
2. Neue Frage = erst suchen, und wenn nichts gefunden, neues Thema erstellen.


Black_Fox - Di 01.04.08 21:14

Ok sorry das wollte ich nicht.
hier nochmal zu der frage die ich gestellt hatte:

Zitat:
Ok hab ne query auf die oberfläche gesetzt und da bei beforepost das mit dem locate reingeschrieben, aber wie funkt das jetzt mit der query? muss doch bestimmt noch mehr einstellungen vornehmen?

kommt nämlich keine messagebox wenn ich jetzt nen doppelten datensatz eintrage und wenn ich die query aktivieren will kommt immer keine sql befehle vorhanden?


Agawain - Di 01.04.08 21:55

http://www.delphi-treff.de/tutorials/datenbank-tutorials/win32/datenbanken-fuer-fortgeschrittene/page/7/

aber nicht nur diese Seite lesen.

Du mußt dem Query eine SQl-Anweisung mitgeben, sonst weiss die doch nicht, was sie machen soll.

Und immer schön die F1-Taste benutzen.


Black_Fox - Do 03.04.08 17:09

Hi gibt es einen SQL Befehl wo ich was vergleichen kann?Und geht das bis jetzt so?


SQL-Anweisung
1:
Select Benutzer from TLogin where Benutzer = DbEdit.Text                    


Black_Fox - Do 10.04.08 17:37

wollte mal fragen ob der ansatz stimmt oder was ich berichtigen muss?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
begin
Query1.CloseDatabase;
Query1.SQL.Clear;
if Query1.SQL.Add('Select Benutzer from TLogin where Benutzer = DbEdit.Text') then
   ShowMessage('Benutzer bereits vorhanden');
   abort;
else
   TLogin.Post;
   Query1.ExecSQL;
end;
end;


Black_Fox - Di 13.05.08 13:31
Titel: re
Bin fast fertig mit meinem Adressbuch bloß nun bekomm ich immer einen Fehler und ich weiß nicht wie ich diesen verhindern kan. Dieser Fehler lautet: EInvalidOperation = Eigenschaft visible kann nicht in onshow oder onhide verändert werden

könnt ihr mir sagen wie den Fehler verhindern kann? er komt immer wenn ich meine Login Form schließen will und dies tue ich entweder über edn Button abbrechen oder über das schließen x

Das steht in meiner Hauptform:

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:
Procedure TFMain.FormShow(Sender: TObject);
Begin
  ProgPath := ExtractFilePath(paramstr(0));
  PicPath := ProgPath + '\Bilder\';
  DBInit;
  IBild.Picture.LoadFromFile(PicPath + 'Standard.bmp');
  ZugangOK := False;

  FLogin.ShowModal;
  
  If Not ZugangOK Then
    Begin
      Halt;
    End;

  If DBEPfad.Text = '' Then
    Begin
      IBild.Picture.LoadFromFile(PicPath + 'Standard.bmp');
    End
  Else
    If FileExists(DBEPfad.Text) Then
      Begin
        IBild.Picture.LoadFromFile(DBEPfad.Text);
      End
    Else
      Begin
        IBild.Picture.LoadFromFile('Standard.bmp');
     End;
End;


und das ihn meiner Loginform:


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:
//******************************************************************************
//******************** Programm beenden ****************************************
//******************************************************************************

Procedure TFLogin.BAbbrechenClick(Sender: TObject);
Begin
  Close;
End;

//******************************************************************************
//******************** Programm Zugang *****************************************
//******************************************************************************

Procedure TFLogin.BOKClick(Sender: TObject);
Begin
  If FMain.QBenutzer.Locate('Benutzer', EBenutzer.Text, []) Then
    Begin
      If EPasswort.Text = FMain.QBenutzer['Passwort'] Then
        Begin
          ZugangOK := True;
        End
      Else
        Begin
          MessageDlg('Falsches Passwort!', mtError,
          [mbOk], 0);
          ZugangOK := False;
        End;
    End
  Else
    Begin
      MessageDlg('Benutzer nicht vorhanden!', mtError,
      [mbOk], 0);
      ZugangOK := False;
    End;
End;


Klabautermann - Fr 16.05.08 13:51

Hallo,

bitte öffne für eine neue Frage auch ein neues Topic. Sonst wird das für Zukünftige Nutzer, die vielleicht genau das gleiche Problem haben wie du jetzt, schwer möglich die (hoffentlich bald vorhandene) Lösung zu dem Problem zu finden.

Daher gilt immer: Neue Frage = Neues Topic

Gruß
Klabautermann