![]() |
2 ähnliche Sets mit teilweise identen Namen der Werte
Hi!
Heute ist mein Problem (ich arbeite immer noch an einer Ableitung von TCustomSynEdit), dass ich auch den Typ TSynEditorOption bzw. TSynEditorOptions etwas ändern möchte und ihn deshalb als TMySynEditorOption definiere. Das ganze mache ich in der Unit SynEdit. Also in einer Unit:
Delphi-Quellcode:
Und dann sagt mir der Compiler, dass z.B. eoAltSetsColumnMode redefiniert wurde und will einfach nicht fertig compilieren. Dass ich meine Werte einfach mit dem Prefix meo (statt eo) versehe ist keine Lösung, da ich dann so ziemlich alle Methoden von SynEdit überschreiben müsste, nur um eo* durch meo* auszubessern.
//...
type //... TSynEditorOption = ( eoAltSetsColumnMode, eoAutoIndent, eoAutoSizeMaxScrollWidth, eoDisableScrollArrows, eoDragDropEditing, eoDropFiles, eoEnhanceHomeKey, eoEnhanceEndKey, eoGroupUndo, eoHalfPageScroll, eoHideShowScrollbars, eoKeepCaretX, eoNoCaret, eoNoSelection, eoRightMouseMovesCursor, eoScrollByOneLess, eoScrollHintFollows, eoScrollPastEof, eoScrollPastEol, eoShowScrollHint, eoShowSpecialChars, eoSmartTabDelete, eoSmartTabs, eoSpecialLineDefaultFg, eoTabIndent, eoTabsToSpaces, eoTrimTrailingSpaces ); //... TMySynEditorOption = ( eoAltSetsColumnMode, eoAutoIndent, eoAutoSizeMaxScrollWidth, eoDisableScrollArrows, eoDragDropEditing, eoDropFiles, eoEnhanceHomeKey, eoEnhanceEndKey, eoGroupUndo, eoHalfPageScroll, eoHideShowScrollbars, eoKeepCaretX, eoNoCaret, eoNoSelection, eoRightMouseMovesCursor, eoScrollByOneLess, eoScrollHintFollows, eoScrollPastEof, eoScrollPastEol, eoShowScrollHint, eoShowTabsSpaces, eoShowLineBreaks, eoSmartTabDelete, eoSmartTabs, eoSpecialLineDefaultFg, eoTabIndent, eoTabsToSpaces, eoTrimTrailingSpaces ); //... Meine Idee, die ich noch gehabt habe, ist folgende:
Delphi-Quellcode:
Da habe ich einige Varianten ausprobiert, aber er will einfach keine nehmen.
TMySynEditorOption = TSynEditorOption + eoShowTabsSpaces;
Hat irgendjemand vielleicht eine Idee, was ich noch ausprobieren könnte. Bin schon wieder fast am Verzweifeln. LG |
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Solange Du die Orginal-Aufzählung nicht mitten drin erweiterst, sollte folgendes möglich sein:
Delphi-Quellcode:
Allerdings kann (und wird) es dann Probleme geben, wenn jemand SizeOf(TSynEditorOption) und/oder High(TSynEditorOption) verwendet (da die Erweiterung der Aufzählung ausserhalb des Typs stattfindet).
TSynEditorOption = (
eoAltSetsColumnMode, //... eoTrimTrailingSpaces ); const eoFoo = TSynEditorOption(Ord(High(TSynEditorOption)) + 1); eoBar = TSynEditorOption(Ord(High(TSynEditorOption)) + 2); //... |
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Naja, ist schon mal eine Hilfe, danke!
Aber zeigt das der OI dann auch richtig an, wenn ich meine Kompo dann installiere... :gruebel: Edit: Und geht das dann auch mit
Delphi-Quellcode:
ohne dass der Compiler aufschreit?
TMySynEditorOptions = set of TMySynEditorOption;
|
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Zitat:
|
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Nur wie? :wiejetzt:
|
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Das Problem hatten wir schon im letzten Thread zum Thema. Entweder Du definierst die Typen neu (und erzwingst damit für den Endbenutzer eine Beachtung der uses-Reihenfolge). Oder Du entwickelst eine eigene Version von SynEdit und änderst die Originaldateien...
|
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Du musst das doch nicht in das alte Feld reinpressen. Wie wär's mit 'ner komplett neuen Menge TSynEditorOptions2, als property ebenfalls published - die alten Funktionen brauchen deine Werte sowieso nicht.
|
Re: 2 ähnliche Sets mit teilweise identen Namen der Werte
Da hast du eigentlich recht. Dass ich die neue Property z.B. MyOptions nenne in der ich dann nur meine beiden Eigenschaften eoShowTabsSpaces und eoShowLineBreaks habe.
Super :thumb: ihr seid echt eine Hilfe! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 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 by Thomas Breitkreuz