Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: WM_CopyData mit Boolschen Variablen

  Alt 3. Okt 2004, 00:01
jetzt muss ich trotzdem nochmal nachfragen:

wie kann ich denn einen Record übertragen?

Ich hab mal folgendes im Sender gemacht:

Code:
type
  CustomRec = record
    S: String[50];
    B: Boolean;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Rec: CustomRec;

begin
  //
  with Rec do
    begin
      S := Edit1.Text;
      B := CheckBox1.Checked;
    end;

  with aCopyData do
    begin
      dwData := 0;
      cbData := sizeof(Rec) + 1;
      lpData := Pointer(Rec);
    end;


  // Fenster anhand des Titelzeilentext suchen
  hTargetWnd := FindWindowEx(0, 0, nil, PChar('Empfänger'));

  If hTargetWnd <> 0 then
    SendMessage(hTargetWnd, WM_COPYDATA, Longint(Handle), Longint(@aCopyData))
  else
    ShowMessage('Kein Empfänger gefunden!');
Das problem hierbei ist bei "lbData := Pointer(Rec)".
Wie kann ich den Rec dort reinbekommen? (blöde Frage ich weiss )

und beim Empfänger:

Code:
type
  CustomRec = record
    S: String[50];
    B: Boolean;
  end;

procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
  sText: array[0..99] of Char;
  Rec: CustomRec;

begin
  // anzuzeigenden Text aus den Parametern generieren
  StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);

  // Empfangenen Text ausgeben
  label1.Caption := sText;


{
  with Rec do
    begin
      Label1.Caption := S;
      ALed1.Checked  := B;
    end;
}
end;
Wie kann ich beim Empfänger anstatt dem String (sText) den Rec auslesen?

mfg
Helmi
  Mit Zitat antworten Zitat