![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#41 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
компилятор указывает на ошибку второго параметра (панели), а почему? пишет:
[DCC Error] Unit1.pas(59): E2036 Variable required как это можно исправить? |
![]() |
![]() |
![]() |
#42 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А потому что нельзя писать так. Ты почитай внимательно все предидущие описания CreateThread.
CreateThread(nil, 0, Тут нужен указатель на функцию а не вызов ее, nil, CREATE_NEW, ti);
I'm learning to live...
|
![]() |
![]() |
![]() |
#43 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
значит нельзя в функции использовать более общий параметр типа Control : TControl? Или все же есть какой-то выход? Спасибо?
|
![]() |
![]() |
![]() |
#44 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
SkAndrew, методы класса всегда включают неявный параметер - указатель на объект, для которого они вызваны.
Скажем вызов метода, определенного как Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#45 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
спасибо за разъяснение, но я так и не понял можно использовать более общий параметр типа Control : TControl в функции или нет и как тогда указать, что этот параметр может быть панелью или каким-либо другим контролом?
|
![]() |
![]() |
![]() |
#46 | ||
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#47 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
ну вот в этом то и мое желание разобраться - как именно привязать, можете привести пример и как и как предотвратить потоковую небезопасность МСД? Спасибо!
|
![]() |
![]() |
![]() |
#48 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Что значит "как"? Описать метод класса.
EnterCriticalSection, LeaveCriticalSection. А вообще, насколько я помню, на эту тему была статья в справке по дельфи. |
![]() |
![]() |
![]() |
#49 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
простите, Вы можете привести Ваше видение этого примера кода? А его доработка уже будет более объективно видима, потому что пока рассуждения о классах понятны Вам как специалисту, а моя задача несколько проще - я врач и пишу программу на этом уровне знаний для своей научной работы и все что мне нужно упростить функцию. поэтому у меня просьба помочь с кокретным примером. Спасибо.
|
![]() |
![]() |
![]() |
#50 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
![]()
Написал так:
function t(lpThreadParameter : Pointer; Control : TControl): Integer; stdcall; var Form1: TForm1; IsMin: boolean; lpThreadParameter : Pointer; 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.Height + rd > 2) and (Control.Height + rd < 338) do begin Control.Height := Control.Height + rd; Sleep(10); end; IsMin := not IsMin; Result := 0; end; procedure TForm1.Button1Click(Sender: TObject); var ti : Cardinal; Control : TControl; begin Control := TControl(Panel1); CreateThread(nil, 0, @t(lpThreadParameter, Control), nil, CREATE_NEW, ti); end; все равно компилятор выдает ошибку, что неверно указан параметр "Control". Подскажите как нужно прописать в CreateThread функцию t, чтобы данный код нормально компилировался. Спасибо! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дано четырехзначное число, заданное в символьном виде, например, '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 |