Сообщения без ответов | Активные темы Текущее время: 23.06.18, 21:44



Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.
 Delphi 
Автор Сообщение
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
Я сам ни где не учился ,
и даже не знаю как правильно поставить вопрос .
Меня интересует , как progressBar разбить на позиции ?
Я прописал
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  mmo1.Lines.Add('Текст1 ...');
  pb1.Position:=pb1.Position+10;

  mmo1.Lines.Add('Текст2 ...');
  pb1.Position:=pb1.Position+10;

end;


но в Memo всё это показывает " Текс1 и Текс2 " сразу после запуска ,
как правильно мне прописать ,
чтобы когда pb1 доходил до позиции ,
к примеру 10% ,
появлялся в Memo " Текс1 " ,
а когда pb1 позиция доходила 50% ,
появлялся в Memo " Текст2 " ?

Помогите , кто разбирается !!!

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 13:48
Профиль
moderator
moderator
Аватара пользователя

Зарегистрирован: 03.03.07, 15:29
Сообщения: 400
Откуда: Комсомольск!!!
ну если я правильно понял то задача такая: есть прогрес бар и есть мемо, когда прогресс доходит до определенного значения текст в мемо должен как то помнятся.

if pb1.position = x then memo1.lines.add('text');


01.07.10, 14:24
Профиль ICQ
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
у тебя на создании процедуры формы уже висит запись в МЕМО текста и установка позиции.

Согдасно этому при открытии формы позиция будет на 20, а в мемо - две строчки "Текст1 ..." и "Текст2..."

не понятно вообще для чего это.. так как сама программа больше ничего не делает

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 14:35
Профиль
moderator
moderator
Аватара пользователя

Зарегистрирован: 03.03.07, 15:29
Сообщения: 400
Откуда: Комсомольск!!!
Ну как я подумал, ох хочет сделать что то типа прогресс бара с пояснением. Иногда в программах встречается с прогрессом бегут строки указывающие что происходит. Только зачем это делать при создании формы...


01.07.10, 15:16
Профиль ICQ
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
Rasta писал(а):
Только зачем это делать при создании формы...
Вот я о тот и говорю что в этом смысла нет и это наглядно видно не будет.

как вариант поставить таймер на 1000 мс и в процедуру обработки таймера уже вставлять определенный код который будет двигать прогрессбар и добавлять строки в мемо

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 15:33
Профиль
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
Код:
unit tt;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    tcpclnt1: TTcpClient;
    edt1: TEdit;
    pb1: TProgressBar;
    tmr1: TTimer;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
    procedure edt1Change(Sender: TObject);
    procedure edt1KeyPress(Sender: TObject; var Key: Char);
    procedure tmr1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses tt2;

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
if tcpclnt1.LocalHostAddr <>'127.0.0.1'
then tmr1.Enabled := True
else showmessage('Интернет соединение отсутствует !!!');
end;

procedure TForm1.edt1Change(Sender: TObject);
begin
btn1.Enabled := Trim(edt1.Text) <> '';
end;

procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9','.',#8]) then key:=#0;
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
if pb1.Position = pb1.Max then
   begin
     tmr1.Enabled := false;
     form2.show;
   end
 else
   pb1.Position := pb1.Position + 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  mmo1.Lines.Add('Текст 1 ...');
  pb1.Position:=pb1.Position+10;

  mmo1.Lines.Add('Текст 2 ...');
  pb1.Position:=pb1.Position+10;

end;

end.


Вот полный код .
RASTA меня правильно понял ,
я хотел через прогрессБар в мемо выходили пояснения !
Но сейчас эти пояснения появляются уже при запуске программы ,
а мне нужно что бы они выходили постепенно .
Потому прошу помощи ( и пожалуйста по подробней ) !!!

Добавлено спустя 5 минут 57 секунд:
не объявленный идентификатор: 'х' ,
что это за компонент и , как правильнее ?

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 16:23
Профиль
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
а всё остальное работает? Кроме отображения прогресс бара, потому как я ниче не понял из кода, вернее смысл понял но как оно может работать - нет

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 16:38
Профиль
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
Работает всё отлично !
Могу кинуть .exe !

Добавлено спустя 1 минуту 44 секунды:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  mmo1.Lines.Add('Текст 1 ...');
  pb1.Position:=pb1.Position+10;

  mmo1.Lines.Add('Текст 2 ...');
  pb1.Position:=pb1.Position+10;

end;

Ошибка в этой части .

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 16:42
Профиль
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
а там вообще не понятно зачем оно нужно...

ты же пишешь

Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if pb1.Position = pb1.Max then
   begin
     tmr1.Enabled := false;
     form2.show;
   end
else
   pb1.Position := pb1.Position + 1;  // зачем ты тут прибавляешь? Вроде как по таймеру + 1 делаешь к прогрессу
end;



Код:
  mmo1.Lines.Add('Текст 1 ...');
  pb1.Position:=pb1.Position+10; // а тут ты хочешь прогресс увеличивать на 10 пунктов, зачем?

  mmo1.Lines.Add('Текст 2 ...');
  pb1.Position:=pb1.Position+10; // а тут ты хочешь прогресс увеличивать на 10 пунктов, зачем?

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 16:57
Профиль
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
я путём тыка всё это собираю , читал разные форумы ,
натыкался на подходящии мне кода и экспериментировал .
Когда зашёл в тупик , написал Вам !
я хотел через прогрессБар в мемо выходили пояснения !
Я ни где не учился , и для меня это густой лес , в котором я пытаюсь разобраться .

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 17:04
Профиль
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
опиши для начала смысл программы.

сейчас у тебя вот что получается:

ты нажимаешь на кнопку, и если IP не локальной машины (тоесть если мы в сети) ты включаешь таймер. Таймер каждый свой цикл прибавляет к прогрессу + 1 пункт, если достигает максимального значения, то отключается и отображается форма2. Зачем таймер то крутится увеличивая прогресс?

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 17:20
Профиль
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
D$O писал(а):
опиши для начала смысл программы.

сейчас у тебя вот что получается:

ты нажимаешь на кнопку, и если IP не локальной машины (тоесть если мы в сети) ты включаешь таймер. Таймер каждый свой цикл прибавляет к прогрессу + 1 пункт, если достигает максимального значения, то отключается и отображается форма2. Зачем таймер то крутится увеличивая прогресс?


Таймер нужен для увеличения прогресбара , всё правильно .

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 17:25
Профиль
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
сделай тогда просто

Цитата:

procedure TForm1.tmr1Timer(Sender: TObject);
begin
if pb1.Position = pb1.Max then
begin
tmr1.Enabled := false;
form2.show;
end
else
begin
pb1.Position := pb1.Position + 1; // зачем ты тут прибавляешь? Вроде как по таймеру + 1 делаешь к прогрессу
mmo1.Lines.Add(inttostr(pb1.Position));
end
end;

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 17:34
Профиль
Писатель
Писатель
Аватара пользователя

Зарегистрирован: 26.10.07, 21:27
Сообщения: 55
Откуда: комсомольск автомом республик
Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if pb1.Position = pb1.Max then
   begin
     tmr1.Enabled := false;
     form2.show;
   end
else
   pb1.Position := pb1.Position + 1;  // без этой строчки , ни чё не работает !
end;

Код:
if pb1.position = x then memo1.lines.add('text');

я уже разобрался что это за " Х " , переписал код на
Код:
unit tt;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    tcpclnt1: TTcpClient;
    edt1: TEdit;
    pb1: TProgressBar;
    tmr1: TTimer;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
    procedure edt1Change(Sender: TObject);
    procedure edt1KeyPress(Sender: TObject; var Key: Char);
    procedure tmr1Timer(Sender: TObject);
    procedure pb1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x: Integer;

implementation

uses tt2;

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
if tcpclnt1.LocalHostAddr <>'127.0.0.1'
then tmr1.Enabled := True
else showmessage('Интернет соединение отсутствует !!!');
end;

procedure TForm1.edt1Change(Sender: TObject);
begin
btn1.Enabled := Trim(edt1.Text) <> '';
end;

procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9','.',#8]) then key:=#0;
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
if pb1.Position = pb1.Max then
   begin
     tmr1.Enabled := false;
     form2.show;
   end
 else
   pb1.Position := pb1.Position + 1;
end;

procedure TForm1.pb1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  x:=10 ;
if pb1.position = x
then mmo1.lines.add('text');
end;

end.

Но в Memo текст не выводится (((
Что у меня не так ???

_________________
Комсомольск - это город Вашей мечты !
Только Вам тут делать нечего !


01.07.10, 17:41
Профиль
Великий гуру
Великий гуру
Аватара пользователя

Зарегистрирован: 05.03.07, 18:33
Сообщения: 2229
не туда ты вставил нижнюю процедуру. измени просто так как я тебе написал в предыдущем посте без всяких X

_________________
Таковы мои принципы. Если они вас не устраивают - у меня есть другие.


01.07.10, 17:49
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron




Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software for PTF.
Русская поддержка phpBB