Засада в файле проекта...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Засада в файле проекта...

Сообщение qivi » 25.03.2009 15:53:46

Перехожу с версии лазаруса .....26 на версию ......27, нижеследующий код работал у меня в делфи и в лазарусе версии ......26, в версии .....27 не работает:

Код: Выделить всё
program myprogramm;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces,windows, Forms, gf, LResources, zastavka;

Const NamedMutex='myprogramm_PROGRAMMI'; // Описание мьютекса программы
Var WND:HWND;

Function CheckInstance(Name: PChar): Integer;
Var Mutex:Integer;
Begin
Mutex:=CreateMutex(nil,True,Name);
IF GetLastError<>0 then Result:=0 else Result:=Mutex;
ReleaseMutex(Mutex);
End;
{$IFDEF WINDOWS}{$R universal_slovar.rc}{$ENDIF}

begin
With Application Do
  Begin
   IF CheckInstance(NamedMutex)=0 then
    {Если наш мьютекс уже найден в системе}
    Begin
    {Находим окно объекта TApplication}
    WND:=Findwindow(nil,'Моя программа');
    IF WND<>0 then
     Begin
     {Восстанавливаем его}
     ShowWindow(WND,SW_RESTORE);
     {Устанавливаем в качестве переднего окна}
     SetForeGroundWindow(Wnd);
     {Выходим из программы, не запуская её}
     Exit;
    End;
   End;
   Title:='Моя программа';
   Initialize;
  {$I universal_slovar.lrs}
  Application.Initialize;
  zastava := Tzastava.Create(Application);
  zastava.Show;
  zastava.Update;
  while zastava.timerzastava.Enabled do Application.ProcessMessages;
  zastava.Hide;
  zastava.Free;
  Application.CreateForm(Tmyprogramm, myprogramm);
  Application.Run;
  end;
end.


В том плане что приложение всё равно запускается дважды...
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Засада в файле проекта...

Сообщение v-t-l » 25.03.2009 17:19:02

qivi писал(а):
Код: Выделить всё
WND:=Findwindow(nil,'Моя программа');

возможно проблема в UTF8
v-t-l
энтузиаст
 
Сообщения: 734
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Засада в файле проекта...

Сообщение qivi » 25.03.2009 18:36:56

:shock: а как быть?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Засада в файле проекта...

Сообщение qivi » 26.03.2009 21:17:20

Граждане форумчане, ну неужеле никто не решал эту проблемму?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Засада в файле проекта...

Сообщение Mr.Smart » 26.03.2009 21:38:12

Тебе же написали, что проблемма с UTF-8!
Функции WinAPI вообще с UTF-8 не работают!
Код: Выделить всё
WND:=FindWindow(nil,UTF8ToSys('Моя программа'));
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Засада в файле проекта...

Сообщение Vadim » 27.03.2009 07:35:55

qivi писал(а):Граждане форумчане, ну неужеле никто не решал эту проблемму?

Граждане форумчане уже разъясняли эту проблему ни одну сотню раз. Просто отдельные граждане ленятся пользоваться поиском.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Засада в файле проекта...

Сообщение qivi » 28.03.2009 13:39:30

Vadim, компилятор пишет на предложенную тобой строку "Error: Incompatible type for arg no. 2: Got "AnsiString", expected "PChar""

Если вопрос уже разобран, дай пожалуйста ссылочку на тему... не нашол...
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Засада в файле проекта...

Сообщение Mr.Smart » 28.03.2009 14:01:11

ммм да
Код: Выделить всё
WND:=FindWindow(nil,PChar(UTF8ToSys('Моя программа')));

...а простейшие собщения компилятора читать то мы неумеем...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Засада в файле проекта...

Сообщение qivi » 28.03.2009 15:39:21

Да нет просто не знал что это такое... :oops:
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 20

Рейтинг@Mail.ru
cron