Вернул все как было:
// Функция для вычисления проекции
function Modify(hmap: HMAP; parm: PTASKPARMEX): integer;
{$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF};
external sGISVECTR;
procedure Tform_main.N20Click(Sender: TObject);
var
aPathShell, aIniName : GTKString;
parm: TTASKPARMEX;
appname, shpath, ininame : GtkString;
begin
if (mvMap.Active) then
begin
// Имя приложения
appname := GtkString(Application.Title);
// Каталог приложения (exe,dll,...)
shpath := GtkString(ExtractFilePath(Application.ExeName));
// Полное имя файла ".ini" приложения
ininame := GtkString(Application.ExeName + '.ini');
// Подготовка структуры
FillChar(parm, sizeof(parm), 0);
with parm do
begin
Language := cML_RUSSIAN; // Локализация интерфейса
Handle := Self.Handle; // Идентификатор главного окна приложения
DocHandle := mvMap.Handle; // Идентификатор окна карты
aPathShell := GTKPChar(ExtractFilePath(Application.ExeName));
aIniName := GTKPChar(aPathShell +'Uzor.ini');
PathShell := GTKPChar(aPathShell);
IniName := GTKPChar(aIniName);
ApplicationName := GTKPChar(appname); // Имя приложения
end;
Modify(mvMap.MapHandle, @parm);
end
else
ShowMessage('Нет открытой карты!');
end;
Программа компилируется нормально.
Запускается тоже нормально.
Но при попытке вызвать Tform_main.N20Click
Результат на скриншоте.
Возможно я путаюсь с кодировкой?
// Функция для вычисления проекции
function Modify(hmap: HMAP; parm: PTASKPARMEX): integer;
{$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF};
external sGISVECTR;
procedure Tform_main.N20Click(Sender: TObject);
var
aPathShell, aIniName : GTKString;
parm: TTASKPARMEX;
appname, shpath, ininame : GtkString;
begin
if (mvMap.Active) then
begin
// Имя приложения
appname := GtkString(Application.Title);
// Каталог приложения (exe,dll,...)
shpath := GtkString(ExtractFilePath(Application.ExeName));
// Полное имя файла ".ini" приложения
ininame := GtkString(Application.ExeName + '.ini');
// Подготовка структуры
FillChar(parm, sizeof(parm), 0);
with parm do
begin
Language := cML_RUSSIAN; // Локализация интерфейса
Handle := Self.Handle; // Идентификатор главного окна приложения
DocHandle := mvMap.Handle; // Идентификатор окна карты
aPathShell := GTKPChar(ExtractFilePath(Application.ExeName));
aIniName := GTKPChar(aPathShell +'Uzor.ini');
PathShell := GTKPChar(aPathShell);
IniName := GTKPChar(aIniName);
ApplicationName := GTKPChar(appname); // Имя приложения
end;
Modify(mvMap.MapHandle, @parm);
end
else
ShowMessage('Нет открытой карты!');
end;
Программа компилируется нормально.
Запускается тоже нормально.
Но при попытке вызвать Tform_main.N20Click
Результат на скриншоте.
Возможно я путаюсь с кодировкой?