AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi7 mit nur einer Unit Unicode fähig machen

Ein Thema von derMischka · begonnen am 10. Jun 2013 · letzter Beitrag vom 22. Okt 2019
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.368 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 11:19
Da dort keine besonderen Units verwendet werden, sollte das kein Problem sein.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 13:33
Leute, was habt Ihr für Zauberdelphis, daß Ihr mit der Unit zurechtkommt?

Bei mir scheitert es an der Zeile

{$ifdef CamSpy}oCamSpyMem,{$endif} , weil der Compiler die Unit nicht findet.

Entferne ich die Zeile (auskommentieren), hilft das leider auch nicht weiter, dann scheitert es an

procedure Addlog(const Value:string{$ifdef CamSpy};aType:TGlobalLogType=cst_Info{$endif}); .

Das Phänomen tritt auf, egal ob ich Delphi 4-7 oder Turbo-Delphi verwende.

Schade, aber vielleicht weiß ja jemand Rat.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 13:43
Leute, was habt Ihr für Zauberdelphis, daß Ihr mit der Unit zurechtkommt?

Bei mir scheitert es an der Zeile

{$ifdef CamSpy}oCamSpyMem,{$endif} , weil der Compiler die Unit nicht findet.

Entferne ich die Zeile (auskommentieren), hilft das leider auch nicht weiter, dann scheitert es an

procedure Addlog(const Value:string{$ifdef CamSpy};aType:TGlobalLogType=cst_Info{$endif}); .

Das Phänomen tritt auf, egal ob ich Delphi 4-7 oder Turbo-Delphi verwende.

Schade, aber vielleicht weiß ja jemand Rat.
Ich hab mir das Teil nicht runtergeladen, aber scheinbar ist in den Projekteinstellungen "CamSpy" definiert. Wenn du das rausnimmst, sollte es besser werden.
Uli Gerhardt
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 14:30
Leute, was habt Ihr für Zauberdelphis, daß Ihr mit der Unit zurechtkommt?
..

{$ifdef CamSpy}oCamSpyMem,{$endif}
ganz oben in der Unit steht

{$define CamSpy}  //my own logging
auskommentieren und gut ist?!?

Geändert von Lemmy (24. Mai 2016 um 14:33 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 15:19
Leute, was habt Ihr für Zauberdelphis, daß Ihr mit der Unit zurechtkommt?
..

{$ifdef CamSpy}oCamSpyMem,{$endif}
ganz oben in der Unit steht

{$define CamSpy}  //my own logging
auskommentieren und gut ist?!?
Schön wäre es. Das hatte ich auch schon probiert, jedoch vergaß ich, das mit aufzulisten.

Dann scheitert es (erstmalig) an

ss := AnsiToUtf8(ss); (Delphi 4 und 5)

bzw. an

addlog('Exception in DispatchMessageUniCode(MsgNum='+inttostr(lpMsg.message)+') '+e.ClassName+' '+e.Message,cst_Exception); (ab Delphi 6).
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 15:30
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.

Geändert von Delphi-Laie (24. Mai 2016 um 15:52 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 15:51
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;
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 24. Mai 2016, 16:40

Schön wäre es. Das hatte ich auch schon probiert, jedoch vergaß ich, das mit aufzulisten.
ah.. und ich habe mich schon gewundert....
  Mit Zitat antworten Zitat
derMischka

Registriert seit: 21. Jun 2007
Ort: Dresden
32 Beiträge
 
Delphi 7 Professional
 
#9

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 30. Mai 2016, 11:30
Leute, was habt Ihr für Zauberdelphis, daß Ihr mit der Unit zurechtkommt?
..

{$ifdef CamSpy}oCamSpyMem,{$endif}
ganz oben in der Unit steht

{$define CamSpy}  //my own logging
auskommentieren und gut ist?!?
Hätte nicht gedacht, dass mein Logging so viele Probleme bereitet...

Ihr müsst einfach die {$define CamSpy} Zeile auskommentieren

der Mischka
  Mit Zitat antworten Zitat
somby

Registriert seit: 21. Jun 2016
12 Beiträge
 
#10

AW: Delphi7 mit nur einer Unit Unicode fähig machen

  Alt 27. Jun 2016, 10:19
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
Angehängte Dateien
Dateityp: zip oWinApiUnicode.zip (14,9 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 02:03 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