Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variablen Umwandlung (https://www.delphipraxis.net/105381-variablen-umwandlung.html)

ghost007 20. Dez 2007 21:59


Variablen Umwandlung
 
Hallo,

ich wandle einen string durch folgenden code in einen LongInt um.

Delphi-Quellcode:
LongInt(PChar('destination'));
Wie wandel ich den LongInt den ich nun bekomme wieder so um das ich einen string mit dem inhalt 'destination' bekomme?

MfG - Ghost007

mkinzler 20. Dez 2007 22:02

Re: Variablen Umwandlung
 
Was soll den bei der Umwandlung eines Strings nach LongInt rauskommen?

ghost007 20. Dez 2007 22:04

Re: Variablen Umwandlung
 
aaaaaaaaaaaaaaaalso, um solchen fragen aus dem weg zu gehen ^^

Aus LongInt sollte ein integer wert rauskommen. Wenn ich den nun per IntToStr umwandeln lasse, dann bekomm ich zahlen ... logischerweise. Ich will aber das ursprüngliche "wort" haben.

MfG - Ghost007

mkinzler 20. Dez 2007 22:10

Re: Variablen Umwandlung
 
Das beantwortet meine Frage nicht. Wie soll aus dem string ein Integer (Zahl) werden.

ghost007 20. Dez 2007 22:18

Re: Variablen Umwandlung
 
Zitat:

Zitat von mkinzler
Das beantwortet meine Frage nicht. Wie soll aus dem string ein Integer (Zahl) werden.

ok, da du beharrlich deine frage wiederholst, nehm ich mal an das es eher ne fangfrage ist.
Was mach ich denn falsch am umwandlen in einen integer?

MfG - Ghost007

mkinzler 20. Dez 2007 22:19

Re: Variablen Umwandlung
 
Welchen Wert hat den 'destination'?

ghost007 20. Dez 2007 22:21

Re: Variablen Umwandlung
 
das is der string ^^ da er in ' steht

mkinzler 20. Dez 2007 22:23

Re: Variablen Umwandlung
 
Aber ein Integer ist eine (Ganz)Zahl und keine Zeichenkette. Welcher Ganzzahl entspricht den 'destination'?

ghost007 20. Dez 2007 22:25

Re: Variablen Umwandlung
 
hm ... gute frage o.O ich nehm ma an das es keine gibt?

MfG - Ghost007

mkinzler 20. Dez 2007 22:27

Re: Variablen Umwandlung
 
Genau. Was hast du eigentlich vor?

ghost007 20. Dez 2007 22:29

Re: Variablen Umwandlung
 
Ich will per PostMessage einen string verschicken. Zu dem thema hab ich auch was hier im forum gefunden und derjenige meinte, dass das mit LongInt(PChar(string)) als lParam/wParam des PostMessage geht. Er versendet auch was aber ich muss das dann irgendwie wieder in den string zurückwandeln.

MfG - Ghost007

grenzgaenger 20. Dez 2007 22:29

Re: Variablen Umwandlung
 
du weisst aber schon, dass der wert 'destination' die grenzen eines longints sprengt und du somit nur die halben informationen zur verfügung hast ... beim zurückverwandeln, wie auch immer, kann somit nicht mehr das richtige rauskommen.

daher die frage, was willst du damit bezwecken?

ghost007 20. Dez 2007 22:34

Re: Variablen Umwandlung
 
Zitat:

Zitat von grenzgaenger
daher die frage, was willst du damit bezwecken?

Siehe post #11

MfG - Ghost007

mkinzler 20. Dez 2007 22:34

Re: Variablen Umwandlung
 
Zitat:

Zitat von ghost007
Ich will per PostMessage einen string verschicken. Zu dem thema hab ich auch was hier im forum gefunden und derjenige meinte, dass das mit LongInt(PChar(string)) als lParam/wParam des PostMessage geht. Er versendet auch was aber ich muss das dann irgendwie wieder in den string zurückwandeln.

MfG - Ghost007

Das ist aber keine Umwandlung in einen Integer sondern ein Cast des Zeigers auf ihn in eine LongInt.

ghost007 20. Dez 2007 22:36

Re: Variablen Umwandlung
 
Zitat:

Zitat von mkinzler
Das ist aber keine Umwandlung in einen Integer sondern ein Cast des Zeigers auf ihn in eine LongInt.

Hm,

d.h. der param ist dann ein pointer auf die addresse wo der string gespeichert ist? Wenn ja, dann geht das ja nur programm intern, oder? Wie bekomm ich dann den string von programm A nach programm B ?

MfG - Ghost007

Dax 20. Dez 2007 22:38

Re: Variablen Umwandlung
 
WM_COPYDATA

mkinzler 20. Dez 2007 22:41

Re: Variablen Umwandlung
 
Zitat:

d.h. der param ist dann ein pointer auf die addresse wo der string gespeichert ist?
Ja nichts anderes bedeutet PChar ja: ZEin Zeiger auf das erste Zeichen einer Zeichenkette
Zitat:

Wenn ja, dann geht das ja nur programm intern, oder?
Nein, es geht auch zwischen verschiedenen Anwendungen
Zitat:

Wie bekomm ich dann den string von programm A nach programm B ?
Man übergibt den String ja nicht an direkt an die andere Anwendung, sondern einer (Windows-)Funktion.

ghost007 21. Dez 2007 11:07

Re: Variablen Umwandlung
 
So,
ich hab mir ma das WM_COPYDATA angeschaut, und auch einen codelib eintrag gefunden ... aber irgendwie komm ich auf keinen grünen zweig.

Delphi-Quellcode:
procedure SendName(name:string);
 var
  Data: TCopyDataStruct;
  p: PChar;
begin
 p:=PChar(name);
 with Data do
  begin
   dwData:=0;
   cbData:=Length(p)+1;
   lpData:=p;
  end;
 SendMessage(tmp,WM_COPYDATA,nil,LongInt(@Data));
end;
tmp ist das handle wo die data hingeschickt werden soll. Jedoch bekomm ich bei dem LongInt(@Data) einen error "incompatible types interger and pointer" :(

MfG - Ghost007

dominikkv 21. Dez 2007 11:25

Re: Variablen Umwandlung
 
zum Beispiel so:
Delphi-Quellcode:
const
  WM_MYSTRINGTRANSFER = WM_USER + 151;

type
  TForm1 = class(TForm)
  private
    dwAtom  : DWORD;
    procedure SendString(s: String);
    procedure ReceiveProcedure(var aMSG: TMessage); message WM_MYSTRINGTRANSFER;
  end;

{...}

procedure TForm1.SendString(s: String);
begin
  dwAtom := GlobalAddAtom(PChar(s));
  SendMessage(self.Handle, WM_MYSTRINGTRANSFER, 0, dwAtom);
end;

procedure TForm1.ReceiveProcedure(var aMSG: TMessage);
var
  pFileName : PChar;
  dwLen    : DWORD;
begin
  dwLen    := MAX_PATH + 1;
  pFileName := StrAlloc(dwLen);
  try
    GlobalGetAtomName(aMsg.lParam, pFileName, dwLen);
    showmessage(pFileName);        
    GlobalDeleteAtom(aMsg.lParam);
  finally
    StrDispose(pFileName);
  end;
end;

ghost007 21. Dez 2007 11:39

Re: Variablen Umwandlung
 
Ok,
ich muss zugeben ziemlich cool :D
Das funktionier 1a.
Jedoch würd mich noch interessieren was bei meinem post #18 falsch war.

MfG - Ghost007

dominikkv 21. Dez 2007 11:43

Re: Variablen Umwandlung
 
Zitat:

Zitat von ghost007
Ok,
ich muss zugeben ziemlich cool :D
Das funktionier 1a.
Jedoch würd mich noch interessieren was bei meinem post #18 falsch war.

MfG - Ghost007

Ich glaube eher das der Fehler bei dem NIL kam... der erwartet einen LongInt und kein Zeiger ;)
Also statt NIL -> 0

RavenIV 21. Dez 2007 12:03

Re: Variablen Umwandlung
 
Zitat:

Zitat von ghost007

d.h. der param ist dann ein pointer auf die addresse wo der string gespeichert ist? Wenn ja, dann geht das ja nur programm intern, oder? Wie bekomm ich dann den string von programm A nach programm B ?

Hier ein paar Stichwürter, die Du mit der Hilfe oder Suche anwenden kannst.
Sockets
NamedPipe
Mailslot
SendMessage


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz