danke für Eure Hilfe.
Ich habe Windows 11 64Bit und Lazarus 4.2 mit FPC 3.2.2
Leider muss ich Euch nochmal nerven. (Sorry).
Mir hat der Vorschlag von Theo gut gefallen (genau mein Stil)
und ich habe ihn umgesetzt.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics,
Dialogs, StdCtrls, Grids, ExtCtrls, Eingabe,
mvMapViewer, shellapi, System.UITypes, LCLIntf,
LCLType, MVTYPES, mvDrawingEngine, Math,
opensslsockets, fphttpclient, fpjson, jsonparser;
type
{ TForm1 }
TForm1 = class(TForm)
Memo1: TMemo;
private
function GetCoordinates(const Address: string): string;
public
end;
var
Form1: TForm1;
ialpha: string;
inummer: integer;
temp: string;
jData: TJSONData;
jItem: TJSONData;
{
{$IF DEFINED(WIN64)}
SSL_DLL_Names: array[1..4] of string = ('libssl-3-x64', 'libssl-1_1-x64', 'ssleay32', 'libssl32');
Crypto_DLL_Names: array[1..4] of string = ('libcrypto-3-x64', 'libcrypto-1_1-x64', 'libeay32', 'libeay32');
{$ELSEIF DEFINED(WINDOWS)}
SSL_DLL_Names: array[1..4] of string = ('libssl-3', 'libssl-1_1', 'ssleay32', 'libssl32');
Crypto_DLL_Names: array[1..4] of string = ('libcrypto-3', 'libcrypto-1_1', 'libeay32', 'libeay32');
{$ELSEIF DEFINED(OS2GCC)}
SSL_DLL_Names: array[1..2] of string = ('kssl10', 'kssl');
Crypto_DLL_Names: array[1..2] of string = ('kcrypt10', 'kcrypto');
{$ELSEIF DEFINED(OS2)}
SSL_DLL_Names: array[1..2] of string = ('emssl10', 'ssl');
Crypto_DLL_Names: array[1..2] of string = ('emcrpt10', 'crypto');
{$ELSE}
BaseSSLName: string = 'libssl';
BaseCryptoName: string = 'libcrypto';
{$ENDIF}
}
implementation
{$R *.lfm}
// im Programm
Memo1.Lines.Clear;
temp:=GetCoordinates(ialpha);
// ialpha := 'Eilenburger Weg 30, 68309 Mannheim, Germany';
inummer:=1;
if Trim(temp) = EmptyStr then inummer:=0;
if inummer = 1 then
begin
jData := GetJSON(temp);
for inummer:=0 to jData.Count-1 do
begin
jItem := jData.Items[inummer];
Memo1.Lines.Add(jItem.FindPath('display_name').AsString);
Memo1.Lines.Add(jItem.FindPath('lat').AsString+' : '+jItem.FindPath('lon').AsString);
Memo1.Lines.Add(EmptyStr);
end;
jData.Free;
Memo1.Visible:=True;
end;
function TForm1.GetCoordinates(const Address: string): string;
var
HttpClient: TFPHTTPClient;
Response: string;
begin
HttpClient:=TFPHTTPClient.Create(nil);
try
HttpClient.AddHeader('User-Agent', 'MeinAppName/1.0 (kontakt@beispiel.de)');
HttpClient.AddHeader('From','meine@domain.tld');
Response:=HttpClient.Get('https://nominatim.openstreetmap.org/search?q='+EncodeURLElement(Address)+'&format=json');
Result:=Response;
finally
HttpClient.Free;
end;
end;
Bringt aber nix.
Siehe im Code nach var Form1: TForm1;
Ich bekomme immer bei dem Befehl:
Code: Alles auswählen
Response:=HttpClient.Get('https://nominatim.openstreetmap.org/search?q='+EncodeURLElement(Address)+'&format=json');
Habe auch schon im Internet nach OpenSSL.dll gesucht.
Habe aber nix gefunden.
Habe dafür die Software OpenSSL-Win64 downgeloadet und installiert.
Da sind folgende dll's drin: libcrypto-3-x64.dll und libssl-3-x64.dll
Ich weiss leider nicht mehr weiter.
Kann da Jemand helfen?
Würde auch für Hilfe 50€ spenden. (brauche nur ein Bankkonto).
Danke und Gruß
Jürgen