Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

зациклился на циклах(начинающий) [D7, XP]


Страницы:   1 2 3 4

LAZudhic ©   (2011-09-08 17:56:00) 

В цикле надо вставить цикл. теперь по порядку первый цикл чтоб избежать команды goto label(вроде такая команда) дельфи не любит такую команду и не рекамендуется  ее применять .второй цикл для паузы от 0,1 до 0,5сек
как бы вы сделали на моем месте какие команды применили


Сергей М.   (2011-09-13 21:37:00) [21]


> надеюсь что ответ будет мне понятен


зря надеешься.
спроси почему.
а может самдогадаешься, перечитав свою же ахинею ?


LAZudhic   (2011-09-13 21:27:00) [22]

ну а теперь нужна помощь в другом как сделать чтоб 1-картинка JPEG сразу появлялась на форме после запуска программы и 2-можно ли без такого типа С:\1\1\1.jpg а проще если рисунок находится в том же каталоге с программой типа 1.jpg(рисунок будет отображать электронную схему при которой правильно будет работать программа ) код программы изложен выше что и куда дописать при использование image на форме?(надеюсь что ответ будет мне понятен будьте пожалуйста подробней    )  заранее СПС =)


LAZudhic   (2011-09-13 20:07:00) [23]

А движки от принтера не надорвутся деревяшки таскать?-всё зависит от типа редуктора конечно страдает производительность повышается точность и к тому же я не деревяшки таскать буду а двигатель с фрезой над деревяшками
теперь второе наконец избавился от цикла for в программе. Кроме палок в колёса и насмешок всё таки были дельные советы спасибо
теперь программа приобрела вот такой вид:

unit Unit15;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;// кнопка Пуск
   Button2: TButton;// кнопка СТОП
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Stop: Boolean = False;
implementation

{$R *.dfm}
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; // переменые
begin
 Button2.Enabled:=True;
 Button1.Enabled:=False;
 Stop:=False;
while not(Stop) do // длительность цикла
begin
//for i := 1 to 10 do

out32(888,17);// вывод на лпт pin 2,упр pin6
out32(888,19);//вывод на лпт pin 2,3,упр pin6
sleep(20);// пауза в милисекундах
out32(888,18);//вывод на лпт pin 3,упр pin6
out32(888,22);//вывод на лпт pin 3,4,упр pin6
sleep(20);// пауза в милисекундах
out32(888,20);//вывод на лпт pin 4,упр pin6
out32(888,28);//вывод на лпт pin 4,5,упр pin6
sleep(20);// пауза в милисекундах
out32(888,24);//вывод на лпт pin 5,упр pin6
out32(888,25);//вывод на лпт pin 5,1,упр pin6
sleep(20);// пауза в милисекундах
Application.ProcessMessages
end
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Stop:=True;
 Button2.Enabled:=False;
 Button1.Enabled:=True;

end;

end.


Inovet   (2011-09-13 18:43:00) [24]

> [50] aleko ©   (13.09.11 18:22)
> Что такое венгерская нотация? Первый раз слышу...

Забанили в поиске?
http://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F


aleko   (2011-09-13 18:22:00) [25]


> Для компонентов можно использовать венгерскую нотацию, типа
> btnStart или dlgOpenFile или lblTime.

Что такое венгерская нотация? Первый раз слышу...
Достаточно мало-мальски знать англоязычный язык. Хотя и у меня с ним не совсем ладно, однако слова типа алярм, ворнинг, сэйв и импорт вполне понимаю. А для других случаев в сети есть транслейтер. Переведет хоть с языка суахили.


Inovet   (2011-09-13 10:55:00) [26]

> [48] Германн ©   (13.09.11 10:37)
> Ну там, где "Поехали".
> LAZudhic   (12.09.11 17:25) [42]

ДОСовская по управлению шаговым двигателем? По распайке разъёма разве что пожно идентифицировать.
Идентифицировал
http://subscribe.ru/archive/comp.hard.38445/200704/15064647.html


Германн   (2011-09-13 10:37:00) [27]


> По какой ссылке?

Ну там, где "Поехали".
LAZudhic   (12.09.11 17:25) [42]


Inovet   (2011-09-13 09:21:00) [28]

> [46] Германн ©   (13.09.11 00:24)
> что код по ссылк

По какой ссылке?


Германн   (2011-09-13 00:24:00) [29]


> LAZudhic   (12.09.11 17:25) [42]
>
> НУ ЧТО поехали

Мне одному кажется, что код по ссылке - "перевод на Дельфи" старой Паскалевской проги, написанной для MSDOS?


Inovet   (2011-09-12 21:31:00) [30]

А движки от принтера не надорвутся деревяшки таскать?


Сергей М.   (2011-09-12 21:20:00) [31]

Дрова из-под такого станка выползут, вестимо, классные)
Чуть драчевым напильником шлифануть - и готова итальянская мебель)


Inovet   (2011-09-12 18:06:00) [32]

> [42] LAZudhic   (12.09.11 17:25)
> при нажатии кнопки пуск запускается цикл а при нажатии кнопки
> стоп и команды break выход из цикла


type
 TForm1 = class(TForm)
   btStart: TButton;
   btStop: TButton;
   procedure btStartClick(Sender: TObject);
   procedure btStopClick(Sender: TObject);
 private
   { Private declarations }
   FlagStop: bool;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btStartClick(Sender: TObject);
begin
 FlagStop := false;
 while not FlagStop do
 begin
   Application.ProcessMessages;
 end;
 ShowMessage('Stop');
end;

procedure TForm1.btStopClick(Sender: TObject);
begin
 FlagStop := true;
end;

end.


LAZudhic   (2011-09-12 17:25:00) [33]

НУ ЧТО поехали нужна маленькая помощь к примеру при нажатии кнопки пуск запускается цикл а при нажатии кнопки стоп и команды break выход из цикла(посоветуйте как это сделать и если не сложно объяснить )
вот код программы после создания второй кнопки:

unit Unit155;

interface

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

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

var
 Form1: TForm1;

implementation

{$R *.dfm}
function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var i,j,a,b: Integer;
begin
for i := 1 to 400 do
begin
out32(888,17);
out32(888,19);
sleep(20);
out32(888,18);
out32(888,22);
sleep(20);
out32(888,20);
out32(888,28);
sleep(20);
out32(888,24);
out32(888,25);
sleep(20);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

end.


LAZudhic   (2011-09-12 16:58:00) [34]

вот можешь воодушевить =)


Сергей М.   (2011-09-12 16:54:00) [35]


> Станок надеюсь будет работать по дереву


Ну по дереву еще ладно - дерево и не такое стерпит)..
Там плюс-минус туда-сюда пол-сантимметра потом допиливается, шпаклюется-шлифуется и лажа "станкопрограммиста" в результате практически не заметна)


LAZudhic   (2011-09-12 16:45:00) [36]

Простите меня, что не мог раньше ответить. В реальности движок работает 33 секунды этой установкой for 400. Станок надеюсь будет работать по дереву (но до это ещё долго) ну а теперь начинаю изучать команды break и go to .Всем спасибо!!!


han_malign   (2011-09-09 09:45:00) [37]

Другое дело, что сам out32может быть слишком длительным(тракт: приложение -(прослойки вроде inpout32.dll)-> драйвер -> устройство) и один фиг необходимые тайминги не будут соблюдаться...
Это уже решается только независимым(внешним) контроллером на который в потоковом режиме загружается циклограмма с метками времени... Соответственно, если нужно непрерывное 7*24 управление, глубина "предсказания" циклограммы(и соответственно буфера контроллера) рассчитывается из латентности тракта приемо-передачи.
(собственно так и выглядит "мягкое реальное время")


han_malign   (2011-09-09 09:26:00) [38]

- более-менее честный подход, с незначительным дребезгом...
total:= loopCount * stageCount;
timeBeginPeriod(1);
loop_stage:= 0;
start:= timeGetTime;
while(loop_stage < total)do begin
   _time:= timeGetTime - start;
   if( _time >= loop_stage * delayMS)then begin
        case(loop_stage mod stageCount)of
        0: begin
           out32(888,17);
           out32(888,19);
        end;
        ...
        3: begin
           out32(888,24);
           out32(888,25);
        end;
        ...
        end;
        inc(loop_stage);
   end else
      sleep((loop_stage * delayMS - _time) div 2{запас на дребезг кванта});
end;
timeEndPeriod(1);


han_malign   (2011-09-09 08:57:00) [39]


> В мирное время - точно в миллисекундах.
> В военное - есть нюансы, там и значение синуса pi/2 может четырёх достигать.

вот так может и будет похоже на 1мс:
uses MMSystem;
...
timeBeginPeriod(1);
for ... sleep(1); ...
timeEndPeriod(1);

- вроде Русинович писал, что мультимедийный таймер глобально квант изменяет...

хотя лучше конечно REALTIME_PRIORITY_CLASS/THREAD_PRIORITY_TIME_CRITICAL
и спин вокруг QueryPerformanceCounter,
главное убедиться что  CPU ядер хотя бы два...


Inovet   (2011-09-08 23:51:00) [40]

А что за станок, печатные платы изготавливать поди?


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо