Einzelnen Beitrag anzeigen

Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3

Re: SpeedButton verschwindet bei Datenbank-Connect

  Alt 3. Jun 2005, 15:04
ich habe mal die entscheidende Routine aus der OnClick-Methode rauskopiert:

Delphi-Quellcode:
MDBCon:= TConnectThread.Create(false, DB_DataModul.ZConDBMaster, ini.MDBName,
                                     INetHostAdress, ini.IniUserName, ini.IniUserPass,
                                     ConPort);
MDBCon.WaitFor;
dann der Thread:

Delphi-Quellcode:
constructor TConnectThread.create(CreateSuspended: boolean; Connection: TZConnection;
                                  DBName, Host, User, Pass: String; ConPort: Integer;
                                  const Protocol: String = 'mysql-4.0');
begin
  inherited create(CreateSuspended);
  //Priority:= tpIdle;
  freeOnTerminate:= false;
  fErrCode:= -1;
  fCon:= Connection;

  fCon.Database:=DBName;
  fCon.HostName:= Host;
  fCon.User:= User;
  fCon.Password:= Pass;
  fCon.Port:= ConPort;
  fCon.Protocol:= Protocol;
end;

procedure TConnectThread.Execute;
begin
  {Try
    fCon.Connected:= true;
    fErrCode:= 0;
  except
    fErrCode:= 1;
  end; }


  Synchronize(Connect);
end;
anfangs hatte ich es ohne Synchronisation probiert, da keine VCL-Komponenten in der Execute-Methode angesprochen werden. Die Synchronisation hat aber auch nix gebracht...die synchronisierte Connect-Methode enthält also den gleichen Code wie der ausgeklammerte Teil der Execute-Methode. Thread-Priority ändern hat auch nix gebracht...
  Mit Zitat antworten Zitat