Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 05.08.2011, 15:11
Zaezd Zaezd вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
Delphi Form

Тебе похоже нужен готовый ехе.

Ладно, вечером если будет время посмотрю, закину.

Уточним еще раз, чтобы потом не было мучительно больно:

если код 0.....9 - это имя человека? - первая колонка результата.
если код 0000000-99999999 это номер документа? -вторая колонка результата.
время/дата - третья колонка.

Да, но только 2 колонка от 000000000 до 999999999 , т.е. 9 значное.
Причём во вторую колонку что бы можно было записать до нескольких документов на одного человека(имя)
И если не затруднит просто кнопку печати.
P.S. на всякий пожарный напомню, что после того как сканер просканирует штрих код он посылает комбинацию клавиш Enter+CTRL

Последний раз редактировалось Zaezd, 05.08.2011 в 15:28.
Ответить с цитированием
  #17  
Старый 05.08.2011, 15:47
Zaezd Zaezd вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 12
Репутация: 10
По умолчанию

Добавлю ещё. Я тут подумал логичнее наверно будет если вначале будут вбиваться номера документов, а потом имя ну и время.
Общий смысл этой програмки- что бы записать всех людей- какие они брали документы и во сколько времени.

Последний раз редактировалось Zaezd, 05.08.2011 в 15:51.
Ответить с цитированием
  #18  
Старый 05.08.2011, 20:35
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

форма
PHP код:
object Form1TForm1
  Left 
192
  Top 
114
  Width 
696
  Height 
480
  Caption 
'Form1'
  
Color clBtnFace
  Font
.Charset DEFAULT_CHARSET
  Font
.Color clWindowText
  Font
.Height = -11
  Font
.Name 'MS Sans Serif'
  
Font.Style = []
  
OldCreateOrder False
  OnCreate 
FormCreate
  PixelsPerInch 
96
  TextHeight 
13
  object Edit1
TEdit
    Left 
8
    Top 
8
    Width 
489
    Height 
21
    TabOrder 
0
    Text 
'8'
    
OnChange Edit1Change
  end
  object Button1
TButton
    Left 
592
    Top 
8
    Width 
75
    Height 
25
    Caption 
'save'
    
TabOrder 1
    OnClick 
Button1Click
  end
  object Button2
TButton
    Left 
512
    Top 
8
    Width 
75
    Height 
25
    Caption 
'open'
    
TabOrder 2
    OnClick 
Button2Click
  end
  object ListBox1
TListBox
    Left 
512
    Top 
40
    Width 
169
    Height 
393
    ItemHeight 
13
    TabOrder 
3
  end
  object memo1
TMemo
    Left 
8
    Top 
56
    Width 
489
    Height 
377
    TabOrder 
4
  end
  object TRichEdit
    Left 
8
    Top 
32
    Width 
489
    Height 
25
    TabOrder 
5
  end
end 

юнит
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsComCtrls;

type
  TForm1 
= class(TForm)
    
Edit1TEdit;
    
Button1TButton;
    
Button2TButton;
    
ListBox1TListBox;
    
memo1TMemo;
    
RichEdit1TRichEdit;
    
procedure Button1Click(SenderTObject);
    
procedure Edit1Change(SenderTObject);
    
procedure FormCreate(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;
  
nm,dc:string;
  
px:byte;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
begin
memo1
.lines.savetofile('baz.txt');
end;

procedure TForm1.Edit1Change(SenderTObject);
var
s,d:string;
begin
d
:=datetostr(date)+#09+timetostr(time);
s:=edit1.Text;
if 
s<>'' then
if length(s)=1 then
begin
  nm
:=listbox1.Items.Strings[strtoint(s)];
  
px:=px+1;
  
richedit1.Text:=nm+#09+dc+#09+d;
  
edit1.Text:='';
end
else
begin
  dc
:=s;
  
px:=px+1;
  
richedit1.Text:=nm+#09+dc+#09+d;
  
edit1.Text:='';
end;
if 
px=2 then
begin
  memo1
.Lines.add(richedit1.Text);
  
px:=0;
end;
end;

procedure TForm1.FormCreate(SenderTObject);
begin
listbox1
.Items.LoadFromFile('sprab.txt');
nm:='';
dc:='';
px:=0;
end;

procedure TForm1.Button2Click(SenderTObject);
begin
memo1
.lines.LoadFromFile('baz.txt');
end;

end

в папке с прогой сохраняеш тхт файл
sprab.txt
со списком, например
PHP код:
Петров
Сидоров
Петров2
Сидоров2
Шеф
ВаляБухг
ЗамШефа
Отмор
Ктото
ХЗкто 


Набросал.
Коряво, но просто сейчас у меня реально нету времени этим заниматься.

Ставишь курсор в эдит1
первым вводится номер сотрудника, вторым документ.
Дата автоматом.

п.с.: понятно что база НИКАК не защищена.
Я бы конечно прикрутил туда шфрование.

Последний раз редактировалось Konrad, 05.08.2011 в 20:38.
Ответить с цитированием
  #19  
Старый 05.08.2011, 21:04
Zaezd Zaezd вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 12
Репутация: 10
По умолчанию

вот большое человеческое спасибо. больше мне и не нужно.Щас буду сидеть и разбираться
Ответить с цитированием
  #20  
Старый 06.08.2011, 09:54
Zaezd Zaezd вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 12
Репутация: 10
По умолчанию

если можно, сделайте плиз архив проекта с exe. У меня ошибку говорит хоть убейся....
Блин, аж снилось сегодня эта программа.
Ответить с цитированием
  #21  
Старый 06.08.2011, 10:44
Vocabulary Vocabulary вне форума
Новичок
 
Регистрация: 17.09.2009
Сообщения: 85
Репутация: 9
По умолчанию

В предложенном коде есть логическая ошибка:
В процедуре Edit1Change программа НИКОГДА не выполнит код, который записан по альтернативной ветке (else) в условии if length(s)=1 then.
Здесь, видимо, нужно иметь два объекта ввода: один для односимвольного ш-к, другой для многосимвольного.
В первом, да, можно обработку введенного кода делать по событию OnChange, где в конце автоматом переводить фокус ввода на второй едит.
Во втором придется обработку введенного ш-к вешать на событие OnExit.
Или, так же, в событии OnChange проверять количество введенных символов и только по достижении определенного количество записывать их в другой компонент. Только потом очищать едит.

---
Ошибка там сопряжена с тем, что в файле dfm имя объекта TRichEdit не определено (пустое). Надо просто указать это имя - RichEdit1.

Последний раз редактировалось Vocabulary, 06.08.2011 в 10:48.
Ответить с цитированием
  #22  
Старый 06.08.2011, 12:32
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от Vocabulary
В предложенном коде есть логическая ошибка:
В процедуре Edit1Change программа НИКОГДА не выполнит код, который записан по альтернативной ветке (else) в условии if length(s)=1 then.
Да неужели)))
Показываю уличную магию:

Воодим в эдит1 число скажем 5.

Далее копируем число скажем 55555555,
и вводим в эдит1 через Ctrl+V.
И вуаля и код после елс выполнен.

Вы думаетет я не проверял прогу, перед тем как закинуть на сайт? оО


Цитата:
Сообщение от Vocabulary
---
Ошибка там сопряжена с тем, что в файле dfm имя объекта TRichEdit не определено (пустое). Надо просто указать это имя - RichEdit1.
А тут вы правы, просто спешил когда копировал.
Ответить с цитированием
Этот пользователь сказал Спасибо Konrad за это полезное сообщение:
Zaezd (17.06.2012)
  #23  
Старый 06.08.2011, 12:51
Vocabulary Vocabulary вне форума
Новичок
 
Регистрация: 17.09.2009
Сообщения: 85
Репутация: 9
По умолчанию

Да я не против "уличной магии" - в этом смысле она сработает за милую душу.
Но задача стоит ввода ш-кода со сканера, а не из буфера обмена.
А при вводе со сканера "магия" уже не помощник.
Со сканера символы идут последовательно как если бы ввод происходит с клавы. В этом и смысл.
Здесь проще обработку "повесить" на OnKeyDown, где проверяется нажатие Enter (сканер передает символ "перевода строки" после отправки последовательности символов ш-кода).
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025