![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
Спасибо alexBlack, но если записать вот так:
function t(lpThreadParameter : Pointer): Integer stdcall; var rd : Integer; begin Randomize; rd := Random(4); with Form1 do while (Panel1.Width > 50) and (Panel1.Height > 50) do begin Panel1.Height := Panel1.Height - rd; Panel1.Width := Panel1.Width - rd; Sleep(10); end; end; procedure TForm1.Button1Click(Sender: TObject); var ti : Cardinal; begin CreateThread(nil, 0, @t, nil, CREATE_NEW, ti); end; то функция компилируется, но после нажатия кнопки ничего не происходи и более того после закрытия формы компилчтор выдает ошибку неверного чтения какого-то адреса. Что не так? Спасибо. |
![]() |
![]() |
![]() |
#32 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
SkAndrew, вернись на первую страницу в пост #4, строка 18. Понял что не так?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#33 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Даж не знаю... Вообще я лично прекрасно обходился без параметров в этой функе. Ну попробуй прописать result:=0 в конце функи потока. Где то в стек попадает левый адрес помоему.
И еще попробуй убрать из потока все обращения к компонентам и форме, если ошибка при закрытии исчезнет, значит в потоке нужно проверять не уничтожены ли компоненты. э-э-э стоп, а ты что функу в класс формы включил?
I'm learning to live...
|
![]() |
![]() |
![]() |
#34 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
mutabor - нет не понял - что там не так, можно привести полный код чтобы наконец-то понять где ошибка. спасибо!
|
![]() |
![]() |
![]() |
#35 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Проверил, работает.
Код:
Разворачивание все той же кнопкой, начальные размеры панели должны быть меньше чем 300 х 300, если превышают поменяй либо размеры панели, либо цифры в условии, так чтобы разница хотя бы в единицу была. Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#36 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
спасибо - работает отлично!
|
![]() |
![]() |
![]() |
#37 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
mutabor - А если записать так (это возможно?):
var Form1: TForm1; IsMin: boolean; function t(lpThreadParameter : Pointer; Control : TControl): Integer stdcall; implementation {$R *.dfm} function t(lpThreadParameter : Pointer; Control : TControl): Integer; stdcall; var rd: integer; begin if IsMin then rd := 2 else rd := -2; while (Control.Width + rd > 50) and (Control.Height + rd > 2) and (Control.Width + rd < 600) and (Control.Height + rd < 338) do begin Control.Height := Control.Height + rd; Control.Width := Control.Width + rd; Sleep(10); end; IsMin := not IsMin; Result := 0; end; procedure TForm1.Button1Click(Sender: TObject); var ti : Cardinal; begin CreateThread(nil, 0, @t(??????, ElPanel1), nil, CREATE_NEW, ti); end; тогда какой должен быть первый параметр в функции t? Спасибо за ответ! |
![]() |
![]() |
![]() |
#38 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#39 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
проверил, не работает. просто хотел несколько упростить функцию mutabor. не могу понять как записать первый параметр функции и ошибку компилятор выдает почему-то на второй параметр. Спасибо.
|
![]() |
![]() |
![]() |
#40 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Чтоб передать в поток ченить, нужно просто определить переменные, передл запуском потока, и пусть поток их читает.
I'm learning to live...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дано четырехзначное число, заданное в символьном виде, например, '1954'. Напечатать его текстом, например | gred | Помощь студентам | 13 | 31.03.2008 22:24 |
Внедрить контрол в FlexGrid | beryllium | Общие вопросы .NET | 0 | 21.02.2008 01:09 |
Плавно выпадающее меню для Mozilla Firefox | мЕхаил =) | JavaScript, Ajax | 6 | 22.12.2007 23:46 |
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон | Romanbl4 | Общие вопросы Delphi | 6 | 27.06.2007 17:23 |
Как плавно поменять цвет формы | гера | Помощь студентам | 1 | 20.04.2007 15:35 |