Вопрос № 128531: Уважаемые эксперты помогите узнать что значит эта ошибка
" Exeption EAccessVialation in module HTMLpad.exe "
Я хотел сделать программу типа HTML редактора и если есть у кого исходники пришлите кому не жалко...Вопрос № 128544: Здравствуйте эксперты! Помогите написать программу: реализовать функцию поиска элемента Е в односвязном списке L. Зарнее спасибо!...Вопрос № 128545: Здравствуйте, уважаемые эксперты. не могли бы Вы мне помочь написать программу на Delphi, которая наглядно иллюстрирует работу следующих методов сортировки:
пузырьковая;
шейкерная.
Провести сравнение этих сортировок по к...Вопрос № 128616: Здраствуйте експерти!Есть вопросик. Нужно в Дельфи в обьекте StringGrid (сетка) вивести в нужной ячейке текст не горизонтально а вертикально...есть ли в такие методы и как ето зделать?что-то похоже есть в Excel когда делаем формат ячеейки и ставим те...Вопрос № 128627: здравствуйте! У меня к Вам 2 вопроса:
1. Мне нужно на форме сделать проигрывание видео.
2. На форме сделать "мини" проигрыватель для звука, т.е чтобы был плейлист, и я мог выбрать нужный мне мп3 трек, и он играл.
...
Вопрос № 128.531
Уважаемые эксперты помогите узнать что значит эта ошибка
" Exeption EAccessVialation in module HTMLpad.exe "
Я хотел сделать программу типа HTML редактора и если есть у кого исходники пришлите кому не жалко
Отвечает: Marked One
Здравствуйте, Arturalimov!
Вот статья из Delphi Russian Knowledge Base:
Почему возникает ошибка Access Violation?
Ошибка "Access Violation" возникает, когда идёт обращение к памяти к которой обращение запрещено. Это возможно во многих случаях, но наиболее типичные ситуации я попытаюсь перечислить:
1) Обращение к не созданному объекту.
var e:TEdit;
begin
e.text:='Hello world!';
end;
В данном случае объект e ещё не создан и идёт обращение к памяти, которая ещё не выделена.
2) Обращение к уже разрушенному объекту:
var e:TEdit;
begin
...
e.free;
...
e.text:='Hello world';
end;
Тут есть хитрость, допустим вы хотите проверить есть ли объект и модернизируете код:
if e<>nil then e.text:='Hello world!';
или
if assigned(e) then e.text:='Hello world!';
Особенно часто приходится такое делать когда
надо уничтожить объект:
if e<>nil then e.free;
Так вот - такой код может быть источником ошибки, так как метод Free автоматически не устанавливает указатель в Nil. Обязательно после каждого Free используйте установление указателя в nil:
e.free;
e:=nil;
3) При выходе за границы динамического массива обычно генерится ошибка "Index out of bound", но возможно и возникновение Access Violation, особенно когда не стоят опции компилляции для проверки границ массивов. Эта ошибка может быть очень сложна в отлаживании - дело в том что допустим у вас есть массив а длиной в 10 элементов, в пишете:
a[20]:=something;
И эта строка может пройти как и надо, без всяких проблем, но её выполнение повредит какой-то другой код, причём каждый раз другой! Теперь самая безобидная операция типа i:=10 может вдруг внезапно дать Access Violation.
3) На форме на onCreate вызывается что-то с других форм - эти другие формы на этот момент еще не созданы
4) На форме на onDestroy вызывается что-то с других форм - эти другие формы на этот момент уже разрушены
Автор Vit
Взято с Vingrad.ru http://forum.vingrad.ru
Ответ отправил: Marked One (статус: 9-ый класс)
Ответ отправлен: 22.03.2008, 14:17 Оценка за ответ: 5
Вопрос № 128.544
Здравствуйте эксперты! Помогите написать программу: реализовать функцию поиска элемента Е в односвязном списке L. Зарнее спасибо!
Отправлен: 22.03.2008, 13:04
Вопрос задал: АлексейN
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Кудинов Антон Павлович
Здравствуйте, АлексейN!
Вот пример такого кода...
type
t_direct_list=class
next:t_direct_list;
function seek(s:t_direct_list):t_direct_list;
end;
function t_diret_list.seek(s:t_direct_list):t_direct_list;
begin
result:=self;
while (result<>nil)and(result<>s) do result:=result.next;
end;
Ответ отправил: Кудинов Антон Павлович (статус: 3-ий класс)
Ответ отправлен: 22.03.2008, 15:42 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ.
Вопрос № 128.545
Здравствуйте, уважаемые эксперты. не могли бы Вы мне помочь написать программу на Delphi, которая наглядно иллюстрирует работу следующих методов сортировки:
пузырьковая;
шейкерная.
Провести сравнение этих сортировок по количеству сравнений, по количеству обменов. Для этого построить графики зависимостей данных величин от количества элементов массива.
Очень рассчитываю на Вашу помощь.
Здраствуйте експерти!Есть вопросик. Нужно в Дельфи в обьекте StringGrid (сетка) вивести в нужной ячейке текст не горизонтально а вертикально...есть ли в такие методы и как ето зделать?что-то похоже есть в Excel когда делаем формат ячеейки и ставим текст по 90 градусов.Если можна пример покажите. Спс.
Отправлен: 22.03.2008, 22:14
Вопрос задал: Coda89 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Louken
Здравствуйте, Coda89!
Обработайте событие OnDrawCell. Не забудьте сделать высоту строк побольше.
Код в приложении:
Приложение:
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 22.03.2008, 23:06 Оценка за ответ: 5 Комментарий оценки: Ставлю 5...спасибки!Бегу експерементировать..
Отвечает: Genia007
Здравствуйте, Coda89!
Нашёл такой вот код, который поварачивает строку в ячейки на 90 градусов, возможно он Вам подойдёт, проверил работает.
Приложение:
Ответ отправил: Genia007 (статус: 8-ой класс)
Ответ отправлен: 24.03.2008, 13:45
Вопрос № 128.627
здравствуйте! У меня к Вам 2 вопроса:
1. Мне нужно на форме сделать проигрывание видео.
2. На форме сделать "мини" проигрыватель для звука, т.е чтобы был плейлист, и я мог выбрать нужный мне мп3 трек, и он играл.
Отправлен: 22.03.2008, 23:59
Вопрос задал: Makavely (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Makavely!
По первому вопросу.
Скачайте готовый пример - в нем несложно будет разобраться.
Также посмотрите эту страницу. Там приведено довольно много примеров по работе с мультимедиа в Delphi.
Отвечает: Genia007
Здравствуйте, Makavely!
Проигрывание видео и звука можно сделать с помощью компанента TMediaPlayer.
1. Про воспроизведение видео на форме, можно сделать так:
procedure TFormPlay.N1Click(Sender: TObject);{Нажатие кнопки выбора видеофайла}
begin
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.Display:=panel1;
if OpenDialog1.Execute then
begin
Label3.Caption:=OpenDialog1.FileName;{Показываем выбранный файл}
Panel1.Color:=clblack;
with MediaPlayer1 do
begin
FileName:=Label3.Caption; // имя выбранного файла
Panel1.Refresh;
MediaPlayer1.DisplayRect := Panel1.ClientRect;
Open; // открыть и проиграть звуковой или видео файл
Play;
end;
end;
end;
Видео воспроизводится на компаненте Panel1.
2. По воспроизведению звука с плэй листом, предлагаю код плэйера, который я когда-то смастерил, смотрите приложение:
Приложение:
Ответ отправил: Genia007 (статус: 8-ой класс)
Ответ отправлен: 24.03.2008, 13:48