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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 00:36   #1
vsrmis
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 26
По умолчанию вылетает на любом виде потоков

вот такой голый код
Код:

unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs; 

type

  { TForm1 }

  { TMythread }

  TMythread = class(TThread)
       protected
       procedure Execute; override;
  end;
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
   T:TMythread;
begin
   T := TMythread.Create(False);
end;

{ TMythread }

procedure TMythread.Execute;
begin
  //inherited Execute;
end;

initialization
  {$I unit1.lrs}

end.
Вылетае при Create с ошибкой RunEror(232), если раскомантировать
inherited Execute; не компилирует ругается на абстрактные классы.

вот такая история

Код:
unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs; 

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation
function fpc_thread(parameter: pointer): ptrint;
begin
  // thread code
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
I:Integer;
begin
   handle := BeginThread(@fpc_thread,Addr(I));
end;

initialization
  {$I unit1.lrs}

end.
Выллетает при начинании треда.
если вместо Addr(I) поставить nil результат анологичен.

Lazarus, Linux.
vsrmis вне форума Ответить с цитированием
Старый 03.08.2011, 05:20   #2
Просто лис
 
Регистрация: 20.07.2011
Сообщений: 8
По умолчанию

Вообще то в Паскале ООП не предусмотрен и невиг лезть в него с потоками, учи С++ и будет тебе счастье.
Просто лис вне форума Ответить с цитированием
Старый 03.08.2011, 09:41   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Делал в Delphi открытие отдельного потока, ну очень давно.
Так что все детали см. во вложении. Даже на источник не могу сослаться.
Трудно утверждать, что поможет, но может быть и толк?!
Об основной программе: Оконный интерфейс к исполняемому модулю, который удаляет файлы с предварительной их перезаписью (безопасность).
Общий смысл состоял в том, что при одновременном удалении файла каким либо менеджером оконный интерфейс отображал истинное состояние дел.
Пример: Откройте один и тот же каталог Проводником и FAR'ом. Если Проводником удалить файл, то окно FAR'а обновится.♠
Вложения
Тип файла: rar List.rar (2.0 Кб, 7 просмотров)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 03.08.2011, 10:04   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Для никсовых аппликаций солюшн , касаемый RunEror(232) при старте тредов, - поместить юнит cthreads первым в статью uses проекта (lpr).
Вероятно и для виндовых аппликаций решение такое же, с той лишь разницей что треды виндовых аппликаций поддерживаются юнитом с иным именем (не помню каким)
mss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на любом языке. UAC Помощь студентам 18 01.03.2011 18:01
Получить погоду в любом городе Andrey85 Работа с сетью в Delphi 1 29.10.2010 19:51
Работа exe на любом компьютере WALL БД в Delphi 9 11.10.2010 10:47
Как настроить эксель, чтобы он открывал в виде таблицы тхт файл с разделителем в виде точки с запятой xhour Microsoft Office Excel 1 05.05.2009 14:17
Запуск БД на любом компе!!! Alexij БД в Delphi 2 17.04.2008 13:43