Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2008, 01:04   #21
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от SkAndrew Посмотреть сообщение
mutabor - я имено так и делал, но выдается ранее описанная ошибка. если не сложно приведеитпе пример, чтобы визуально можно было понять ошибку. Спасибо
Ну посмотрите у себя в тексте, как объявляется процедура, например:
procedure TForm1.Button1Click(Sender: TObject);
и сделайте по аналогии...
mihali4 вне форума Ответить с цитированием
Старый 15.04.2008, 01:06   #22
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

спасибо, я уже так делал, но так не получается
SkAndrew вне форума Ответить с цитированием
Старый 15.04.2008, 01:18   #23
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы уже довольно долго говорите загадками.
Может, приведете, наконец, свой вариант кода с объявлением процедуры, который у вас не работает?
Или так и будем гадать на кофейной гуще?
mihali4 вне форума Ответить с цитированием
Старый 15.04.2008, 09:37   #24
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Как я понял вот уже 2 страницы речь о том чтобы поместить

procedure t;

в объявление класса.
В данном случае этого делать нельзя, т.к. она используется в:

CreateThread(nil,0,@t,0,CREATE_NEW, ti);

а вызов процедуры и вызов метода - это разные вещи.
Зачем вообще объявлять ее в интерфейстной части ? Удалите и все.

И поменяйте объявление процедуры. Должно быть

function t(lpThreadParameter: Pointer): Integer stdcall;
alexBlack вне форума Ответить с цитированием
Старый 15.04.2008, 10:05   #25
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо за ответ, но если записать так, то функция не работает:
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function t(lpThreadParameter: Pointer): Integer stdcall;
var rd : Integer;
begin
Randomize;
rd := Random(4);
while (lpThreadParameter > 50) and (lpThreadParameter > 50) do
begin
lpThreadParameter := lpThreadParameter - rd;
lpThreadParameter := lpThreadParameter - rd;
Sleep(10);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ti : Cardinal;
begin
CreateThread(nil, 0, @t, 0, CREATE_NEW, ti);
end;

Как изменить код, чтобы он работал? Спасибо!
SkAndrew вне форума Ответить с цитированием
Старый 15.04.2008, 10:32   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SkAndrew
Чесно признайся ты мой код внимательно читал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2008, 11:07   #27
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

да читал, но была подсказка недавняя (смотри выше) и попробовал изменить код, а он не работает, вот и попросил автора alexBlack поправить его.
А Вы, если не сложно, подскажите как реализовать обратную функцию - разворачивания. Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 15.04.2008, 11:28   #28
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот в том моем примере поменять на:
Код:
 while (Form1.Button1.Width<200)and(Form1.Button1.Height<200) do begin   
    Form1.Button1.Width:=Form1.Button1.Width+rd;   
    Form1.Button1.Height:=Form1.Button1.Height+rd;   
    sleep(10);   
  end;
Ферштеен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2008, 11:44   #29
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо за подсказку.
Был бы очень благодарен alexBlack за подсказку как правильно записать функцию, о которой он писал. Спасибо
SkAndrew вне форума Ответить с цитированием
Старый 15.04.2008, 11:56   #30
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от SkAndrew Посмотреть сообщение
Спасибо за подсказку.
Был бы очень благодарен alexBlack за подсказку как правильно записать функцию, о которой он писал. Спасибо
Речь шла только об объявлении функции. Сам параметр в функции использовать не нужно.

т.е вместо

procedure t;

--

function t(lpThreadParameter: Pointer): Integer stdcall;

Еще раз повторю. Это касается не алгоритма работы функции, а следует из описания функции CreateThread.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано четырехзначное число, заданное в символьном виде, например, '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