Einzelnen Beitrag anzeigen

Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

SETs unterschiedlicher Grösse kombinieren

  Alt 13. Aug 2010, 15:04
Delphi-Version: 2010
Ich hab ein Problem eine Komponente so hinzubasteln, dass sie unter D2007 und D2010 funktioniert.

In Delphi2007 lief folgender Code problemlos:
Delphi-Quellcode:
type TSx_ShiftKeys=set of (skShift, skAlt, skCtrl); // subset of TShiftState
procedure SetZoomShift(const V:TSx_ShiftKeys);
var fZoomShift: TShiftState;
begin
     fZoomShift:=[ssLeft]+TShiftState(V);
     ...
In Delphi2010 funktioniert's nicht mehr, da TShiftState ein paar Zustände dazugekriegt hat und jetzt 2 Byte gross ist.

Wie könnt ich das vernünftig lösen?
Das Set brauch ich wieder, damit die Komponente im Design-mode vernünftig konfigurierbar ist.

So eine Lösung
Delphi-Quellcode:
     fZoomShift:=[ssLeft];
     w:=word(fZoomShift) or byte(v);
     fZoomShift:=TShiftState(w);
kommt mir völlig behindert vor - und ich müsst erst wieder ein define + Alternativcode herumwickeln damit alles auch unter D2007 läuft.

Danke!
Ralf
  Mit Zitat antworten Zitat