Thema: Delphi Was sind Structures

Einzelnen Beitrag anzeigen

CCRDude
(Gast)

n/a Beiträge
 

Re: Was sind Structures

  Alt 15. Apr 2007, 14:48
Auch bei C++ würde ich nicht ganz zustimmen, denn eine Klasse ist ja etwas, das erst initialisiert werden muss, während ein struct/record davon unabhängig ist (es sei denn natürlich, man nähme einen Zeiger darauf...).
Und da dann records in Delphi durchaus doch "Methoden" (bzw. Funktionen und Prozeduren) beinhalten dürfen, ist das Chaos komplett

Um mal auf die ursprüngliche Frage zu antworten:
Delphi-Quellcode:
type
   _gettextex = record
      cb, flags: DWORD;
      codepage: UINT;
      lpDefaultChar: LPCSTR;
      lpUsedDefaultChar: LPBOOL;
   end;
   GETTEXTEX = _gettextex;

// [...]

var tex: ^GETTEXTEX;
    dwSize: DWORD;
    pc: PChar;
begin
   New(tex);
   dwSize := 4096;
   tex^.cb := dwSize;
   tex^.flags := GT_USECRLF;
   tex^.codepage := CP_ACP;
   tex^.lpDefaultChar := nil;
   tex^.lpUsedDefaultChar := nil;
   GetMem(pc, dwSize);
   SendMessage(controlHandle, EM_GETTEXTEX, tex, pc);
   DoSomethingWithResult(tex);
   FreeMem(pc, dwSize);
   Dispose(tex);
end;
Anhand der Doku geraten, nicht ausprobiert Und anstelle einer festen Größe sollte man natürlich vorher per anderer Message (EM_GETTEXTLEN oder was es da evtl. gibt) die notwendige Größe bestimmten.

Hmmmm... oh, jetzt kam noch jemand anders dazwischen... wird mein Post trotzdem nicht überflüssig, denn da ist was falsch: cb ist NICHT für die Größe von lpDefaultChar, sondern für die des PChars im lParam
  Mit Zitat antworten Zitat