AW: Delphi7 mit nur einer Unit Unicode fähig machen
Zitat:
Dann scheitert es (erstmalig) an
Delphi-Quellcode:
(Delphi 4 und 5)
ss := AnsiToUtf8(ss);
bzw. an
Delphi-Quellcode:
(ab Delphi 6).
addlog('Exception in DispatchMessageUniCode(MsgNum='+inttostr(lpMsg.message)+') '+e.ClassName+' '+e.Message,cst_Exception);
|
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Mit folgenden Änderungen ist die Unit bei Delphi 6 & 7 compilierbar:
Zeile 30: //{$define CamSpy} //my own logging Zeile 1719: addlog('Exception in DispatchMessageUniCode(MsgNum='+inttostr(lpMsg.mes sage)+') '+e.ClassName+' '+e.Message{,cst_Exception});//letzter Parameter zuviel? Zeile 1746: Result := windows.GetCharacterPlacementW(DC,@wsbuf[0],boolean(ii),boolean(p4),p5,p6);//mit Boolean-Konvertierung klappt es Bei Delphi 7 kommen zudem unzählige Warnungen. |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Bei Turbo-Delphi muß es ab Zeile 1740 so aussehen:
Delphi-Quellcode:
function GetCharacterPlacementUnicode(DC: HDC; p2: PChar; p3, p4: Integer;
var p5: TagGCP_ResultsW; p6: cardinal): cardinal; stdcall; var wsbuf : TDynWSbuf; ii : integer; begin ii := ConvertToWideChar(p2,p3,wsbuf,false); Result := windows.GetCharacterPlacementW(DC,@wsbuf[0],ii,p4,p5,p6); end; |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Zitat:
|
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Zitat:
Ihr müsst einfach die {$define CamSpy} Zeile auskommentieren der Mischka |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Liste der Anhänge anzeigen (Anzahl: 1)
Habe die Unit oWinApiUnicode.pas noch ein wenig modifiziert, um das
TRichEdit-Control Unicodefähig zu machen. Es wird einfach die Subclass-Abfrage GetClassInfo und GetClassInfoEx modifiziert, um die richtigen Windows-Prozeduren zu erhalten |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Manchmal möchte man an kleine Wunder glauben ...
Diese RichEdit-Unterstützung wäre genau das Richtige für meinen alten IniViewer - den ich immer noch regelmäßig nutze. Also schnell ein Test bereitet: Form+Richedit+...
Delphi-Quellcode:
.. so ganz funktioniert das mit der Modifikation leider doch nicht?!
procedure TfoTest05.FormShow(Sender: TObject);
begin RE.Lines.LoadFromFile('c:\program files\desktop.ini'); // << UNICODE // // Exception EReadError in Modul test05.exe bei 000181EB // Fehler beim Lesen von RE.Lines.Strings: Fehler bei Einfügen von RichEdit-Zeile // // :-( end; Gruß Ralph |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi-Mitstreiter,
habe in der letzten Version (24.05.2016) von oWinApiUnicode.pas einige Fehler beseitigt und einige Funktionen hinzugefügt: TToolbar - Control funktioniert, TRichEdit - Control funktioniert (hier war wichtig, dass im WideString-Modus der Klassenname anders ist), TListView - Control funktioniert, Sowohl in TListView und TTreeView funktioniert der Label-Edit Funktion SetClipboardData wurde hinzugefügt. Wichtig: einige Messages (z.B. SB_SETTEXT und TB_ENABLEBUTTON, beide WM_USER+1) besitzen gleiche WM_USER-Werte, hier muß duch den Klassenname unterschieden werden. Hallo Mischka, vielen Dank für dieses wunderbare Tool. Ich hoffe wir können das noch um einiges erweitern. In der Anlage meine geänderte Variante. Gruß somby |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Hallo somby,
schön zu hören, dass mal einer die Unit nutzt und nicht mit "das kann gar nicht gehen" kommt! Werde deine Änderungen bei Gelegenheit mal mit sichten/testen/übernehmen. Bin bloss grad mit Umstellung auf Free Pascal beschäftigt. der Mischka |
AW: Delphi7 mit nur einer Unit Unicode fähig machen
Hallo taaktaak,
wenn du die Richedit-Funktion .Lines.LoadFromFile verwendest, muß die Datei auch ein RTF-Format haben. Probiere z.B.: -In Word Unicode-Zeichen eintragen (mit Hilfe der Zeichentabelle) -Speichern als RTF-Datei. Und dann diese Datei mit Lines.LoadFromFile ins Control laden. Gruß Somby |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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