| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Program afslutter ikke helt... Fra : Michael Vilhelmsen | 
  Dato :  02-05-06 12:18 |  
  |   
            Hej
 
 Jeg har lavet et program i Delphi 5 Ent.
 
 Dette program benytter InterbaseExpress Comp. op imod en Firebird DB.
 
 Når programmet afvikles på en lokal maskine får jeg i nogle tilfælde det problem, at når man vælger at afslutte programmet, forsvinder det fra kørende programmer, men der findes stadigvæk en process 
 med dette navn.
 Og eftersom vores program kun tillades at køre én gang på en maskine, kan brugerne ikke mere starte programmet førend de har genstartet maskinen eller slået prosessen ihjel.
 
 Problemet opstår kun på meget få maskiner.
 
 Jeg har nu brugt nogle dage, på at fejlfinde programmet, men har simpelthen ikke kunne finde nogen fejl (dermed ikke være sagt, at der ikke er nogen fejl).
 
 Jeg har 2 maskiner her.
 Den ene er min egen. En ældre sag med en AMD 1,8 Ghz CUP med 1 Gb RAM.
 Den anden er en ny fujitsu-Siemens PC med en AMD 64 Bits CPU og 512 Mb RAM.
 
 Begge maskiner har pt. samme Windows (Alle opdateringer), samme version af mit program og samme version af Firebird.
 På den der 64 bits maskiner kan jeg starte programmet, gå ind i ét bestemt punkt, gå ud igen med det samme og så er fejlen der.
 På min maskine kan jeg ikke gøre dette. Overhovedet.
 
 
 Mit spørgsmål er så:
 
 Ved I om Delphi 5 og de nye 64 bits CPU'er skulle have et problem ?
 
 Eller har I andre idéer ?
 
 Michael
 
 -- 
 
 Best Regards / Venlig hilsen
 Michael Vilhelmsen
 ==========
 Best Regards / Venlig hilsen
 
 Michael Vilhelmsen
 
 
  
            
             |   |   
            
        
 
            
         
           synonym@sol.dk (04-05-2006) 
         
	
            | Kommentar Fra : synonym@sol.dk | 
  Dato :  04-05-06 09:34 |  
  |   
            Michael Vilhelmsen wrote:
 > Eller har I andre idéer ?
 
   -----------  8< ----------------
 
 Jeg har desværre ikke nogen reelt svar til dit spørgsmål, men da jeg
 selv har haft lidt problemer med Hyper-Threading ifb. med lukning af
 com-porte, starter jeg ofte en timer ved FormClose der ved udløb
 sender "halt". Det plejer at kvæle programmet (med mindre der er
 et api-kald der endnu ikke er returneret)
 
 var
   KillTimer: TTimer;
 
   KillTimer := TTimer.Create(Self);
   with KillTimer do
   begin
     Name := 'KillTimer';
     Enabled := False;
     Interval := 4000;
     OnTimer := KillTimerTimer;
   end;
 
 
 procedure TMainForm.FormClose(Sender: TObject; var Action:
 TCloseAction)
 begin
   KillTimer.Enabled := True;
 end;
 
 procedure TMainForm.KillTimerTimer(Sender: TObject);
 begin
   Halt;
 end;
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |