(XP alatt fejlesztek C++ Buider 2006-tal. A programnak XP és Vista alatt
kell futnia.)
1.
a., Már az XP alatt sem voltam teljesen kibékülve a TMemo-val:
(A TMemo-ba PasteFromClipboard()-dal kerül szöveg, előtte
Lines->Clear();)
Ha WordWrap true, akkor a TMemo ablakban rendesen eltöri a sorokat. Ezek
az eltörések nem lesznek benne a Lines->Strings[Index].c_str() -ben,
ezek csak az olvashatóság miatt látszanak.
Az a szövegrész kerül új String-be, amelyikben szerepel sorvége jel,
vagy
!!!! amelyik szövegrész eléri az 1024 karakter hosszt. !!!!
Itt eltöri, akár szó közben is (vagyis a következő indexű String-be
kerül a szöveg folytatása). Ezt a határt - legjobb tudomásom szerint -
nem lehet állítani.
Mivel a szöveg további feldolgozásra kerül, nem mindegy hogy el van-e
törve, vagy sem. Itt ezt ki tudtam védeni azzal, hogy - miközben egy
char tömbbe átmásoltam a String.c_str()-eket - az 1024 hosszú sorokhoz
hozzácsaptam a következőt, akár többet is, amíg 1024 hosszúak voltak,
majd amikor jött egy 1024-nél rövidebb sor, akkor azt még hozzámásoltam
és visszakaptam az eredeti szöveget.
b., Vista alatt jóval rövidebb darabokra töri, de itt már két szó között
töri el a sort. Az algoritmus ismeretlen, így egyelőre nem tudom
reprodukálni az eredeti szöveget.
A kérdésem: van-e másnak is hasonló jellegű problémája, talált-e rá
megoldást?
2.
Debuggolással megnézni Vista alatt nem tudom, mert oda nem telepítettem
a CBuilder-t.
Valaki mintha már írt volna Vista alatti CBuilder 2006 telepítésről,
talán azt írta, hogy a help-et nem tudta használni.
A kérdésem: telepítette-e valaki a C++ Builder 2006-ot Vista alá, és
lehet-e vele dolgozni?
3.
a., Vista alatt teljesen ökör módra jelenik meg a TMemo-ban lévő szöveg:
A sor végi írásjelek a sor elején látszanak, néha a sor elején egy
későbbi szöveg van, a szöveg valódi eleje a sor közepén látszik. A
Home/End-re a valódi szöveg elejére/végére megy a kurzor, nem a látszó
sor elejére/végére.
Erre már semmilyen tippem nincs, más komponenst kellene használni, vagy
a megjelenítést saját rutinnal megoldani....
Hasonlót tapasztaltatok? Mi lehet a megoldás?
A segítő válaszokat előre is köszönöm.
Cap
Használd a SynEdit komponenst a Memo helyett.
http://sourceforge.net/projects/synedit/
De a kódot a CVS repóból töltsd le, mert a "stabil" 2.0.6 verzióban van
egy csúnya frissítési hiba, paste után nem mindig rajzol újra és
szétesik a képernyőn a látvány.
> !!!! amelyik szövegrész eléri az 1024 karakter hosszt. !!!!
A SynEdit-ben is biztos van limit, nem tudom mennyi, de abban ezt
szabadon módosíthatod, végső esetben akár a forráskódjában.
> A kérdésem: telepítette-e valaki a C++ Builder 2006-ot Vista alá, és
> lehet-e vele dolgozni?
Felteszed, meg hozzá az összes update-et, és elvileg működik.
Z.