Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

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

 
pest_tt ©   (2006-12-15 00:39) [0]


function what_we_gonna_do:boolean;
var f:TStrings;
   command,i:integer;
begin
 f:=TStringList.Create;
 f.LoadFromFile("file.txt");
 command:=strtoint(f.Strings[0]);
 case command of
   0 : begin
          ShowMessage("error");
        end;
   1: begin....
   ....
   ....
 end;
f.Free;
what_we_gonna_do:=true;
end;

procedure TForm1.f_servMSG(Sender: TComponent; const sFrom: String;strm: TStream);
var
 file_stream: TMemoryStream;
begin
 file_stream:=TMemoryStream.Create;
 file_stream.CopyFrom(strm, f_serv.BytesTotal);
 file_stream.SaveToFile("file.txt");
 file_stream.Free;
 what_we_gonna_do;
end;


помогите кто может!

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

причем здесь эта ошибка вообще понять не могу!


 
Германн ©   (2006-12-15 01:00) [1]

Имхо, странный "срез" кода приведён.
А что показывает отладчик?
И кстати. Уже давно модно пользовать зарезервированное слово Result, а не имя функции.


 
pest_tt ©   (2006-12-15 01:17) [2]

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

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


 
Германн ©   (2006-12-15 01:24) [3]


> pest_tt ©   (15.12.06 01:17) [2]
>
> Project Project1.exe raised exception class EInvalidOperation
> with message "Canvas does not allow drawing". Process stoped.
>  Use Step or Run to continue.
>
> поверьте, код весьма прост, я ничего не срезал важного.
>

Так на какой строке отладчик выдаёт ошибку?


 
pest_tt ©   (2006-12-15 01:27) [4]

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

в "самопальных" функциях нужно все от самого корня писать(form1....  или application...), а showmessage у меня так написано.

Германн, спасибо, что решил помочь! ошибку выдавало сразу за строкой, где функцию вызывал..


 
Германн ©   (2006-12-15 01:38) [5]


> Германн, спасибо, что решил помочь! ошибку выдавало сразу
> за строкой, где функцию вызывал..

Чур, чур меня! Я тут вообще не причем! Я только спросил про отладчик :)

P.S. DLL или доппотоки?


 
pest_tt ©   (2006-12-15 01:48) [6]


> P.S. DLL или доппотоки?

не совсем понимаю вопрос... если по поводу того, что я пишу, то это обычная курсовая. бд. тестирование, с клиентской и серверной частью.


 
Loginov Dmitry ©   (2006-12-15 07:41) [7]

походу, what_we_gonna_do вызывается вовсе не в основном потоке.


 
pest_tt ©   (2006-12-18 21:30) [8]

и снова я сталкиваюсь с этой же проблемой! похоже на то, что я не совем разобрался в причине ошибки.

form1.ComboBox1.Items.Add("something");

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

в чем дело я понять не могу. функция просто вызывается из другой функции.
если кто знает в чем тут дело, помогите!


 
pest_tt ©   (2006-12-18 22:32) [9]

нашел причину...
комбобокс лежал на панели, которая была инвизибл во время записи в комбобокс. даже строка
form1.panel9.visible:=true;
вначале функции не помогла решить проблему. это просто чушь какая-то. пришлось в инспекторе сделать панель видимой!!! незнаю, может у меня что-то с делфи не то происходит...


 
Loginov Dmitry ©   (2006-12-18 23:28) [10]

> незнаю, может у меня что-то с делфи не то происходит


даже не надейся на это.


 
Германн ©   (2006-12-19 00:50) [11]


> pest_tt ©   (18.12.06 22:32) [9]
>
> нашел причину...
> комбобокс лежал на панели, которая была инвизибл во время
> записи в комбобокс.

Опять промах :(


 
Сергей М. ©   (2006-12-19 10:06) [12]


> pest_tt ©   (18.12.06 22:32) [9]


Пробуй так:

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

Грабли видишь ?



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.057 c
15-1169331942
PHPdeveloper
2007-01-21 01:25
2007.02.11
Хостинг


2-1169385146
DimaL
2007-01-21 16:12
2007.02.11
Пароли


2-1169549102
alexey_mas
2007-01-23 13:45
2007.02.11
создание формы в run_time


15-1169220841
Ricks
2007-01-19 18:34
2007.02.11
Уровень образования


15-1169548799
i-am-vladko
2007-01-23 13:39
2007.02.11
Model Maker