ich steh grad vor dem wald mit den vielen bäumen..
hat sich da was geändert? "frührer" hatte ich keine probleme mit Strings..
weil ich (natürlich) der meinung war ShortString ist "gegessen" und es ist DEFAULT auf AnsiString?
aber {H+} (also AnsiStrings ) ist default nicht "aktiv" ???
d.h. alle strings sind SHORTstrings ?
muss ich in JEDE unit {H+} einfügen ??
hab ich was übersehen? gibt es eine globale einstellung..
aufgefallen ist mir das wegen eines (meiner Meinung nach) Fehlers..
virtualTreeview ist (natürlich) MIT H+ compiliert
meine MainForm auch (warum weiß ich nicht genau, hat das lazarus FRÜHER eingefügt und jetzt nicht mehr ?, {$mode objfpc} wird ja eingefügt automatisch..
jedenfalls hab ich den virtualTreeView in eine andere unit (ohne H+) verschoben, und plötzlich funktionierten die NotifyEvent (die mit Strings, also z.b GetText) nicht mehr..
OHNE das FPC irgend eine fehlermeldung ausgeben würde (nicht mal zur runtime!), .. OBWOHL meine implementierung der methode mit SHortString und die von VirtualTreeView mit AnsiString implementiert war (die parameter also NICHT identisch sind...)
warum das ein Fehler ist:
xxx.pas(157,27) Error: Incompatible types: got "<procedure variable type of procedure(TBaseVirtualTree,PVirtualNode,TColumnIndex,TVSTTextType,var ShortString) of object;Register>" expected "<procedure variable type of procedure(TBaseVirtualTree,PVirtualNode,TColumnIndex,TVSTTextType,var AnsiString) of object;Register>"
wenn man es in den QuellText schreibt, kommt sehr wohl eine Fehlermeldung, nur beim streamen aus dem DFM nicht...
{$H+}
Re: {$H+}
ok, stimmt, wenn ich ein neues projekt anlege, und neue unit anlege, {$mode objfpc}{$H+}
ABER: in meinem "Alten" projekt, wenn ich neue unit anlege: {$mode objfpc}
also ohne {$H+]
irgend eine idee?
das muss ja irgendwo (falsch) eingestellt sein?
ABER: in meinem "Alten" projekt, wenn ich neue unit anlege: {$mode objfpc}
also ohne {$H+]
irgend eine idee?
das muss ja irgendwo (falsch) eingestellt sein?
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: {$H+}
Man kann AnsiStrings als Konfigurations-Standard Definieren. Dazu brauchts nur den Compiler-Schalter -Sh - entweder in der fpc.cfg oder auf der Befehlszeile/in Lazarus.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein