AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WM_CopyData mit Boolschen Variablen
Thema durchsuchen
Ansicht
Themen-Optionen

WM_CopyData mit Boolschen Variablen

Ein Thema von Helmi · begonnen am 2. Okt 2004 · letzter Beitrag vom 4. Nov 2005
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: WM_CopyData mit Boolschen Variablen

  Alt 3. Okt 2004, 11:27
Argh. Hättest du nicht warten können bis er einen neuen Thread aufmacht? Hier findet das doch keiner. Oder würdest du einen Thread öffnen, wenn du nach with..do suchst, bei dem im Betreff was von WM_COPPYDATA steht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

Re: WM_CopyData mit Boolschen Variablen

  Alt 3. Okt 2004, 11:30
grins

danke an euch beide
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#13

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 11:54
Zitat von Luckie:
  GetMem(MyRecord, sizeof(TMyRecord));
1.) Sollte ein Pointer nicht eher mit New initialisiert werden?
2.) Ich habe die non-record- und record-Variante für TStringList bzw. TStrings ausprobiert (Dll -> Programm). Jedoch erhalte ich jedesmal eine AV, wenn ich innerhalb der WM_COPYDATA-Proc auf den Pointer der StringList bzw. des record zugreife. Kann mir jemand sagen, wieso dort immer ne Fehlermeldung erscheint? (Liegt es vllt daran, dass in TStrings bzw. TStringList undefinierte Strings enthalten sind? In einem record muss man ja immer eine max. Länge für jeden String angeben...)
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 13:20
@Nogge: Die Daten müssen vollständig in dem Record stehen. Du darfst dort also keine Zeiger benutzen - die sind im Adressraum der anderen Anwendung unbekannt.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#15

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 13:26
Im record selbst stehen ja auch meine vollständigen Daten:
Delphi-Quellcode:
type
  PRecordList = ^TRecordList;
  TRecordList = record
    StringList : TStringList;
  end;
  [...]
  if (MainApp > 0) and (SLData.Count > 0) then
  begin
    New(SLPointer);
    SLPointer^.StringList:=TStringList.Create;
    SLPointer^.StringList.AddStrings(SLData);
    with CDS do
    begin
      dwData:=LoWord(lpici.lpVerb); // MY_PLAY(0) oder MY_ADD(1)
      cbData:=SizeOf(TRecordList);
      lpData:=SLPointer;
    end;
    SendMessage(MainApp,WM_COPYDATA,0,LParam(@CDS));
  end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 13:41
@Nogge: In deinem Record stehen NICHT die vollständigen Daten. Du hast dort Maximal eine Varible vom Typ TStringlist was wiederum nur ein Pointer ist auf die Instanz.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#17

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 13:47
Ah, verstehe. Kann ich stattdessen ein array of string[255] im record deklarieren? Müsste doch gehen, da es ausgeschrieben ein array of array of Char wäre, oder?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#18

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 14:07
ein "Array of String[255]" geht auch nicht da es ja dann ein dynamiches Array ist. Und ein dynamisches Array ist auch ein pointer. ein "Array[von..bis] of string[255]" geht jedoch da es staatich ist und somit nicht dynamisch speicher angefodert wird.

Da es bei einem Dynamischen Array aber wie bei einem String ist (ist ein Zeiger der auf die zusammenhängenden Datein zeigt), kannst du auch einfach den Bereich angeben auf den der ArrayPointer zeigt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#19

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 14:32
Wenn du eine Stringliste übergeben willst, dann benutze einfach die Eigenschaft Text und übergib den gesamten Inhalt (alle Zeilen) als ein String (also kein Record).
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#20

Re: WM_CopyData mit Boolschen Variablen

  Alt 31. Okt 2005, 14:35
@Flocke: In dein meisten fällen mag dies funktionieren, allerdings gibt es auch fälle in denen das Ergebnis auf der Empfängerseite dann verfälscht ist. Hier ein Beispiel wo es nicht funktioniert:
Delphi-Quellcode:
var LStrList: TStringlist;
begin
  LStrList := TStringList.Create;
  LStrList.Add('zeile1-Teil1' + #13#10 + 'zeile1-Teil2');
  LStrList.Add('zeile2');
auf der Empfängerseite wären das dann aber 3 einträge in der Stringlist, auf der Senderseite sind es jedoch nur 2 Einträge.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 15:36 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