Неприпустимий дескриптор вікна

неприпустимий дескриптор вікна


function what_we_gonna_do: boolean;
var f: TStrings;
# XA0; # XA0; command, i: integer;
begin
# XA0; f: = TStringList.Create;
# XA0; f.LoadFromFile ( "file.txt");






# XA0; command: = strtoint (f.Strings [0]);
# XA0; case command of
# XA0; # XA0; 0. begin
# XA0; # XA0; # XA0; # XA0; # XA0; ShowMessage ( "error");
# XA0; # XA0; # XA0; # XA0; end;
# XA0; # XA0; 1: begin.
# XA0; # XA0 ;.
# XA0; # XA0 ;.
# XA0; end;
f.Free;
what_we_gonna_do: = true;
end;

допоможіть хто може!

з серсера приходить файл (file.txt). в ньому всього один рядок з цифрою 0. цей файл зберігається вдало. викликається функція (what_we_gonna_do). результату немає. ніби все просто. Програма не висне, оперативки НЕ намотує, а моє повідомлення не видає. ось тільки після закриття клієнта видає вікно ( "відправляти" "не відправляти") а потім помилку дає:
Exception EOSError in module client.exe at 0000CB62.
System error. Code 1400.
Неприпустимий дескриптор вікна.

причому тут ця помилка взагалі зрозуміти не можу!

Имхо, дивний "зріз" коду наведено.
А що показує відладчик?
Доречі. Вже давно модно використовувати зарезервоване слово Result. а не ім'я функції.

Project Project1.exe raised exception class EInvalidOperation with message "Canvas does not allow drawing". Process stoped. Use Step or Run to continue.







повірте, код досить простий, я нічого не зрізав важливого.

я знайшов помилку! вся справа в
ShowMessage ( "error");
коштувало написати application.MessageBox ( "error", "error", 0); як все запрацювало!)

в "самопальних" функціях потрібно все від самого кореня писати (form1. # XA0; або application. ), А showmessage у мене так написано.

Германн, спасибі, що вирішив допомогти! помилку видавало відразу за рядком, де функцію викликав ..


> Германн, спасибі, що вирішив допомогти! помилку видавало відразу
> За рядком, де функцію викликав ..

Цур, цур мене! Я тут взагалі ні до чого! Я тільки запитав про відладчик :)

P.S. DLL або доппотокі?


> P.S. DLL або доппотокі?

не зовсім розумію питання. якщо з приводу того, що я пишу, то це звичайна курсова. бд. тестування, з клієнтської і серверної частиною.

походу, what_we_gonna_do викликається зовсім не в основному потоці.

і знову я стикаюся з цією ж проблемою! схоже на те, що я не совем розібрався в причини помилки.

в цій же функції я все видалив і залишив тільки цей рядок. видає # XA0; помилку:
Project Project1.exe raised exception class EOSError with message System error. Code: 1400. Неприпустимий дескриптор вікна. Process stoped. Use Step or Run to continue.
без цього рядка все працює нормально. а з нею видає помилку і комбобокс взагалі не видно.

в чому справа я зрозуміти не можу. функція просто викликається з іншої функції.
якщо хто знає в чому тут справа, допоможіть!

знайшов причину.
комбобокс лежав на панелі, яка була інвізібл під час запису в комбобокс. навіть рядок
form1.panel9.visible: = true;
спочатку функції не допомогла вирішити проблему. це просто нісенітниця якась. довелося в інспектора зробити панель видимою. незнаю, може у мене щось з Делфі не те відбувається.

> Незнаю, може у мене щось з Делфі не те відбувається

навіть не сподівайся на це.

function what_we_gonna_do: boolean;
begin
# XA0; if GetCurrentThreadId <> MainThreadId then
# XA0; # XA0; MessageBox (0, "Граблі!", "", Mb_ok or mb_setforeground);
end;







Схожі статті