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

Вниз

WM_KILLFOCUS   Найти похожие ветки 

 
DevilDevil ©   (2006-10-25 17:56) [0]

В каких случаях приложению может придти это сообщение? У меня не поймёшь по какой причине оно приходит...


 
Игорь Шевченко ©   (2006-10-25 17:59) [1]

Ни в одном случае приложению это сообщение не приходит. Равно как и все остальные сообщения тоже не приходят приложению ни в каких случаях.


 
DevilDevil ©   (2006-10-25 18:06) [2]

> Игорь Шевченко ©   (25.10.06 17:59) [1]

Очень смешно!

А вообще, извиняюсь, сильно ступил; от отчаяния наверное.
Не могу найти, в  каком месте у меня ошибка, которая приводит к ошибке доступа к данным по адресу $00000004


 
DVM ©   (2006-10-25 18:09) [3]


> У меня не поймёшь по какой причине оно приходит...

Приходит окну при потере фокуса очевидно.


 
DevilDevil ©   (2006-10-25 19:44) [4]

> Приходит окну при потере фокуса очевидно.

Да это то я знаю, всё равно спасибо.

Ошибку нашёл. Странная она какая-то:

ОШИБКА:

for i := 0 to length(DinamicArray)-1 do
with DinamicArry[i] do ...


НЕТ ОШИБКИ:

if length(DinamicArray)<>0 then
for i := 0 to length(DinamicArray)-1 do
with DinamicArry[i] do ...


Кто нибудь знает, что происходит?


 
Gero ©   (2006-10-25 19:57) [5]

> [2] DevilDevil ©   (25.10.06 18:06)

Нет, не смешно, а грустно.


 
Германн ©   (2006-10-26 00:24) [6]


> Кто нибудь знает, что происходит?
>

Многие знают. Тем более что не так давно было весьма активное обсуждение сколько раз выполнится подобный цикл при разных типах переменной цикла. :-)


 
DevilDevil ©   (2006-10-26 12:25) [7]

> Германн ©   (26.10.06 00:24) [6]

procedure TForm1.FormCreate(Sender: TObject);
var i, Count, Iterations : integer;
begin
   Iterations := 0;

   Count := 0;
   for i := 0 to Count - 1 do
   inc(Iterations);

   Caption := IntToStr(Iterations);
end;


Или ты хочешь сказать, что length() возвращает DWORD?


 
ЮЮ ©   (2006-10-26 12:36) [8]


> Или ты хочешь сказать, что length() возвращает DWORD?


нет, это i в первом примере может быть DWORD.

З.Ы. Следую включить Range Checking в опциях проекта, иначе при неаккуратной работе с динамическими массивами AV и прочие просто неизбежны и трудно уловимы


 
DevilDevil ©   (2006-10-26 12:45) [9]

> нет, это i в первом примере может быть DWORD.

Нет, i : Integer; ...

Может тогда ответите на следующий вопрос:

Конкретно в этом проекте обращение PbyteArray[i] вызывает ошибку доступа к памяти. Обращение pbyte( Integer(PByteArray) + i )^ работает корректно. Из-за чего в первом случае вызывается ошибка?


 
ЮЮ ©   (2006-10-26 12:54) [10]

PByteArray, случаем не TByteDynArray?
Если так, то  Integer(PByteArray) + i вполне может оказаться в твоем адресном пространстве, но это вовсе не i-ый  элемент твоего массива. Надеюсь, ты не правишь данные таким способом?


 
DevilDevil ©   (2006-10-26 13:09) [11]

:)

type
  TByteArray = array[0..0] of byte;
  PByteArray = ^TByteArray;

var
  Line : PByteArray;
  i : intger;
begin
  Line := Bitmap8.ScanLine[0];

  for i := 0 to Bitmap8.Width - 1 do
  Line[i] := 0;
end;


<-- достаточно часто видел такое обращение. Один и тот же код работает корректно в других проектах и вызывает ошибку в моём. Почему?



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

Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1161755855
Любитель
2006-10-25 09:57
2006.11.12
выбор пути и запуск прг и этого пути


15-1161573842
Slider007
2006-10-23 07:24
2006.11.12
С днем рождения ! 21 октября


15-1161809315
PRT
2006-10-26 00:48
2006.11.12
Open Source проект ...


2-1162129071
AlexanderMS
2006-10-29 16:37
2006.11.12
Hint к строке состояния (StatusBar).


2-1161690182
RoLeX
2006-10-24 15:43
2006.11.12
В событии 2я процедура начинается раньше чем заканчивается 1я!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский