Form1-function-Form2
Hallo
Ich schilder mal mein Problem: Also ich habe in meiner Form1 eine prozedur diese überprüft anhand einer function ob die den Rückgabewert True oder False liefert. Falls True ist soll die Prozedur in Form1 weiter abgearbeitet werden. wenn False sollte meine Form2 erscheinen dies Funktioniert auch beim ersten mal. Wenn die Prozedur zur Laufzeit nochmal ausgeführt wird, dann wird meine Form2 aufgerufen obwohl der Rückgabewert True ist. |
AW: Form1-function-Form2
Da wird wohl dein Code falsch sein. Meine Glaskugel funktioniert gerade nicht die mir sonst deinen konkreten Code zeigen würde.
|
AW: Form1-function-Form2
Code:
Das kann doch nicht so schwer sein eine einfache if-Bedingung anzuwenden.
if FunktionIsTrue
begin // put code here end else OpenForm2 |
AW: Form1-function-Form2
Delphi-Quellcode:
Beim erstenmal funktionierts wenn die Function True zurückgibt.
If Function(Parameter1, Parameter2) = True Then
begin ShowMessage('Wahr'); end else begin Fenster2öffnen end; Soblad ichs nochmal ausführe mit Rückgabewert True kommt Fenster2öffnen |
AW: Form1-function-Form2
Zum Einen vergleicht man nicht mit true und zum zweiten: hast Du Dir den Rückgabewert einmal im Debugger angeschaut? Ist er wirklich true? Ansonsten müsstest Du die entsprechende Funktion einmal posten.
|
AW: Form1-function-Form2
Das kann ur der Fall sein, wenn beim zweiten Aufruf die Funktion False zurückgibt.
Und noch was, man vergleicht nicht auf True. Lass das "= True" mal weg. |
AW: Form1-function-Form2
|
AW: Form1-function-Form2
Okay wenn ich das '= True' weglasse dann ändern sich nichts Der Fehler bleibt Trotzdem
|
AW: Form1-function-Form2
Wie wäre es denn mal mit DEbuggen und gucken, was die Funktion beim zweiten Aufruf zurückliefert? Sind denn beim zweiten Aufruf die Werte Argumente mit denen die Funktion aufgerufen wird identisch?
|
AW: Form1-function-Form2
Nochmal: bist Du zu 100% sicher, dass die Funktion auch wirklich true zurückgibt? Offensichtlich tut sie das nämlich nicht, es sei denn, Du hast Dir einen Seiteneffekt eingebaut.
|
AW: Form1-function-Form2
Also ich habs jetzt mal angeschaut. Dann stimmt was bei der Funktion nicht:
Sie gibt mir als Rückgabewert False -.- Hier mal ein auszug:
Delphi-Quellcode:
function Connection_Herstellen(pConnection: TADOConnection; pConnectionString: String): Boolean;
begin if pConnection.Connected = False then begin pConnection.ConnectionString := pConnectionString; try pConnection.Open; Result := True; except on E: Exception do begin Result := False; //MessageBox(0, 'Fehler beim Verbinden mit der Datenbank!', '', //MB_ICONERROR or MB_OK); end; end; end; end; |
AW: Form1-function-Form2
Gibt Dein Compiler da keine Warnung aus? Was kommt denn zurück, wenn pConnection.Connected true ist?
|
AW: Form1-function-Form2
Delphi-Quellcode:
So sieht das richtig aus, dann weißt du auch, was nicht funktioniert.
function Connection_Herstellen(pConnection: TADOConnection; pConnectionString: String): Boolean;
begin Result := False; if pConnection.Connected = False then begin pConnection.ConnectionString := pConnectionString; pConnection.Open; Result := True; end; end; Und der Aufruf:
Delphi-Quellcode:
try
if Connection_Herstellen then begin // weitere Code end else Form2Oeffnen; except on E: Exception do begin MessageBox(0, PChar(e.Message, '', MB_ICONERROR or MB_OK); end; end; |
AW: Form1-function-Form2
sorry:
Delphi-Quellcode:
Grüße
function Connection_Herstellen(pConnection: TADOConnection; pConnectionString: String): Boolean;
begin Result := False; if not pConnection.Connected then begin pConnection.ConnectionString := pConnectionString; pConnection.Open; Result := True; end; end; Klaus |
AW: Form1-function-Form2
Oder so:
Delphi-Quellcode:
function Connection_Herstellen(pConnection: TADOConnection; pConnectionString: String): Boolean;
begin if not pConnection.Connected then try pConnection.ConnectionString := pConnectionString; pConnection.Open; except on E: Exception do begin MessageBox(0, PChar('Fehler beim Verbinden mit der Datenbank:' + sLineBreak + E.Message), '', MB_ICONERROR or MB_OK); end; end; Result := pConnection.Connected; end; |
AW: Form1-function-Form2
Danke DeddyH
Aber so ganz ist das Problem noch nicht behoben. Wenn die Verbindung hergestellt und ich dann den SQL server beende und dann die procedure nochmal ausführe dann öffnet er mir nicht die Form2 Bzw. warum bleibt eine Verbindung offen wenn ich den SQL Server doch beendet habe? |
AW: Form1-function-Form2
Wie soll denn der Client merken, dass der Server nicht mehr da ist? Der Server schickt ihm ja keine Benachrichtigung. also kann der Client die Verbindung auch nicht schließen.
|
AW: Form1-function-Form2
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz