HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 24.12.2009, 11:18
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 patcher ппц ты жжеш. Если нужно скрыть форму, то ты выбрал самый жестокий вариант, который дает наибольшую нагрузку на ОС (за счет прозрачности)
Такие вищи решаются намного проще.
в файле проекта (*.dpr) нужно дописать Application.ShowMainForm := false; перед Application.Run;

пример :
Код:
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.ShowMainForm := false; // ВОТ ЭТО НУЖНО ВПИСАТЬ 
  Application.Run;
Ну а если форма не нужна, то можно или консольный проект с убранной директивой что это консольная прога. Или создать обычный проект, удалить все формы и в dpr файле убрать всё лишнее. Но первый вариант проще )

Последний раз редактировалось slesh; 24.12.2009 в 11:22..
 
Ответить с цитированием

  #2  
Старый 24.12.2009, 11:54
a1ertso
Новичок
Регистрация: 16.12.2009
Сообщений: 29
Провел на форуме:
101927

Репутация: 0
По умолчанию

почти всю программу написал, осталось только заменить минимальное значение каждой строки матрици, на номер столбца в котором оно находится.

Код:
PROGRAM Project1; 
{$APPTYPE CONSOLE} 
uses 
SysUtils; 

CONST 
n=9; // количество элементов массива 
label prog1,prog2,ASD ; 

TYPE 
ar=array[1..n] of real; // объявление типа массива 
VAR 
a:ar; // исходный массив А 
s:real; // сумма отрицательных элементов 
i,ppp,m:integer; // счетчик элементов 
begin 

Writeln('Press 1 to program #1'); 
Writeln('Press 2 to program #2'); 
readln(ppp); 
if ppp=1 then goto ASD; 
begin 
if ppp=2 then goto prog2; 
// Ввод исходных данных 
ASD: WriteLn('Type ', n, ' real elements of array:'); 
for i:=1 to n do 
Read(a); 
writeln; 
// Выполнение задачи 
s:=0; m:=0; // начальное значение суммы 
for i:=1 to n do // цикл перебора элементов массива 
if (a>0) and (m<5) 
then // выборка отрицательных элементов 
begin 
s:=s+a; // суммирование 
m:=m+1; 
end; 
// Вывод результата 
if s=0 then 
WriteLn('Нет положительніх єлементов') 
else 
WriteLn(' S=',s:8:4); 
WriteLn('***** Press <enter> to finish *****'); 
Readln; // задержка экрана 
Readln; 
end; 
end.

Последний раз редактировалось slesh; 24.12.2009 в 14:25.. Причина: [code][code]
 
Ответить с цитированием

  #3  
Старый 24.12.2009, 13:51
n1ghtstalker
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме:
152084

Репутация: 8
По умолчанию

Эм товарищ массив тогда по задаче должен быть двумерный,а у вас одномерный.
Для нахождения мин элемента сравниваете по строчно элементы,а потом в новый одномерный массив записывайте мин элемент.
В новом цикле если a[i,j]=b[i] then a[i,j]:=j; где j соответственно столбец.
 
Ответить с цитированием

  #4  
Старый 24.12.2009, 20:07
Vasek13
Новичок
Регистрация: 13.05.2009
Сообщений: 12
Провел на форуме:
533925

Репутация: -4
По умолчанию

Помогите с задачкой
Вводить числа с клавиатуры пока их не станет больше пяти и не попадётся число 100

Вот написал но что то ошибку пишет
Program x3;
VAR
integer:x,i;
Begin
i:=0;
while( i>=5) and (x=100) do
begin
readln(x);
inc(i);
end;
end.

В чем ошибка подскажите плз
 
Ответить с цитированием

  #5  
Старый 24.12.2009, 23:08
n1ghtstalker
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме:
152084

Репутация: 8
По умолчанию

Цитата:
Сообщение от Vasek13  
Помогите с задачкой
Вводить числа с клавиатуры пока их не станет больше пяти и не попадётся число 100

Вот написал но что то ошибку пишет
Program x3;
VAR
integer:x,i;
Begin
i:=0;
while( i>=5) and (x=100) do
begin
readln(x);
inc(i);
end;
end.

В чем ошибка подскажите плз
переменная x<>100 . не равна . а то у тебя получается в цикл входит только тогда х=100, а у тебя должен выходить когда x=100.
вот собственно и всё.
 
Ответить с цитированием

  #6  
Старый 24.12.2009, 20:17
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

Репутация: 229
По умолчанию

Как завершить поток созданный CreateThread?
Гуглил -> не нашел
 
Ответить с цитированием

  #7  
Старый 24.12.2009, 20:21
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

Репутация: 52
Отправить сообщение для transserg с помощью ICQ
По умолчанию

Цитата:
Сообщение от wolmer  
Как завершить поток созданный CreateThread?
Гуглил -> не нашел
TerminateThread(<Хендл потока>,<Код завершения обычно 0>)
вот ссыль на мсдн http://msdn.microsoft.com/en-us/library/ms686717(VS.85).aspx

Последний раз редактировалось transserg; 24.12.2009 в 20:25..
 
Ответить с цитированием

  #8  
Старый 24.12.2009, 20:33
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

Репутация: 229
По умолчанию

Цитата:
TerminateThread(<Хендл потока>,<Код завершения обычно 0>)
вот ссыль на мсдн http://msdn.microsoft.com/en-us/library/ms686717(VS.85).aspx
Что то не работает, можно маленький пример с TerminateThread? (скорее всего что-то не так делаю)
 
Ответить с цитированием

  #9  
Старый 24.12.2009, 20:36
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

Репутация: 52
Отправить сообщение для transserg с помощью ICQ
По умолчанию

а что ты в нее передаешь? то что вернула CreateThread или ThredID это полсдений параметр CreateThread. нужно передавать Хендл потока то что вернет CreateThread или OpenThread
Вот пример

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  hThrad:THAndle;

implementation

{$R *.dfm}
Function Thead(P:Pointer):LongInt;
  var
    i:Integer;
  begin
    i:=0;
    while True do
      begin
        Form1.Memo1.Lines.Add(IntToStr(i));
        Inc(i);
        Sleep(1000)
      end;
  end;
procedure TForm1.Button1Click(Sender: TObject);
  var
    thr:Cardinal;
  begin
    hThrad:=createthread(nil,0,@Thead,nil,0,thr); 
  end;

procedure TForm1.Button2Click(Sender: TObject);
  begin
    TerminateThread(hThrad,0);
  end;

end.

Последний раз редактировалось transserg; 24.12.2009 в 20:45..
 
Ответить с цитированием

  #10  
Старый 24.12.2009, 23:22
Fireblade
Познающий
Регистрация: 31.03.2009
Сообщений: 53
Провел на форуме:
654008

Репутация: 11
По умолчанию

Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ