![]() |
AW: D2009 Exception
Hast du zufällig den FastMM zur Hand? im FullDebugMode?
Der könnte wichtige Infos zeigen. vielleicht auch mal den String rauslassen (->temporär in ein Char umwandeln). Vielleicht könnte auch ein Finalize helfen. Ansonsten weiß ich auch keinen guten Rat:cry: |
AW: D2009 Exception
Zitat:
gruss |
AW: D2009 Exception
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: ![]() Sorry ich muss jetzt auch passen. Probier mal den FastMM, vielleicht zeigt der an was schief läuft. |
AW: D2009 Exception
Zitat:
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;
Delphi-Quellcode:
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 |
AW: D2009 Exception
WM_CLOSE:
Danke nochmal für deine Hilfe. Habe meinen Code dank deiner Hilfe verbessert.. siehe Dispose ;) Das problem lag aber nicht an meiner Parser Function sondern daran das ich vorher
Delphi-Quellcode:
den Text mit string anstelle von WideString übergeben habe.
DrawTextToDC(DC, GetCTLText(ParentHandle), x, y, gColorCaption, SK_CAPTIONFONT,
SK_CAPTIONFONTHEIGHT, -1, 0); Das hatte zur folge das der Pointer "strFormat" in der GDI+ einen Fehler verursachte da dieser nicht gültig war. GELÖSST! gruss |
AW: D2009 Exception
Naja ich versteh nicht warum du nicht einfach:
Delphi-Quellcode:
machst. Bzw. einen WideString deklarierst und als PWideChar castest (wie AnsiString/String mit PChar).
GetClassInfoEx(SkinEngine.skInstance, 'bla', wc);
Im übrigen verwendet du eine objektorientierte Sprache, warum der Umstand mit den verketteten Listen und Pointern, wenn eine TObjectList und eine Klasse um einiges eleganter und weniger fehleranfällig wäre? |
AW: D2009 Exception
Zitat:
TSkinTrackBar keine klasse? na ja hab schon geschrieben gelösst. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz