Все здравствуйте. Пишу небольшую программку на fasm'e и столкнулся с проблемой вывода таблицы со значениями в edit (значения выводятся построчно). Ниже приведенный код работает, но выводиться только ~500 строк, поковырялся много времени в отладчике но так и не понял почему. Код (Text): ofTbd db 0dh,0ah,'|aaaaaaa: %x | bbbbbb: %x |cccccc: %x |',20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,0 buffer rb 128h fl dd ? mov [fl],2000 _next@: invoke wsprintf,buffer,ofTbd,..... ;форматирование строки add esp,20 ;выравнивание ...... invoke GetWindowTextLength,[hEdit] ; invoke SendMessage,[hEdit],EM_SETSEL,eax,eax ; добавление строки invoke SendMessage,[hEdit],EM_REPLACESEL,FALSE,buffer ; dec [fl] ;в fl количество строк cmp [fl],0 jne _next@ Подскажите, в чём может быть ошибка. Заранее спасибо.
пользуй EM_GETLIMITTEXT/EM_SETLIMITTEXT ЗЫ Вместо GetWindowTextLength (hWnd) /SendMessage(hWnd, EM_SETSEL, eax, eax) попробуй SendMessage (EM_SETSEL, -1, -1) и в cmp в конце цикла нет необходимости и зачем в конце строки с форматом куча 20h (пробелов)?
Спасибо за ответы. Я и не знал про text limit Добавил в код создания Edit'a SendMessage,[hEdit],EM_SETLIMITTEXT,-1,0 теперь всё работает как нужно.