С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Delphi Ошибка: Module 'RecFrm' links to module 'Main' which cannot be found in the current project Есть три формы Main, Rec и RecFrm. Main является главной формой. В Rec uses Main; RecFrm в свою очередь TRecFrm = class(TRec); и uses Main; В результате получаем Module 'RecFrm' links to module 'Main' which cannot be found in the current project. Как с этим бороться? https://www.cyberforum.ru/ delphi-beginners/ thread1336018.html Delphi Одномерные массивы. Принадлежит ли n-ый элемент заданному интервалу?
Даны неотрицательное число n, действительные a,b,c,d,q(c<d). Пусть x0=a, xk=q*xk-1+b. (k=1,2,..) Принадлежит ли xn интервалу (с,d)?
Delphi Типизированные файлы. Найти число элементов, min/max, среднее арифметическое элементов заданного файла https://www.cyberforum.ru/ delphi-beginners/ thread1335919.html
На диске дан файл INT.DAT, состоящий из целых чисел (FILE OF INTEGER). Написать программу, находящую число элементов, наибольший и наименьший элемент, среднее арифметическое значение элементов этого файла. помогите решить!
Delphi Работа со структурой данных в файлах (поиск и замена) https://www.cyberforum.ru/ delphi-beginners/ thread1335897.html
В общем, тема похожа на эту эту, но немного другая. Пишу программу для поиска файла в большом архиве (неизвестный игровой формат) по структуре данных. Сам же запрос для поиска загружается из другого файла. По полочкам: Есть два файла: архив (до 200 мб) и излеченный из него файл (до 100 мб), который был извлечен из архива сторонним софтом (извлечение было, как обычная "разрезка" файла)....
Delphi Сохранение данных в массив
Подскажите, в моей программе (которую выкладываю ниже), нужно сделать сохранение данных в массив, с возможностью просмотра этих данных позже.
Delphi Нужно использовать одну форму много раз. Как скрывать компоненты? то есть мне надо 1 форму использовать много раз! вот как работать с свойством Visible в Delphi https://www.cyberforum.ru/ delphi-beginners/ thread1335828.html
Delphi Рассчитать значение функции в заданном интервале и с точностью https://www.cyberforum.ru/ delphi-beginners/ thread1335769.html
Доброго времени суток, столкнулся тут с задачкой на Delphi, не понимаю как решить, подскажите как решать ее. Вроде бы промежуток от 0,1-1, с точностью 16, или точность наоборот 0,1, не понимаю, подмогите кодом.
Delphi Для каждой строки матрицы посчитать количество символов, не входящих во множество Z, вводимое с клавиатуры
Помогите пожалуйста, встал в тупик с задачей: Подсчитать по каждой строке символьной матрицы S(N,M), N<=12, M<=15 количество символов, не входящих в множество Z, которое вводится с клавиатуры. Упорядочить строки матрицы по возрастанию количества подсчитанных символов. Новых матрицы не вводить. Отпечатать исходную матрицу, преобразованную матрицы и введенное множество символов. Ввод и вывод матриц...
Delphi Условие попадания в закрашенную область Помогите пожалуйста исправить условие попадания точки в закрашенную область. if (sqr(x)+sqr(y)<=sqr(4)) and (y>=(-0.5*x)+2) and (x>=0) and (y>=0) or (sqr(x)+sqr(y)<=sqr(4)) and (y>=x+2) and (x<=4) or (sqr(x)+sqr(y)<=sqr(4)) and (y<=(-2*x)-4) or (sqr(x)+sqr(y)<=sqr(4)) and (y<=(x-4)) and (y<=4) then https://www.cyberforum.ru/ delphi-beginners/ thread1335758.html Delphi Ошибка в цикле https://www.cyberforum.ru/ delphi-beginners/ thread1335709.html
for s := 1 to 20 do if incmas= 10 then begin for s1 := 1 to 10 do begin TShape(FindComponent(shapmas)).Free; //удаляем компонент shapmas:=''; end; // Break; end; Через минуту работы программы вылетает ошибка, почему здесь переменная s=21 s1=11 в коде?
Delphi Вычислить произведение членов последовательности
Никак не получается написать, помогите: Дано натуральное число N вычислить \frac{cos\,1}{sin\,1}*\frac{cos\,1+cos\,2}{sin\,1+sin\,2}*\frac{cos\,1+cos\,2+...+cos\,n}{sin\,1+sin\,2+...+sin\,n}
Delphi Дана последовательность из n целых чисел. Определить, со скольких отрицательных чисел она начинается https://www.cyberforum.ru/ delphi-beginners/ thread1335631.html
помогите плиз кодом, никак не могу разобраться((( unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, Spin; type
4 / 4 / 0
Регистрация: 18.02.2013
Сообщений: 32
0

Взаимодействие двух процессов - Delphi - Ответ 7013725

20.12.2014, 16:26. Показов 1214. Ответов 3
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста сделать две нити.
первая нить "Писатель"
вторая нить "Читатель"

Писатель
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit FirstUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Con-trols, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    GenBtn: TButton;
    ClearBtn: TButton;
    procedure GenBtnClick(Sender: TObject);
    procedure ClearBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
var
  MyMutex: Thandle;
 
procedure TForm1.GenBtnClick(Sender: TObject);
var
  m: cardinal;
  i, j, n: integer;
  ff: TextFile;
begin
  if Edit1.Text = '' then
    begin
      ShowMessage('Не задано количество чисел');
      Exit;
    end;
   n:= StrToInt(Edit1.Text);
 
  randomize;
  for i:= 1 to n do
    begin
// Ждем освобождения мьютекса, если он занят в этом или другом процессе
      if WaitForSingleObject(MyMutex, INFINITE) = WAIT_OBJECT_0 then
        begin    // Выполняется при свободном  мьютексе
          AssignFile(ff,'1.txt');
          Rewrite(ff);
          m:= random (4294967295);   // самое большое 32 разрядное число
          writeln(ff, m);            // пишем его в файл
          Memo1.Lines.Add(IntToStr(m));
//          Flush(ff);                // фиксируем изменения файла на диск
          CloseFile(ff);
 
// Освобождаем мьютекс
          ReleaseMutex(MyMutex);
// Ждем  0.5 секунды, чтобы 2ой процесс зазватил мьютекс
          Sleep(500);
          j:=0;
// Ждем пока не будет файла, т.е. пока вторая программа его удалит
          While FileExists('1.txt') do // Ждем еще до 5 секунд
            begin
              Sleep(500);
              inc(j);
              if j = 10 then
                begin
                  ShowMessage('Не запущена читающая программа' +
                      chr(13) + chr(10) + 'или ожидание слишком велико');
                  Exit;
                end;
            end;
// Конец цикла вывода чисел
        end;
    end;
// После генерации последнего числа захватываем его и сразу осво-бождаем
  if WaitForSingleObject(MyMutex, INFINITE) = WAIT_OBJECT_0 then
    ReleaseMutex(MyMutex);
end;
 
procedure TForm1.ClearBtnClick(Sender: TObject);
begin
  Memo1.Clear;
end;
 
initialization
  MyMutex:= 0;
  MyMutex:= CreateMutex(nil, False, 'Mutex001');
  if GetLastError = ERROR_ALREADY_EXISTS then
    begin
      MessageBox(0,'Вполне возможно читающая программа уже'  + chr(13) + chr(10) +
                              'читала информацию и не освободила мьютекс,' + chr(13) + chr(10) +
                              'перезапустите читающую программу', 'Ошибка',
                              MB_OK or MB_ICONSTOP);
      halt;
    end;
 
finalization
  CloseHandle(MyMutex);
 
end.
Читатель
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
unit SecondUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Con-trols, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
var
  MyMutex: THandle;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  m: cardinal;
  i, j, n: integer;
  ff: TextFile;
begin
// Создаем или открываем мьютекс
  n:= 10000; // Предполагаем чтение 10000 чисел
   randomize;
   for i:= 1 to n do
     begin
       MyMutex:= OpenMutex(SYNCHRONIZE, FALSE, 'Mutex001');
       if MyMutex = 0 then
         begin
           ShowMessage('Не запущен процесс, создающий мьютекс');
           Exit;
         end;
// Ждем освобождения мьютекса, если он занят
       if WaitForSingleObject(MyMutex, INFINITE) = WAIT_OBJECT_0 then
// Выполняется при свободном  мьютексе
         begin
           if FileExists('..\1\1.txt') then
             begin
               AssignFile(ff,'..\1\1.txt'); // Файл в каталоге в папке "1" рядом
               Reset(ff);
             end
           else
             begin
               ShowMessage('Нет файла с данными или не' + chr(13) + chr(10) +
                           'запущена создающая файл программа');
               Exit;
             end;
           readln(ff, m);   // читаем число
           Memo1.Lines.Add(IntToStr(m));// пишем его в Memo
           CloseFile(ff);
           DeleteFile('..\1\1.txt');   // Удаляем файл
// Освобождаем мьютекс
           ReleaseMutex(MyMutex);
 
// Ждем  0.5 секунды
           Sleep(500); j:=0;
// Ждем появления файла, т.е. пока первая программа его создаст
           while not FileExists('..\1\1.txt') do  // Ожидаем появления файла
             begin                                // до 3х секунд
               Sleep(500);
               inc(j);
               if j = 6 then
                 begin
                   ShowMessage('Не могу больше ничего прочитать' + chr(13) +
                                chr(10) + 'или передача завершена');
                   Edit1.Text:= IntToStr(i);
                   Exit;
                   ReleaseMutex(MyMutex);
                 end;
             end;
         end;
     end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Clear;
  Edit1.Clear;
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  key:= #0;
end;
 
end.


Вернуться к обсуждению:
Взаимодействие двух процессов Delphi
0
Заказать работу у эксперта
Programming
Эксперт
9485 / 562 / 19
Регистрация: 12.04.2006
Сообщений: 11,671
Блог
20.12.2014, 16:26
Готовые ответы и решения:

Взаимодействие двух модулей
Всем привет. Вопрос такой: есть два модуля, назову их основной и новый. И так создаю новый модуль,...

Организовать взаимодействие двух процессов через неименованный программный канал
Подскажите, где почитать про это и что надо сделать точно. А то тут лабу задали, а лекции пока не...

Взаимодействие процессов
Подскажите пожалуйста как мне наладить взаимодействие между двумя процессами через каналы. Вот...

Взаимодействие процессов
Нужно написать задачу, в которой дано 10 процессов (там P1, P2, …, Р10, например) Функционирование...

3
20.12.2014, 16:26
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
20.12.2014, 16:26
Помогаю со студенческими работами здесь

Взаимодействие процессов
Всем привет. Запаситесь терпением, ибо описывать проблему я буду долго :) Итак, что требуется, в...

Взаимодействие процессов. Сигналы
Создать дерево процессов 1-&gt;(2,3) 2-&gt;(4,5) 5-&gt;6 6-&gt;(7,8) Процессы непрерывно...

Взаимодействие процессов в Windows
Есть 2 процесса, которые взаимодействуют с помощью очереди сообщений,один процесс размещает...

Взаимодействие процессов / WinAPI
Доброе время суток, форумчане! Прощу вашей помощи! :help: Для знающих и опытных программистов,...

0
Блоги программистов
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(шес­­­­­­­­­­­­­­­ти­б­и­т­н­ы­й асихронный счётчик с управляющим сигналом заде
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru