AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Geolocation Windows API

Ein Thema von dtpfl · begonnen am 18. Aug 2022 · letzter Beitrag vom 26. Aug 2022
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Geolocation Windows API

  Alt 25. Aug 2022, 16:51
Zitat:
IID = (4082257043, 58823, 23432, (190, 219, 211, 230, 55, 207, 242, 113)) gefragt, was als bekannte Hex(-String)
Wie kommst du von diesem Wert zu diesem Hex(-String)? Was wäre hier die einfachste Möglichkeit?
Vielleicht so?
Delphi-Quellcode:
  function ToIID(A: Cardinal; B, C: Word; D, E, F, G, H, I, J, K: Byte): string;
  begin
    Result := '{' + IntToHex(A) + '-' + IntToHex(B) + '-' + IntToHex(C) + '-' +
              IntToHex(D) + IntToHex(E) + '-' + IntToHex(F) + IntToHex(G) +
              IntToHex(H) + IntToHex(I) + IntToHex(J) + IntToHex(K) + '}';
  end;
var
  s: string;
begin
  s := ToIID(4082257043, 58823, 23432, 190, 219, 211, 230, 55, 207, 242, 113);
  ShowMessage(s);
end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (25. Aug 2022 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Geolocation Windows API

  Alt 25. Aug 2022, 18:12
ID.ToString Delphi-Referenz durchsuchenTGuidHelper.ToString


aber das denke ich liegt daran dass VCL keine WINUI oder UWP ist.
Das kann man so nicht mehr so einfach sagen.

Ich weiß jetzt nicht, wie es bei dieser Komponente aussieht, aber viele neue Komponenten, im Delphi, greifen intern auf die API der UWP zu, auch wenn du für Win32 (32 oder 64 Bit) kompiliert hast.
Wenn ich mich recht erinnere, z.B. bei den Bluetooth-Komponenten.

Btw. wo enable ich Debug-DCU?
Projekt-Optionen > Delphi-Compiler -> Compilieren
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Geolocation Windows API

  Alt 26. Aug 2022, 00:22
Wie wendet man das an um aus "IID = (4082257043, 58823, 23432, (190, 219, 211, 230, 55, 207, 242, 113))" das zu machen "{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}" ?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#14

AW: Geolocation Windows API

  Alt 26. Aug 2022, 00:52
Du nimmst eine Variable von Typ Delphi-Referenz durchsuchenTGUID, füllst deren Felder und dann ...
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Geolocation Windows API

  Alt 26. Aug 2022, 01:38
füllst deren Felder
Das hatte bei mir zu keinem brauchbaren Ergebnis geführt, da kamen mehr nullen zustande als alles andere da kenne ich mich nicht gut genug mit aus
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
131 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Geolocation Windows API

  Alt 26. Aug 2022, 09:09
Delphi-Quellcode:
var guid : TGUID;
guid.D1 := 4082257043;
guid.D2 := 58823;
guid.D3 := 23432;
guid.D4[0] := 190;
guid.D4[1] := 219;
guid.D4[2] := 211;
guid.D4[3] := 230;
guid.D4[4] := 55;
guid.D4[5] := 207;
guid.D4[6] := 242;
guid.D4[7] := 113;
ShowMessage(guid.tostring);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#17

AW: Geolocation Windows API

  Alt 26. Aug 2022, 10:32
Oder ein TGUID.Create mit den binären Daten.

k.A. warum es keine Variante mit den Feld-Parametern gibt
oder der String-Variante.

wobei der Compiler den String '{...}' kennt und man es dort einfach mit := machen kann.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Geolocation Windows API

  Alt 26. Aug 2022, 11:01
Danke für die Einweisung @SheBang, das funzt

Oder ein TGUID.Create mit den binären Daten.
Genau das hatte ich gestern probiert bevor ich meine mini Methode schrieb, könntest du so nett sein und mal zeigen wie man es korrekt aufruft bitte?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Geolocation Windows API

  Alt 26. Aug 2022, 11:57
Zitat:
IID = (4082257043, 58823, 23432, (190, 219, 211, 230, 55, 207, 242, 113)) gefragt, was als bekannte Hex(-String)
Wie kommst du von diesem Wert zu diesem Hex(-String)? Was wäre hier die einfachste Möglichkeit?
Kopfrechnen?

Nur Spaß, mit ein-zwei Zeilen bist du dabei (siehe auch vorige Antworten):

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
    IID: TGUID;

begin
  try
    IID := TGUID.Create(4082257043, 58823, 23432, 190, 219, 211, 230, 55, 207, 242, 113);
    Writeln(IID.ToString)
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.

Das verwendet dann den TGUIDHelper aus System.SysUtils (nein, ich weiß nicht seit wann das drin ist, bitte fragt nicht):
Delphi-Quellcode:
class function TGUIDHelper.Create(A: Cardinal; B, C: Word; D, E, F, G, H, I, J, K: Byte): TGUID;
begin
  Result.D1 := UInt32(A);
  Result.D2 := Word(B);
  Result.D3 := Word(C);
  Result.D4[0] := D;
  Result.D4[1] := E;
  Result.D4[2] := F;
  Result.D4[3] := G;
  Result.D4[4] := H;
  Result.D4[5] := I;
  Result.D4[6] := J;
  Result.D4[7] := K;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#20

AW: Geolocation Windows API

  Alt 26. Aug 2022, 13:01
Delphi-Quellcode:
procedure guidtest(guid: TGUID);
begin
end;

const
  myguid: TGUID = '{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}'; // hier geht es, unten nicht :(

procedure TForm21.FormCreate(Sender: TObject);
var
  guid: TGUID;
  bytes: TBytes;
begin
  guid := TGUID.Create('{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}');
  //guid := '{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}';
  guid := myguid; // komisch da geht es, warum nicht auch das davor?
  //guidtest('{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}'); geht auch nicht
  guidtest(TGUID.Create('{F3524C93-E5C7-5B88-BEDB-D3E637CFF271}'));

  // den hatte ich auf die Schnelle übersehn .. dachte ihn gibt es (noch) nicht
  guid := TGUID.Create(4082257043, 58823, 23432, 190, 219, 211, 230, 55, 207, 242, 113);

  // mit der ByteOrder bin ich mir grade nicht sicher ... kann sein (wird aber bestimmt so sein), das man die ersten LongWord/Word umdrehen muß.
  bytes := [243, 82, 76, 147, {} 229, 199, {} 91, 136, {} 190, 219, 211, 230, 55, 207, 242, 113];
  guid := TGUID.Create(bytes); // als Array
  guid := TGUID.Create(bytes[0]); // als "irgendwelche" binäre Daten (Zeiger) -> TGUIDHelper.Create(const Data; DataEndian: TEndian=TEndian.Little)
end;
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz