Kontrolka/komponent do czytnika kodów kreskowych

Kontrolka/komponent do czytnika kodów kreskowych
J1
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 lat
  • Postów:19
0

Witam!
Chciałem zapytać czy znacie może jakąś kontrolkę lub komponent aby sparować (za pomocą WiFi lub Bluetooth) czytnik kodów kreskowych z programem napisanym w Delphi?

Chodzi o to, że pracuję nad programem do inwentaryzacji i potrzebne by mi było stworzenie takiej komunikacji. Z górę dziękuję za pomoc.

edytowany 1x, ostatnio: flowCRANE
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Poznań
  • Postów:8758
3

Czytnik kodów kreskowych działa jak "zwykła" klawiatura.
Czy miałeś kiedyś do czynienia z takim urządzeniem?

Podłączasz czytnik do kompa (nieważne jak - przez USB czy Bluetooth) i jak system go zainstaluje (jako standardowe urządzenie wejścia HiD) to potem czytnik działa jak klawiatura.

Co to oznacza?
Że jak sobie przykładowo odpalisz notatnik, a potem zeskanujesz czytnikiem kod kreskowy, to do tego notatnika zostanie wprowadzona treść, jaką masz wydrukowaną pod kodem (najczęściej same numerki).
W każdym razie - nie ma potrzeby korzystania z dodatkowych komponentów czy bibliotek - w Delphi tworzysz jakiś formularz, na nim dajesz pole Edit, a potem gdy focus będzie w tym Edicie i użytkownik coś zeskanuje czytnikiem, to zeskanowana treść trafi do tego Edit'a.

Oczywiście - można to jeszcze bardziej skomplikować, ale to musiałbyś konkretnie napisać, co planujesz ;) W każdym razie do takiej podstawowej funkcjonalności niczego więcej Ci nie trzeba, a samo skanowanie z poziomu aplikacji nie będzie się niczym różnić od sytuacji, jakby klient ręcznie wpisał kod kreskowy (znaczy - cyfry pod nim wydrukowane).


edytowany 1x, ostatnio: cerrato
J1
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 lat
  • Postów:19
0

Dopiero zaczynam swoją przygodę z Delphi więc też może nie potrafię tego do końca sprecyzować, ale zamysł jest taki żeby czytnikiem zczytać kod produktu, następnie program z bazy danych miałby wyszukać którego produktu ten kod dotyczy i użytkownik już ręcznie wprowadzał by ilość danego towaru i po zatwierdzeniu program wprowadzał by tę ilość do bazy.

Wiem że można to zrobić prościej z bardziej złożonymi czytnikami, ale niestety mam narzucone takie ograniczenia finansowe, że mogę skorzystać tylko z tego zwykłego czytnika, który jak sam mówisz rzeczywiście swoim działaniem nie odbiega zbytnio od klawiatury.

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Poznań
  • Postów:8758
3

Tylko pomieszałeś tutaj kilka tematów.

  1. obsługa czytnika - jak pisałem - jest to "zwykła" klawiatura, więc za bardzo nie ma o czym pisać. Dajesz pole, gdzie kod ma być wpisany, klient skanuje kod i jego treść zostaje wstawiona w to pole. Koniec tematu jeśli chodzi o czytnik ;)

  2. "program z bazy danych miałby wyszukać którego produktu ten kod dotyczy" - tutaj mamy temat związany z obsługą baz (jakiś SQL albo inny sposób, w jaki chcesz to rozwiązać). Totalnie nie ma to nic wspólnego z "kontrolką do czytnika kodów kreskowych"

  3. "mogę skorzystać tylko z tego zwykłego czytnika" w tych czytnikach nie ma niczego złego. A mają wielką zaletę - są mega proste w obsłudze - zarówno z poziomu użytkownika, jak i programisty (czy wspominałem już, że taki czytnik działa jak "zwykła" klawiatura? ;) )

  4. "Dopiero zaczynam swoją przygodę z Delphi więc też może nie potrafię tego do końca sprecyzować" - no to może (nawet nie na potrzeby forum, ale sam dla siebie) zastanów się dokładnie jak ten program ma działać. Jak sobie go rozbijesz na poszczególne składowe to łatwiej będzie Ci się skupić na pracy. Jedną z nich jest na pewno sam interface aplikacji. Druga to wspomniana baza danych - jej struktura oraz sposób komunikacji. Trzecia to właśnie ten czytnik (chociaż tu za dużo nie ma do robienia). Oczywiście pojawi się jeszcze parę innych wątków.

Jak już sobie to podzielisz i zaczniesz się zastanawiać nad poszczególnymi etapami, to pojawią sie na pewno jakieś trudności - wtedy pisz o konkretnych problemach do przeskoczenia.


edytowany 1x, ostatnio: cerrato
J1
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 lat
  • Postów:19
0

Zapytałeś co chcę konkretnie zrobić dlatego napisałem o tych bazach (i tak planuję ją zrobić w SQL). Ale dzięki za pomoc na pewno wezmę sobie te rady pod uwagę przy tworzeniu programu ;)

cerrato
Rozumiem. Jakbyś miał później jakieś problemy to śmiało pisz :)
woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1595
1

Gdybyś miał tam u siebie qrcode to daj znać podam Ci fajny komponent do delphi. Co prawda płatny ale nie jest drogi, a działa bez zarzutu nawet na kiepskich kamerach.

cerrato
a w cenie masz źródła, czy kupuje się w wersji skompilowanej? i co oznacza "nie jest drogi"?
woolfik
wersja dla pojedynczego developera bez źródeł 99$ ze źródłami trochę więcej. Ja akurat miałem do napisania apkę na tablet z windows 10 i obsługą kamery właśnie czytającej QRCode więc te 99$ wliczyłem sobie w koszty projektu ;)
J1
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 lat
  • Postów:19
0

Wiem, że trochę nie w temacie ale którą wersję Delphi i z jakiego źródła byście mi najbardziej polecili? :)

cerrato
Fajnie, jakbyś określił jeszcze budżet i przeznaczenie (hobbystyczne czy komercyjne zastosowanie)
J1
Robię to w ramach pracy inżynierskiej więc jako student budżet mam znikomy ;) A że programowanie skończyłem w technikum i Delphi nigdy nie ruszałem to dopiero zaczynam się uczyć (stąd tyle pytań) więc nie chciałbym na to wydawać więcej niż 500zł a wiem że sam czytnik to ok 250zł Ogólnie zamysł całości jest taki, aby dotyczyło to małych przedsiębiorstw. Dlatego też unikam skomplikowanych rozwiązań
cerrato
Najzwyklejszy czytnik na USB to ok. 100 zł (można nawet poniżej znaleźć - rzuć okiem na allegro). A co do zastosowań - pytam, bo Delphi posiada wersję darmową - ale trzeba spełnić pewne warunki. Ale to, co napisałeś raczej się załapuje do tej wersji darmowej. Poszukaj sobie "Delphi Starter Edition", albo "klon" Delphi tworzony przez społeczność - Lazarus
J1
No tutaj zdecydowanie wersja darmowa bo nie sądzę żebym z tym pomysłem podbijał rynek ;) Dzięki
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:3 minuty
  • Lokalizacja:Tuchów
  • Postów:12155
0

@John15: jak to krótą? Bieżącą, z oficjalnego źródła, czyli ze strony embarcadero. :P


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 1x, ostatnio: flowCRANE
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Gorlice
3

@John15 tylko Delphi Starter (czyli darmowa wersja) jest pozbawiona komponentów do obsług baz danych wiec musisz zainstalować coś zewnętrznego np. ZeosLib
https://sourceforge.net/projects/zeoslib/


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
J1
A mógłbyś podpowiedzieć które konkretnie elementy są konieczne do zainstalowania? Bo pobrałem ten plik i w folderze "src" widzę że są jakieś komponenty ale nie wiem które z nich są potrzebne do obsługi baz danych :/
babubabu
  • Rejestracja:około 13 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Łódź
  • Postów:648
1

To może lepiej lazarus? Ma wbudowaną obsługę SQLite i jest za darmo.

J1
Też już się nad tym zastanawiam
flowCRANE
@John15: i wymyśliłeś coś? ;)
cerrato
nie ma się nad czym zastanawiać - ściągnij, zainstaluj i zobac, czy Ci pasuje.Nie jest to ten komfort pracy co Delphi, ale w mojej ocenie całkowicie daje radę.
KA
@babubabu Delphi Starter też jest za darmo a z tego co czytałem nie interesuje go komercyjne wykorzystywanie więc nie ma problemu tylko zainstalować ZeosLib czyli 5 min. roboty.
babubabu
w komentarzu do posta wyżej napisał, że jednak jest jakiś problem dlatego zaproponowałem lazarusa.
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Gorlice
2

@John15 Teraz sprawdziłem z tamtego linka ZeosLib nie ma pakietów pod aktualne wersje Delphi trzeba pobrać z GitHub
https://github.com/svn2github/ZeosLib
Ogólnie wszystko instalujesz wszystkie pakiety z DelphiXE10.2 (czyli Tokyo) w jakiej kolejności tam gdzieś jest instrukcja w PDF albo w HTML
Jeżeli baza ma być lokalna to możesz wykorzystać właśnie bazę SQLite oprócz zainstalowania tych komponentów do działania potrzebna jest biblioteka sqlite3.dll, którą pobierzesz ze strony
https://www.sqlite.org/download.html
Oczywiście interesuje Cię Precompiled Binaries for Windows, bibliotekę umieszczasz w tym folderze co plik wykonywalny programu.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 2x, ostatnio: kAzek
CW
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:251
0

Nie używam SQLite, ale tak mi się skojarzyło "Yes SQLite can support multiple users at once. It does however lock the whole database when writing, so if you have lots of concurrent writes it is not the database you want (usually the time the database is locked is a few milliseconds - so for most uses this does not matter). But it is very well tested and very stable (and widely used) so you can trust it." https://stackoverflow.com/questions/5102027/can-sqlite-support-multiple-users.

edytowany 1x, ostatnio: cw
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Gorlice
0

@cw Tak, zgadza się tylko jeden użytkownik może w jednym czasie dokonywać zmian w bazie ale zważywszy na potrzeby pytającego to raczej nie jest przeszkodą więc po co wyciągać armatę na muchę.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
cerrato
Musisz uważać z polecaniem SQLite tutaj ;) Jak w innym wątku też takie coś poleciłem, to zostałem zjechany że to rozwiązanie mało profesjonalne, uczy złych nawyków, nie jest kompatybilne z "prawdziwymi" SQL'ami - lepiej zamiast tego chociażby Firebirda w wersji portable ;)
vpiotr
Ja polecam SQLite. Od jakichś 10 lat. Jak komuś nie pasuje to trudno.
cerrato
Ja akurat uważam podobnie i często z niego korzystam. Tak, jak napisał @kAzek - po co wyciągać armatę na muchy? Wiadomo, że bazy danych programu księgowego raczej na tym nie postawisz, ale do wielu drobniejszych zadań SQLite jest idealny.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)