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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2008, 19:36   #11
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Человеку надо по нажатию кнопки увеличивать значение в поле вывода. Самый простой на мой взгляд вариант:
Код:
var
  Form1: TForm1;
  i:word; //обязательно в глобальные
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var st:string[5];
    j:byte;
begin
inc(i);
st:=inttostr(i);
if length(st)<5 then
for j:=1 to 5-length(st)do
insert('0',st,1);
Edit1.Text:=st;
end;

end.

Последний раз редактировалось puporev; 05.08.2008 в 19:52. Причина: string[6]->string[5]
puporev вне форума Ответить с цитированием
Старый 05.08.2008, 19:46   #12
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Простой вариант, нормальная скорость:
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var S :String;
begin
    S := Format('%5d', [I]);
 While Pos(' ', S)>0 Do
 S[Pos(' ', S)] := '0';
    Button1.Caption := S;
 Inc(I);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 I:=0;
end;

end.
Alter вне форума Ответить с цитированием
Старый 05.08.2008, 20:28   #13
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin
I:=0;
end;
Это не обязательно. При создании объекта Form1 память под него будет обнулена (заполнена нулями), соответственно переменная I :LongInt; будет равна нулю.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 05.08.2008, 22:10   #14
JRcoker
Форумчанин
 
Аватар для JRcoker
 
Регистрация: 18.07.2008
Сообщений: 119
По умолчанию

Всем спасибо учту все варианты...
Улыбайся...Люди любят идиотов...
JRcoker вне форума Ответить с цитированием
Старый 05.08.2008, 22:15   #15
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Это не обязательно. При создании объекта Form1 память под него будет обнулена (заполнена нулями), соответственно переменная I :LongInt; будет равна нулю.
Это так, чтобы знал, что начальные значения можно было ставить. На случай если надо не с нуля .
Alter вне форума Ответить с цитированием
Старый 05.08.2008, 23:06   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,810
По умолчанию

Цитата:
Это не обязательно. При создании объекта Form1 память под него будет обнулена (заполнена нулями), соответственно переменная I :LongInt; будет равна нулю.
Вообще-то на это лучше не расчитывать. По правилам нужно явно инициализировать переменные, например, так (только для глобальных):
Код:
I :LongInt = 0;
Arigato вне форума Ответить с цитированием
Старый 05.08.2008, 23:16   #17
Alex.rus
Пользователь
 
Аватар для Alex.rus
 
Регистрация: 02.12.2007
Сообщений: 26
По умолчанию

Можно и так:

for i:=0 to j do
begin
st:=inttostr(i);
if length(St)<8 then
begin
b:=8-length(St);
for a:=1 to b do
begin
st:='0'+st;
end;
end;
WriteLn(F,st);
end;
i-минимальное число
J-максимальное
8-восьмизначное число
F-файл вывода
Alex.rus вне форума Ответить с цитированием
Старый 05.08.2008, 23:37   #18
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Вообще-то на это лучше не расчитывать
А на что тогда расчитывать? Тогда каждую функцию Дельфи под сомнение ставить надо.

Выдержка из хелпа (Constructors)
Цитата:
To create an object, call the constructor method on a class type. For example,

MyObject := TMyClass.Create;

This allocates storage for the new object on the heap, sets the values of all ordinal fields to zero, assigns nil to all pointer and class-type fields, and makes all string fields empty.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 06.08.2008, 08:34   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Тогда каждую функцию Дельфи под сомнение ставить надо.
Эт ты загнул конечно, но с Arigato я согласен - лучше будет если все сделать самому и явно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.08.2008, 22:43   #20
DearHunter
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 14
По умолчанию

for i := 0 to 99999 do
format('<%.5d>', [i]);
DearHunter вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считать строки? Черничный Общие вопросы Delphi 14 01.09.2008 14:56
Как из .BMP считать попиксельно OrdJONY Мультимедиа в Delphi 7 17.08.2008 15:46
Считать строку XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.04.2008 21:18
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Как в Microsoft Visual Basic 6.0 открыть Exel файл, считать с него данные(числа) и дальше работать с ними Dimon88 Microsoft Office Excel 7 20.10.2007 13:30