Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#14

AW: D2009 Exception

  Alt 1. Mai 2011, 01:01
ICh weiß nicht ob finalize das richtige ist. das hab ich nur grad beim googlen gelesen. Ist sowas ähnliches wie Dispose (bitte nicht hauen wenn falsch)
ist vielleicht das das richtige wonach du suchst: http://www.delphipraxis.net/149061-e...te-listen.html

Sorry ich muss jetzt auch passen.

Probier mal den FastMM, vielleicht zeigt der an was schief läuft.
Danke ..
Kein problem wenn du nicht weiter weist.
Stehe ja selber auf den Schlauch glaube das die D2009 einfach zu verbuggt ist hehehhe

Mit den ganzen Unicode Kram.

Beispiel:
Nehme ich PAnsiChar dann meckert der compiler..
Ersetze ich es mit PChar meckert er nicht übersetzt aber in der System.pas PChar automatisch wieder zurück nach PAnsiChar. (Was für ein Quatch)
Verwende ich anstelle von PChar(System.PAnsiChar) PWideChar dann aktzeptiert der Compiler das auch ohne zu meckern beläßt es dann aber so wie es ist.
Das ist die einzigste möglichkeit warum es bei D2009 kracht weil irgendwelche Übersetzungen wieder mal nicht korrekt sind.
Aber wie den Fehler feststellen wenn der eigene Compiler nicht dazu in der lage ist die richtigen UNcode Variablen zu zuweisen.

PS:
Noch ein kleines Beispiel zum anschauen.

Delphi-Quellcode:
constructor TSkinTrackBar.Create(hOwner: HWND; FullpathImageName: string;
  x, y, tW, tH, ButID: integer; tMin, tMax: Integer; tVal: Integer;
  ARGBcolor: COLORREF; PROGRESScolor: COLORREF);
var
  wc: TWndClassEx;
  myClass: PWideChar;

begin

  inherited Create;

  //with SkinEngine do
  //begin
    if tMin = tMax then
      Exit;

    myClass := 'SKTRACKBAR';
    wc.cbSize := SIZEOF(wc);
    IsInitialized := GetClassInfoEx(SkinEngine.skInstance, myClass, wc);
    if IsInitialized = False then
    begin
      wc.cbSize := SIZEOF(wc);
      wc.style := CS_HREDRAW or CS_VREDRAW or CS_DBLCLKS or CS_PARENTDC;
      wc.lpfnWndProc := @TrackProc;
      wc.cbClsExtra := 0;
      wc.cbWndExtra := EXTEND_EXTRA * 4;
      wc.hInstance := SkinEngine.skInstance;
      wc.hIcon := 0;
      wc.hCursor := 0;
      wc.hbrBackground := 0;
      wc.lpszMenuName := nil;
      wc.lpszClassName := myClass;
      wc.hIconSm := wc.hIcon;
      if RegisterClassEx(wc) <> 0 then
        IsInitialized := True;
    end;
myClass: PWideChar;
laut GetClassInfoEx richtig definiert.
Funktioniert nicht mit PAnsiChar aber mit PChar
welches dann von der System.pas wieder in PAnsiChar zurück definiert wird.
Was für ein Blödsinn.


gruss

Geändert von EWeiss ( 1. Mai 2011 um 01:20 Uhr)
  Mit Zitat antworten Zitat