Edit и добавление строк

Тема в разделе "WASM.BEGINNERS", создана пользователем Shtirlitz1945, 2 май 2008.

  1. Shtirlitz1945

    Shtirlitz1945 New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2008
    Сообщения:
    5
    Все здравствуйте.
    Пишу небольшую программку на fasm'e и столкнулся с проблемой вывода таблицы со значениями в edit (значения выводятся построчно). Ниже приведенный код работает, но выводиться только ~500 строк, поковырялся много времени в отладчике но так и не понял почему.

    Код (Text):
    1. ofTbd db 0dh,0ah,'|aaaaaaa:  %x |  bbbbbb: %x   |cccccc:   %x  |',20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,0
    2. buffer rb 128h
    3. fl dd ?
    4.  
    5.      mov  [fl],2000
    6. _next@:
    7.      invoke wsprintf,buffer,ofTbd,.....                           ;форматирование строки
    8.      add   esp,20                                                ;выравнивание
    9.      ......
    10.      invoke  GetWindowTextLength,[hEdit]                         ;
    11.      invoke  SendMessage,[hEdit],EM_SETSEL,eax,eax               ; добавление строки
    12.      invoke  SendMessage,[hEdit],EM_REPLACESEL,FALSE,buffer      ;
    13.      dec  [fl]                                         ;в fl количество строк
    14.      cmp  [fl],0
    15.      jne  _next@
    Подскажите, в чём может быть ошибка. Заранее спасибо.
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    пользуй EM_GETLIMITTEXT/EM_SETLIMITTEXT
    ЗЫ
    Вместо GetWindowTextLength (hWnd) /SendMessage(hWnd, EM_SETSEL, eax, eax) попробуй
    SendMessage (EM_SETSEL, -1, -1)
    и в cmp в конце цикла нет необходимости
    и зачем в конце строки с форматом куча 20h (пробелов)?
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    http://wasm.ru/forum/viewtopic.php?id=21675
     
  4. Shtirlitz1945

    Shtirlitz1945 New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2008
    Сообщения:
    5
    Спасибо за ответы.
    Я и не знал про text limit
    Добавил в код создания Edit'a
    SendMessage,[hEdit],EM_SETLIMITTEXT,-1,0
    теперь всё работает как нужно.