Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.046 c
2-1169807810
Juice
2007-01-26 13:36
2007.02.11
Вещественные числа и округление


3-1164098174
RomanH
2006-11-21 11:36
2007.02.11
Замысловатый SQL-запрос


2-1169493094
Виталий Гаврилов
2007-01-22 22:11
2007.02.11
Создание программы типа GoogleToolbar


2-1169474414
Mishenka
2007-01-22 17:00
2007.02.11
Как отловить событие наведения и увода указателя мыши с формы?


1-1166458633
VID
2006-12-18 19:17
2007.02.11
Как вывести такое (<?xml version="1.0" encoding="windows-1251" ?>





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский