eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[VC++] Listy numerowane w RichEdit - jakiś bug MS?[VC++] Listy numerowane w RichEdit - jakiś bug MS?
  • Data: 2010-03-29 19:28:27
    Temat: [VC++] Listy numerowane w RichEdit - jakiś bug MS?
    Od: "w.p." <w...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Witam!

    Używam kontrolki CRichEditCtrl ver. 4.1 ale próbowałem też ze
    starszymi - to samo!
    Używam list numerowanych alfabetycznie między innymi (czyli
    PARAFORMAT2.wNumbering = 3 lub 4)

    a. item 1
    b. item 2
    ...
    z. item 26
    aa. item 27
    ab. item 28
    ..
    yy. item 675
    yz. item 676
    a'a item 677 błąd!!!!!!!!!!!!
    a'b item 678 tu powinno być "zb"
    ...
    a'z item 702 tu powinno być "zz"
    aaa. item 703 tu już liczy dobrze
    .....
    Dziwne niesamowicie - liczy dobrze od a do yz. Potem przez całe za do
    zz zamiast znaku z jest jakieś a'
    Potem jak przejdzie zz liczy znów dobrze. Wygląda na jakiś głupi błąd
    od MS, ale przecież tyle było wersji RichEdita i trudno mi w to
    uwierzyć. Algorytm przeliczania liczba-ciąg jest banalny bo musiałem
    go napisać przy innej okazji ale przecież skoro listy w kontrolce są
    zaimplementowane to niech już dobrze działają...

    Błąd można wywałać jako numer elementu listy dając wartość 677 czyli
    PARAFORMAT2.wNumberingStart = 677. I oczywiście kontrolka nie
    wyświetli "za" tylko "a'a".
    Próbowałem też przez interfejs TOM - identyczny efekt. Załamka.

    Ktoś wie czy można to jakoś obejść i jaki może być tego powód? No
    jeśli to błąd MS to naprawdę wtopa skoro nie działa zwykła lista a oni
    dodają jakieś sprawdzanie poprawności słów i wyrażenia matematyczne...
    Ale mimo wszystko żyję nadzieją że to ja coś źle zrobiłem - może jakiś
    czeski błąd. Ale w projekciku do którego niżej daję linka nie było
    miejsca na błędy chyba.

    Prosta metoda spowodowania tego dziwactwa. Element listy tworzę po
    prostu przez:
    PARAFORMAT2 pf;
    memset(&pf, 0, sizeof(pf));
    pf.cbSize = sizeof(pf);
    pf.dwMask = PFM_NUMBERING | PFM_NUMBERINGSTYLE | PFM_NUMBERINGSTART;
    pf.wNumbering = 3;
    pf.wNumberingStyle = 0x200 | 0x8000;
    pf.wNumberingStart = 677;
    mvEditor.SetParaFormat(pf);

    Minimalny projekt VC2003 z tym błędem:
    http://dl.dropbox.com/u/4536598/rich_edit.zip


    Nie wiem jak pod Wine to chodzi - może chłopaki od Linuksa zrobili do
    tego łatkę ;)
    Pozdrawiam

    W.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: