Autor |
Beitrag |
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Mo 18.01.16 16:21
Hallo Freunde,
mal wieder eine Frage von mir:
Ich arbeite in meinem Tool mit Access und somit auch DBEdit Komponenten. Ich möchte nun wenn DBEdit1= Edit ist ein Panel anzeigen lassen
Zbs. Hallo Freunde,
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.text = DBEdit1.Text then Panel1.Visible:= true; end; |
Funktioniert aber nicht
Kann mir jemand helfen?
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
baumina
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Mo 18.01.16 16:39
Greife nicht auf die DBEdit zu, sondern auf die Daten der Tabelle.
Delphi-Quelltext 1:
| if DBTable.FieldByName('EinFeld').AsString = Edit1.Text |
|
|
tomte
Beiträge: 19
Erhaltene Danke: 5
Win 7, Win 8.1, Win 10, Win Server 2012
|
Verfasst: Mo 18.01.16 16:51
Versuch es mal mit:
if (CompareStr((Edit1.text), (DBEdit1.Text)) < 0) then
Panel1.Visible:= true;
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Mo 18.01.16 18:33
tomte hat folgendes geschrieben : | Versuch es mal mit:
if (CompareStr((Edit1.text), (DBEdit1.Text)) < 0) then
Panel1.Visible:= true; |
Hier gibt er mir auch ohne das die Inhalte Übereinstimmen das Panel1.visible:= true aus
Er soll die beiden Felder vergleichen, und wenn der Inhalt Übereinstimmt soll Panel1 visible
Wofür soll das <0 stehen
|
|
tomte
Beiträge: 19
Erhaltene Danke: 5
Win 7, Win 8.1, Win 10, Win Server 2012
|
Verfasst: Di 19.01.16 09:25
Roy hat folgendes geschrieben : | tomte hat folgendes geschrieben : | Versuch es mal mit:
if (CompareStr((Edit1.text), (DBEdit1.Text)) < 0) then
Panel1.Visible:= true; |
Hier gibt er mir auch ohne das die Inhalte Übereinstimmen das Panel1.visible:= true aus
Er soll die beiden Felder vergleichen, und wenn der Inhalt Übereinstimmt soll Panel1 visible
Wofür soll das <0 stehen |
Oh, da hat sich ein Fehler eingeschlichen, statt < 0 muss es = 0 heissen.
CompareStr liefert bei Gleichheit zweier Strings 0 zurück.
Ausserdem habe ich festgestellt, dass diese Funktion mittlerweile veraltet ist und man lieber ansicomparestr verwenden sollte.
Also :
if (ansicomparestr((Edit1.text), (DBEdit1.Text)) = 0) then
Panel1.Visible:= true;
oder etwas kürzer:
Panel1.Visible := ansicomparestr(Edit1.text, DBEdit1.Text) = 0;
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Di 19.01.16 11:47
Muss Eigentlich ein Fremder PC Access installiert haben um mit der Datenbank zu arbeiten?
|
|
doublecross
Beiträge: 149
Erhaltene Danke: 27
Windows 7
C#; Visual Studio 2015
|
Verfasst: Mi 20.01.16 10:33
Hi,
Roy hat folgendes geschrieben : | Muss Eigentlich ein Fremder PC Access installiert haben um mit der Datenbank zu arbeiten? |
höchstwahrscheinlich nicht .
Die Frage ist natürlich immer, wie du auf die Datenbank zugreifst. Ich nehme an, dass du er über die JET-Engine per ADO machst. Dafür wird lediglich MDAC benötigt. Welches nur bei ganz alten Windows Versionen nicht Bestandteil des Systems sind.
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Mi 20.01.16 11:15
Hallo Ihr lieben kleinen Helfer,
kann man auch noch eine oder Funktion himzufügen?
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Mi 20.01.16 11:16
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Di 09.02.16 21:29
Mir ist jetzt die Sache gelungen habe aber dazu noch eine Frage.
Wie kann ich noch eine Fehlermeldung rausgeben wenn rot markiertes nicht erfüllt ist?
procedure TForm1.Button1Enter(Sender: TObject);
begin
Panel1.Visible := ansicomparestr(Zertifizierungnummer.text, DBEdit2.Text) = 0;
Panel3.Visible:= false;
end
|
|
tomte
Beiträge: 19
Erhaltene Danke: 5
Win 7, Win 8.1, Win 10, Win Server 2012
|
Verfasst: Mi 10.02.16 11:18
|
|
Roy
Beiträge: 184
Windows7 Ultimate
Delphi 2007, NET, Embarcadero
|
Verfasst: Mi 10.02.16 16:33
Funktioniert wunderbar.
Vielen Dank
|
|