Avatar billede dl Nybegynder
11. december 2004 - 21:26 Der er 8 kommentarer og
1 løsning

Problemmer med Only one instance

begin
  Application.Initialize;
  begin
    ProjectName := 'up2data.running'; // define the project-name
    mHandle := CreateMutex(nil, True, PChar(ProjectName));
    if GetLastError = ERROR_ALREADY_EXISTS then
    begin
      showmessage('Application is already running.');
      halt; // kill the second instance
    end;
  end;
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TSplashForm, SplashForm);
  Application.CreateForm(Tup2dateForm, up2dateForm);
  Application.Run;

finalization
  if mHandle <> 0 then
    CloseHandle(mHandle); // free the mHandle

end.

Hvorfor siger den at den ikke kan finde en "end", hvor skal den end være ?
Avatar billede delphi Nybegynder
11. december 2004 - 21:41 #1
Prøv med:
begin
  Application.Initialize;
  begin
    ProjectName := 'up2data.running'; // define the project-name
    mHandle := CreateMutex(nil, True, PChar(ProjectName));
    if GetLastError = ERROR_ALREADY_EXISTS then
    begin
      showmessage('Application is already running.');
      halt; // kill the second instance
    end;
  end;
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TSplashForm, SplashForm);
  Application.CreateForm(Tup2dateForm, up2dateForm);
  Application.Run;
end.

finalization
  if mHandle <> 0 then
    CloseHandle(mHandle); // free the mHandle


(Der er flyttet et "End" op før "Finalization"
Avatar billede dl Nybegynder
11. december 2004 - 21:52 #2
Jamen jeg troede da ikke at det tager kode efter  "end."
End. betyder da at programmet slutter HER.

//dl

eller hvor har jeg sovet i timen. ??
Avatar billede dl Nybegynder
11. december 2004 - 22:02 #3
[Warning] up2date.dpr(35): Text after final 'END.' - ignored by compiler
Avatar billede stone Forsker
11. december 2004 - 22:36 #4
den kode her er testet....


var
    MutexHandle: THandle;


begin
MutexHandle := CreateMutex(nil, TRUE, 'MyappVin');
    if MutexHandle <> 0 then
      begin
          if GetLastError = ERROR_ALREADY_EXISTS then

          begin
              MessageBox(0, 'Vin kører allerede.',
                            'Information', mb_IconHand);


            CloseHandle(MutexHandle);
              Halt; // 'Halt' er den som sørger for at programmet ikke
                    // kører i mere end en instance.
          end

              end;




  Application.Initialize;
  Application.Title := 'Vin';
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Avatar billede dl Nybegynder
11. december 2004 - 23:27 #5
stone... det virker ... kom med et svar.
Avatar billede stone Forsker
11. december 2004 - 23:47 #6
svar....)
Avatar billede stone Forsker
11. december 2004 - 23:48 #7
den explorer er da langsom ss
Avatar billede dl Nybegynder
11. december 2004 - 23:48 #8
takker. Sp er lukket.
Avatar billede delphi Nybegynder
12. december 2004 - 17:59 #9
Du skal ikke være så nærtagen!  Se'følig kan der ikke være kode efter end.  Der skulle stå end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester