AGB  ·  Datenschutz  ·  Impressum  







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

Variablen Umwandlung

Ein Thema von ghost007 · begonnen am 20. Dez 2007 · letzter Beitrag vom 21. Dez 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#11

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:29
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
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#12

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:29
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?
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#13

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:34
Zitat von grenzgaenger:
daher die frage, was willst du damit bezwecken?
Siehe post #11

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:34
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#15

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:36
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
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#16

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:38
WM_COPYDATA
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Variablen Umwandlung

  Alt 20. Dez 2007, 23:41
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#18

Re: Variablen Umwandlung

  Alt 21. Dez 2007, 12:07
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
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Variablen Umwandlung

  Alt 21. Dez 2007, 12:25
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;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#20

Re: Variablen Umwandlung

  Alt 21. Dez 2007, 12:39
Ok,
ich muss zugeben ziemlich cool
Das funktionier 1a.
Jedoch würd mich noch interessieren was bei meinem post #18 falsch war.

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 12:27 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