Текущий архив: 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.47 MB
Время: 0.043 c