Pokazywanie postów oznaczonych etykietą Delphi. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Delphi. Pokaż wszystkie posty

Czasopismo pro dialog wszystkie numery w pdf

Witam,

Na stronie www:


można pobrać wszystkie numery pro dialog wydawnictwa pti (polskie towarzystwo informatyczne).


Gra kostka rubika - wymiary 3x3, 5x5 i 7x7

Witam,

W tym post-cie oddaje Wam grę napisaną przeze mnie: kostka rubika o wymiarach 3x3, 5x5 i 7x7 z różnymi dodatkowymi funkcjami w grze.



Kostka rubika:

Więcej tutaj
 






Gra kostka rubika wymiar 3x3, 5x5 i 7x7:
gra kostka rubika 3x3
gra kostka rubika 5x5
gra kostka rubika 7x7



Informatyczne książki wszech czasów top 20 z ostatnich 40 lat




Informatyczne książki wszech czasów top 20 z ostatnich 40 lat:








Kurs OpenGL grafika 3D, programowanie Delphi gra

W tym post-cie oddaje w Wasze ręce

BARDZO POWAŻNY!!!

kurs OpenGL - programowanie Delphi grafika 3D (CZ.4).
Na przykładzie stworzonej przeze mnie - gra w Delphi.
Szablon Gra zawiera Miasto w którym poruszają się samochody. Mamy sygnalizację świetlną, możemy włączać lampy w mieście, poruszać się po mieście, włączyć widok z góry, mamy ilość klatek na sekundę.

I najważniejsze mamy edytor Świata gra, w którym możemy dodawać drogę, sygnalizację na kolejnych skrzyżowaniach, dodawać budynki, drzewa, lampy itd. Miasto można rozbudowywać do nieskończonych rozmiarów.



Sterowanie:
1. Klawiatura;
2. F1 - światła;
3. F12 - widok z góry.



Więcej o OpenGL:
Grafika 3D
 



A tak to wygląda w praktyce - programowanie Delphi:



Pliki do pobrania:

1. Tylko exe (z edytorem), jak chcesz się bawić z naszym team-em odpowiedzialnym za grafika 3D w tworzeniu gry to zapraszamy (więcej tutaj: Patrz)

- Delphi Grafika 3D wszystkie kompilatory od wersji 7.0 (EXE)
-Kurs OpenGL grafika 3D [program należy rozpakować Zip-em]




Miłej zabawy - myślę że kurs OpenGL grafika 3D przypadnie Wam do gustu!


Kurs Grafiki 3D w Delphi programowanie w OpenGL program

W tym post-cie oddaje w Wasze ręce kurs programowanie w OpenGL (w cudzysłowie, gdyż w cz1 i cz2, było czyste OpenGL, teraz pokazuje alternatywne) w języku Delphi (CZ.3).
Jako, że najlepszą nauką (teorią) jest praktyka dostajecie program Winda.
Program - Winda porusza się po 5 piętrach, Możemy ustawiać natężenie ruchu pod windę na każdym piętrze osobno. +sterujemy też szybkością windy.





programowanie w OpenGL w ujęciu teoretycznym poniżej:
programowanie w OpenGL
 



A tak to wygląda w praktyce - Kurs Grafiki 3D:



Program do pobrania:
1. Źródła - Delphi wszystkie kompilatory od wersji 7.0 (kody źródłowe i exe) Kurs Grafiki 3D
-programowanie OpenGL




Miłej zabawy! - myślę że kurs grafiki 3D przypadnie Wam do gustu!
programowanie w OpenGL zawsze było bliskie mojemu sercu.


Nauka Grafiki 3D w Delphi kurs OpenGL program

W tym post-cie oddaje w Wasze ręce kurs OpenGL - nauka grafiki 3D w języku Delphi (CZ.2).
Jako, że najlepszą nauką (teorią) jest praktyka dostajecie program Układ Słoneczny. Uwaga: kod zawiera opis działania każdej funkcji.
Program - Układ Słoneczny zawiera Słońce wokół którego obraca się Ziemia, wokół której obraca się Księżyc - można włączać i wyłączać orbity. Mamy również obsługę światła.

Sterowanie:
1. Myszka do obracania trajektorii;
2. Włączenie i wyłączenie orbit.



Więcej o OpenGL w ujęciu teoretycznym poniżej:
kurs OpenGL
 



A tak to wygląda w praktyce - Nauka Grafiki 3D:



Program do pobrania:
1. Źródła - Delphi wszystkie kompilatory od wersji 7.0 (kody źródłowe i exe) Nauka Grafiki 3D
-kurs OpenGL




Miłej zabawy! - myślę że nauka grafiki 3D przypadnie Wam do gustu! programowanie w OpenGL zawsze było bliskie mojemu sercu dlatego kurs OpenGL jest dla Was.


Co to jest biblioteka DLL dynamiczna i statyczna, program biblioteki DLL Delphi

Co to jest biblioteka DLL?

DLL (Dynamic Link Library) - Wykonywalny moduł programu (pod program), pełniący określone funkcje. Biblioteki DLL są powszechnie wykorzystywane w systemie Windows. Nie są one wywoływane bezpośrednio przez użytkowników, lecz przez aktualnie uruchomione programy (program). Biblioteka DLL rozszerza funkcjonalność programu. Mogą one być dość proste - tak, jak biblioteka pozwalająca narysować trójwymiarową ramkę wokół okna dialogowego (CTL3DV2.DLL) lub bardzo złożone, jak na przykład w pełni rozbudowany interpreter języka Visual Basic (VBRUN400.DLL).
Biblioteka DLL projektowana jest zazwyczaj w ten sposób, żeby z zawartej w niej funkcji mogło korzystać kilka programów naraz (np. kod wielobieżny). System Windows zawiera wiele bibliotek DLL wykorzystywanych przez aplikację (wystarczy poszukać w folderze \WINDOWS\SYSTEM plików z rozszerzeniami .DLL). Aplikacje mogą też mieć własne biblioteki, przechowywane w folderze instalacyjnym danego programu lub w folderze \WINDOWS\SYSTEM.
W systemie DOS nigdy nie istniał żaden oficjalny mechanizm pozwalający na dynamiczne łączenie (dynamiczna DLL) i współdzielenie zasobów w czasie rzeczywistym. Co prawda tworzono w tym celu programy ISR i TSR, ale takie działania nie były nigdy popierane przez Microsoft i często doprowadzały do konfliktów programowych. Niestety również w świecie bibliotek DLL pojawiają się konflikty.


Tworzymy komplet bibliotek DLL (statyczna DLL i dynamiczna) w Delphi 2010.



Opis:
1. DllF - program z którego uruchamiamy wszystkie 3 bliblioteki DLL.
  a) - funkcja SayHello, pobrana statycznie z pierwszej biblioteki DLL o nazwie DllFull.dll
  b) - funkcja DoSomethingReallyCool, pobierana statycznie również z pierwszej biblioteki DLL o nazwie DllFull.dll
  c) - funkcja ShowForm, pobrana w sposób statyczny z trzeciej biblioteki DLL o nazwie DllFull3.dll

  d)

- Na skutek naciśnięcia przycisku BitBtn3, ładuje się DYNAMICZNIE biblioteka DllFull2.dll (DLL dynamiczna) z funkcją SayHelloDyn
  - - załadowanie biblioteki dynamicznie
  - - sprawdzenie czy biblioteka się załadowała
  - - pobranie z załadowanej biblioteki funkcji SayHelloDyn
  - - jeśli załadowane wykonaj funkcje
  - - zwolni bibliotekę załadowaną dynamicznie z pamięci.


Przykładowa biblioteka DLL jej konstrukcja, jest przedstawiona poniżej - biblioteka DllFull2.dll:

Każda biblioteka DLL zaczyna się od:
library i jej nazwy.

Na samym końcu mamy:
exports, w którym podajemy jakie funkcje biblioteka DLL ma przekazać na zewnątrz do innych programów.


Różnica między biblioteką ładowaną w sposób statyczny (statyczna DLL) a dynamiczny (dynamiczna DLL), polega na tym, że biblioteka DLL dynamiczna ładujemy do pamięci program-u wtedy gdy zaistnieje taka potrzeba, zaś statyczna DLL jest już ładowana przy kompilacji program-u!



Wszystkich zainteresowanych chcących pogłębić wiedzę o bibliotekach DLL, np. o stworzenie jednej biblioteki DLL, która jest wykorzystywana zarówno przez Delphi jak i C++ Builder zapraszam do:

Międzyplatformowe dynamiczne biblioteki DLL



Pliki do pobrania:
1. Źródła i exe:
-pobierz
2. EXE:
-pobierz



Odczyt parametrów procesora CPU Intel i AMD - program numer seryjny

W tym post-cie, oddaje w Wasze ręce - szybki użyteczny program podający pokaźną ilość parametrów procesora CPU Intel i AMD - pobieramy numer seryjny.



Poniżej gotowy program odczyt (w tym sumer seryjny) parametrów procesora CPU Intel i AMD do uruchomienia:



Źródła programu - numer seryjny CPU: Program parametry procesora Intel AMD



Arytmetyka interwałowa wielomianu, metoda matematyka program

W tym post-cie, oddaje w Wasze ręce program dotyczący zagadnienia matematyka (metoda matematyczna) i działu algorytmy, pt.: "Arytmetyka Interwałowa wielomianu - program w Delphi"




Arytmetyka Interwałowa (metoda matematyczna):
Arytmetyka Interwałowa (jęz. ang)

 



Poniżej gotowy program (Arytmetyka interwałowa wielomianu) do uruchomienia:



Program dostarczam tylko w wersji wykonywalnej exe.
Program źródłowy nie jest udostępniany - zapytaj.


Jak odczytać numer seryjny płyt CD i DVD - program Delphi

W tym post-cie, pokaże jak napisać program - jak odczytać numer seryjny płyt CD i DVD w Delphi (program do serwisów komputerowych), do użytku komercyjnego.
Certyfikowany przez firmę: "KOMPUTERING" (https://www.komputering.pl/)

Zadaniem programu jest zebranie wszystkich informacji z płyt cd i dvd napisanym w Delphi.
Co wyróżnia program - jak odczytać numer seryjny płyt CD i DVD:
1. Pobranie numeru seryjnego płyty;
2. Mechaniczna obsługa napędów.



Poniżej gotowy program w Delphi numery seryjne CD i DVD do uruchomienia:



Metoda węgierska Zagadnienie przydziału Algorytm węgierski Matematyka

W tym post-cie, oddaje w Wasze ręce kurs dotyczący tematu algorytm węgierski z działu matematyka, pt.: "Zagadnienie przydziału - metoda węgierska"







Algorytm Węgierski - metoda węgierska:
Algorytm węgierski
i
Metoda wegierska (jęz. ang)

 



Poniżej gotowy program - algorytm węgierski do uruchomienia:



Źródła programu na zagadnienie przydziału: Metoda węgierska - matematyka



Kurs OpenGL w Delphi Grafika 3D - program

W tym post-cie oddaje w Wasze ręce kurs programowania OpenGL w języku C++ (CZ.1).
Jako, że najlepszą nauką (teorią) jest praktyka dostajecie kody źródłowe programu Łodzi Podwodnej. Uwaga: kod jest bardzo staranie opisany w źródłach, w zasadzie linia po linii.
Łódź podwodna porusza się w wodzie, można nią sterować. Ma wysuwany peryskop i obracające się śruby - można też wynurzyć się na powierzchnie i z powrotem zanurzyć.

Sterowanie:
1. Strzałka góra i dół - łódź płynie do przodu i do tyłu;
2. "i" i "u" - przybliżenie i oddalenia;
3. "w" i "q" - na powierzchnie i zanurzenie;
4. "r" i "t" - wysuń i schowaj peryskop.


Jako, że jest to mój blog, postanowiłem się z Wami podzielić moim drugim hobby jakim jest modelarstwo.
Zainspirowany sklejaniem modeli plastikowych i kartonowych wykonałem sobie ów program.
Obecnie sklejam u-boota gdzie możecie zobaczyć obecne stadium jego rozwoju - tylko ten ciągły brak czasu, :).

MÓJ U-BOOT - zdjęcia 1

MÓJ U-BOOT - zdjęcia 2

No ale to tylko taka dygresja, zaczynamy konkrety.



Więcej o OpenGL:
tutaj
 



A tak to wygląda w praktyce:



Pliki do pobrania:
1. Źródła - C++ Builder wszystkie kompilatory od wersji 6.0 (kody źródłowe i exe)
-pobierz




Miłej zabawy!


DLL z Visual Studio do Delphi 7 i C++

W tym post-cie opiszę jak napisać bibliotekę DLL w Visual Studio: 2008 i 2010, a następnie używać ją natywnie w Delphi i C++ Builder.
W zasadzie dzięki mojemu sposobowi bibliotekę DLL można używać w każdym narzędziu programistycznym tak jakby była to biblioteka DLL napisana w tym właśnie narzędziu programistycznym.

Do tworzenia między platformowej biblioteki DLL wykorzystam bibliotekę Unmanaged Exports.



Zaczynamy od kodu dla VISUAL STUDIO 2008 (jest to przykład dla szablonu [templates]):

Plik szablonu (nierozpakowany w wersji zip) umieszczamy w katalogu:
C:\Users[Użytkownicy]\Nazwa użytkownika\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual C#\tutaj

Natomiast szablon pobieramy z adresu WWW:
pobierz

Teraz możemy w Visual Studio 2008 wybrać:
File->New->Project->Visual C#->My Templates->UnmanagedExportLibrary
 



KODY BIBLIOTEKI DLL Z WYKORZYSTANIEM SZABLONU:  


KODY BIBLIOTEKI DLL Z WYKORZYSTANIEM PACKAGE MANAGER CONSOLE: [Instrukcja jak zainstalować PACKAGE MANAGER CONSOLE - tutaj]


Przykład użycia C++ BUILDER 2010:


Przykład użycia DELPHI 7:


Uwaga - jak używasz Visual Studio 2008 i mojego sposobu, biblioteka DLL po kompilacji będzie osobno dla wersji 32 bitowej i 64 bitowej w odpowiednich katalogach i tylko z nich ją należy pobierać.

Uwaga2 - jak używasz Visual Studio 2010 i mojego sposobu, biblioteka DLL po kompilacji będzie zawsze jedna w wersji zależnej od ustawień dla projektu biblioteki DLL [PATRZ TUTAJ].

Pamiętaj VISUAL STUDIO umożliwia pisanie natywnego kodu 32 i 64 bitowego.
Jednak moje dema w Delphi 7 i nawet w C++ Builder 2010 umożliwiają pisanie natywnych aplikacji tylko 32 bitowych.
Dlatego należy dla nich używać tylko 32 bitowej biblioteki DLL.
Dopiero od RAD Studio XE (C++ Builder XE) możliwe jest pisanie natywnego kodu 64 bitowego.
Ale o tym innym razem w innym post-cie (poświęconym tylko opisaniu produktów firm: Borland, CodeGear i Embarcadero).



Pliki do pobrania:
1. Źródła - C# (VISUAL STUDIO 2008) (kody źródłowe DLL)
-pobierz
2. Źródła - C# (VISUAL STUDIO 2010) (kody źródłowe DLL)
-pobierz
3. DEMO - C++ Builder 2010 (z DLL od VS 2008)
-pobierz
4. DEMO - C++ Builder 2010 (z DLL od VS 2010)
-pobierz
5. DEMO - DELPHI 7 (z DLL od VS 2008)
-pobierz
6. DEMO - DELPHI 7 (z DLL od VS 2010)
-pobierz



GITHUB - ŹRÓDŁA WSZYSTKICH PLIKÓW:
Patrz tutaj



Ostatnia niedziela miesiąca czas zimowy i letni Algorytm

W tym post-cie opiszę jak napisać algorytm i program dla platformy NET Framework w Delphi PRISM i platformy WinAPI w DELPHI RAD STUDIO, który umożliwia pobranie ostatniej niedzieli miesiąca dla wybranej daty oraz który umożliwia określenie czy data jest w czasie zimowym czy letnim.
Program i algorytm wykonany jest w języku: Delphi PRISM dla platformy NET Framework, oraz w DELPHI RAD STUDIO dla platformy WinAPI.

KOD ŹRÓDŁOWY DELPHI PRISM:

Opis:

1. method MainForm.OstatniaNiedzielaMiesiaca(rok,miesiac:string):string; - ALGORYTM;
2. method MainForm.button1_Click(sender: System.Object; e: System.EventArgs); - PRZYCISK OBSŁUGI ALGORYTMU;
3. method MainForm.button2_Click(sender: System.Object; e: System.EventArgs); - PRZYCISK OBSŁUGI ALGORYTMU CZAS ZIMOWY & CZAS LETNI I SAM ALGORYTM Z UŻYCIEM ALGORYTMU OSTATNIA NIEDZIELA MIESIĄCA.



KOD ŹRÓDŁOWY DELPHI RAD STUDIO:

Opis:

1. function OstatniaNiedzielaMiesiaca(rok, miesiac:string):string; - ALGORYTM;
2. procedure TForm1.Button1Click(Sender: TObject); - PRZYCISK OBSŁUGI ALGORYTMU;
3. procedure TForm1.Button2Click(Sender: TObject); - PRZYCISK OBSŁUGI ALGORYTMU CZAS ZIMOWY & CZAS LETNI I SAM ALGORYTM Z UŻYCIEM ALGORYTMU OSTATNIA NIEDZIELA MIESIĄCA.


Pliki do pobrania:
1. Źródła - Delphi PRISM (kody źródłowe algorytmu)
-pobierz
2. Źródła i exe - Delphi PRISM (exe i kody źródłowe algorytmu i programu demo)
-pobierz
3. Źródła - DELPHI RAD STUDIO (kody źródłowe algorytmu)
-pobierz
4. Źródła i exe - DELPHI RAD STUDIO (exe i kody źródłowe algorytmu i programu demo)
-pobierz



A tutaj podaje link do ciekawego internetowego kalendarza, abyście mogli sprawdzić działanie mojego algorytmu:
Patrz tutaj



Miłej zabawy!


Program sklep z Filmami Muzyką Oprogramowaniem - Delphi

Miło mi jest poinformować, że prace nad tym post-em dobiegły końca!!!

Udostępniam do Waszej dyspozycji tak jak wszystko na moim blogu [darmowe do zastosowań komercyjnych] program KatMPBKatalog, do prowadzenia sklepów internetowych i innych sklepów, sprzedających: płyty z filmami, płyty z oprogramowaniem komputerowym i płyty muzyczne. Program jest wraz z kodami źródłowymi i można go dowolnie wykorzystywać. Jest doskonałą nauką jak tworzyć swoją pierwszą komercyjną aplikację.

Pamiętaj, aby przed uruchomieniem programu KatMPBKatalog pobrać i uruchomić program BDEInstall, który zainstaluje program BDE konieczny do prawidłowego działania programu KatMPBKatalog. Pamiętaj także, że gdy instalujesz program BDE musisz mieć prawa do instalacji programów w systemie operacyjnym, gdy nie jesteś zalogowany jako administrator systemu.

Pobierz - BDEInstall.exe

Więcej o BDE i o moim programie BDEInstall w innym moim post-cie poświęconym tylko temu zagadnieniu.
Borland Database Engine Delphi


Pliki do pobrania:
1. Moja Pierwsza Komercyjna Aplikacja (exe)
-pobierz
2. Moja Pierwsza Komercyjna Aplikacja (kody źródłowe)
-pobierz


Technologia: WinAPI;
Język: Delphi 7.

Miłej zabawy.

W następnym post-cie przedstawię drugi program komputerowy, który również można traktować jako pierwszą komercyjną aplikację, lecz tym razem przy użyciu nowszej technologii i nowszego języka programowania (Technologia: .NET; Język: C#). Program będzie miał swój własny instalator, wykonany w WiX: WiX opiszę w kolejnym post-cie po zaprezentowaniu drugiej aplikacji.


Programowa instalacja BDE - Borland Database Engine

W tym post-cie opiszę jak ręcznie z kodu programu zainstalować BDE (Borland Database Engine).
Przykład będzie bazował na Delphi 7, ale z powodzeniem możemy też to zrobić w C++ Builder 6.0.

Co to jest BDE?


BDE (Borland Database Engine), w skrócie to zbiór bibliotek DLL i funkcji API, umożliwiających w dość prosty sposób komunikowanie się z systemami baz danych: Paradox, dBASE, FoxPro, MS Access i tekstowymi bazami danych. Przeznaczony w głównej mierze dla starszych produktów: Borland Delphi (np. Delphi 7) i Borland C++ Builder (np. C++ Bulider 6.0).
Więcej: patrz tutaj (język ang.)
i
tutaj (język ang.).
 

Uwaga - często na forach jest napisane, że licencja firmy Embarcadero (dawniej Borland), nie zezwala na ręczne programowe instalowanie tego narzędzia.
W Mojej opinii licencja Borland, zezwala na ręczne instalowanie tego narzędzia - oczywiście, gdy ma się licencję na produkt, np. Delphi 7 Professional. Ja taka licencję posiadam i z wiązku tym źródła do programu, które Wam udostępniam są dla Was darmowe do zastosowań komercyjnych.
Plik: bdeinst.dll, pochodzi z mojej licencji i służy do instalowania BDE, więc możecie śmiało korzystać z mojego komercyjnego programu.
Chcąc jednak pisać własne komercyjne oprogramowanie musicie mieć własną licencje, np. na Delphi 7 Professional.
Na potwierdzenie moich słów zamieszczam jeden z wielu linków, pokazujący że inne firmy programistyczne też tak właśnie myślą.
Patrz tutaj.
Jak się z tym nie zgadzasz wypowiedź sie na moim blogu!


Poniżej źródło wspomnianego programu:

Opis:

1. Startuje forma (zdarzenie OnShow);
2. Sprawdzamy, czy BDE jest zainstalowane za pomocą funkcji: BDEZainstalowane;
3. Jak jest to piszemy, że jest zainstalowane i następnie w zdarzeniu OnActivate formy zamykamy program;
4. Gdy nie jest pytamy się czy zainstalować;
5. Jak odpowiedź przecząca zamykamy tak samo program jak ma to miejsce, gdy BDE jest zainstalowane;
6. Jak odpowiedź twierdząca to uruchamiamy zewnętrzny program regsvr32.exe, który służy do uruchomienia biblioteki dll: bdeinst.dll, która służy do instalacji BDE;
7. Na końcu zamykamy program tak samo jak miało to miejsce w innych przypadkach;
8. Uwaga - gdy kod błędu podczas instalacji jest mniejszy niż 33 informujemy, że instalacja się nie powiodła;
9. Uwaga 2 - pamiętajmy o dołączeniu unit-ów: BDE i ShellApi;
10. Uwaga 3 - Pamiętaj, że gdy instalujesz program BDE musisz mieć prawa do instalacji programów w systemie operacyjnym, gdy nie jesteś zalogowany jako administrator systemu.


Pliki do pobrania:
1. Źródła DELPHI 7 (exe i kody źródłowe)
-pobierz



Miłej zabawy.
Ten program wykorzystamy w następnym post-cie, gdzie przedstawię inny program wraz z kompletem źródeł do Delphi 7.
Będzie to program do obsługi sklepu z: Filmami, Muzyką i Oprogramowaniem Komputerowym.
Program będzie przykładem jak zacząć po raz pierwszy tworzyć APLIKACJE KOMERCYJNE, pt.: "Moja Pierwsza Komercyjna Aplikacja".





Przykład zastosowania:
BDE w Delphi program


Skrypt SQL w ADOQuery z wieloma instrukcjami - C++ Builder i Delphi

W tym post-cie, zademonstruję funkcję za pomocą, której można wykonywać skrypty SQL składające się z dowolnej liczby instrukcji.

Funkcję tę można używać w Delphi od wersji 7 do najnowszej (w chwili pisania post-u) czyli Delphi XE 2, oraz w C++ Builder od wersji 6.0 do najnowszej (w chwili pisania post-u) czyli C++ Builder XE2. W zasadzie we wcześniejszych wersjach też, ale testowałem tylko od Delphi 7.0 i od C++ Builder 6.0.

Domyślnie komponenty ADOQuery, ADOCommand nie umożliwiają wykonywania wielu instrukcji SQL rozdzielonych średnikami, można wykonywać tylko jedną instrukcję SQL. Moja funkcja to umożliwia, jest napisana w Delphi 7 i wstawiona do biblioteki DLL, aby w innych językach programowania było można jej też używać.

Po omówieniu funkcji i biblioteki DLL, zademonstruję jak ją używać w programie napisanym w Delphi 7.0 i programie napisanym w C++ Builder 2007 we współpracy z systemem baz danych SQL Server 2008R2 Express. Natomiast w kolejnym post-cie (tego tematu), zademonstruję tę samą bibliotekę DLL, ale kompatybilną ze znakami UNICODE i systemami baz danych obsługującymi znaki UNICODE, wraz z przykładem użycia w Delphi 2010 i C++ Builder 2010.

Biblioteka DLL z funkcją, może być używana z wszystkimi dostępnymi systemami baz danych, które są obsługiwane przez komponent ADOQuery i dla który można skonstruować ConnectionString.

Więcej o konstruowaniu ConnectionString, można poczytać w linku poniżej:
Patrz tutaj (język ang.).


Do tego post-a załączam również kompletne pliki źródłowe biblioteki DLL, pliki źródłowe z przykładem użycia tej biblioteki DLL (z funkcją do wykonywania skryptów SQL) w Delphi 7.0 i C++ Builder 2007.

Ważne jest to, że aby używać tej funkcji zaszytej w bibliotece DLL, nie musicie nic o niej widzieć, poza znajomością jej nagłówka, co więcej wszystkie potrzebne komponenty, w tym TADOQuery i TADOConnection są wewnątrz niej tworzone dynamicznie.

Zaczynamy od kodu biblioteki DLL (wewnątrz funkcja do wykonywania skryptów SQL), następnie omówię jej najważniejsze aspekty, a na koniec przedstawię sposób jej używania w Delphi i C++ Builder.




Co do samej biblioteki DLL, tylko jedna uwaga pominąłem moduł ShareMem, który jest potrzebny gdy używamy biblioteki DLL w wielu językach programowania, a nagłówek funkcji ma w sobie parametry string.
Jak widzicie, ja nie użyłem tego modułu, a biblioteka DLL jest używana w wielu językach programowania.
Jak to możliwe? - po prostu w nagłówku funkcji użyłem zmiennych PChar, zamiast string-ów. Dzięki temu rozwiązałem bardzo poważny problem. Gdy ładujemy bibliotekę DLL dynamicznie i dynamicznie ją zwalniamy, czyli używamy jej w działającym programie w zależności od potrzeby, wtedy moduł ShareMem, nie może być dołączony do biblioteki DLL, ponieważ po zwolnieniu biblioteki DLL wyskakuje wyjątek (JEST TO OGÓLNIE PRZYJĘTY NIENAPRAWIONY BUG, przynajmniej ja tak myślę i tak wyczytałem w wielu źródłach). Zatem moje rozwiązanie z PChar i wieloma językami programowania jest jedyne możliwe (przynajmniej ja tak myślę).

Omówmy teraz samą funkcję, w zasadzie sam nagłówek funkcji oraz kod w ciele funkcji, który odpowiada za dynamiczne używanie komponentów ADO w bibliotekach DLL i wątkach. Resztę ciała funkcji zostawiam Wam do analizy.

Nagłówek:

function Wykonaj_Skrypt_SQL_W_ADOQuery_DELPHI_C(
connection_string_Delphi: PChar;
skryptSQL_Delphi: PChar;
pokazuj_instrukcje_SQL: Bool):Bool; stdcall;


Pierwszy parametr to wspomniany wcześniej ConnectionString,
drugi to skrypt SQL,
trzeci to parametr odpowiedzialny za decyzję, czy podczas wykonywania skryptu mają pojawiać się po kolei w ShowMessage wykonywane instrukcje.
Funkcja zwraca wartość true jeśli skrypt SQL wykonał się w całości, w zasadzie jeśli transakcja wykonała sie w całości, lub false jeśli skrypt SQL nie wykonał się w całości, transakcja zostanie cofnięta.

Ważne jest to, aby pamiętać, że nie wszystkie systemy baz danych odsługują transakcje lub obsługują transakcje częściowo.
Przykład: MySQL, nie obsługuje transakcji DDL, nie ma problemu z DML.
Czyli wykonując skrypt SQL za pomocą mojej funkcji z biblioteki DLL, gdy najpierw utworzymy tabelę, potem do niej wstawimy wierz i kolejny wierz, ale ten drugi wierz wstawimy z takim samym kluczem głównym, moja funkcja wykona ROLLBACK, cofnie transakcje, bo nie można wstawić dwa razy wiersza z tym samym kluczem głównym, ale utworzona tabela pozostanie, gdyż MySQL nie wspiera transakcji DDL, wiersz pierwszy zostanie cofnięty przez ROLLBACK, czyli de facto będziemy mieli pusta tabelę. Problem ten nie wystąpi np. w SQL Server - przy opisanym schemacie postępowania nie będziemy mieli nawet tabeli.

Gdy Wasz skrypt SQL obojętnie jakiego systemu baz danych dotyczy nie zawiera instrukcji odpowiedzialnych za wykonywanie transakcji moja funkcja już o to zadba.
Gdy Wasz skrypt SQL obojętnie jakiego systemu baz danych dotyczy zawiera instrukcje odpowiedzialne za wykonywanie transakcji zostaną one uwzględnione i cały skrypt SQL zostanie opatrzony jedną transakcją nadrzędną.

Poniższy kod jest wymagany, gdy używamy komponentów ADO wewnątrz bibliotek DLL lub wewnątrz wątków (Wątki nie są przedmiotem tego posta).

//KOD wymagany, dla używania komponentów ADO, w bibliotekach DLL i w wątkach.
try
OleInitialize(nil);
komponentADOQuery^ := TADOQuery.Create(nil);
komponentADOQuery^.Connection := connection^;
komponentADOQuery^.Connection.LoginPrompt := False; //opcja
komponentADOQuery^.Connection.ConnectionString:= connection_string^;
//KONIEC KODU WYMAGANEGO

...

//KOD wymagany, dla używania komponentów ADO, w bibliotekach DLL i w wątkach.
komponentADOQuery^.Connection.Close;
//KONIEC KODU WYMAGANEGO

...

//KOD wymagany, dla używania komponentów ADO, w bibliotekach DLL i w wątkach.
finally
try
connection^.Free;
komponentADOQuery^.Free;
except
;
end;
try
OleUninitialize;
except
;
end;
end;
//KONIEC KODU WYMAGANEGO


No i nadszedł czas na użycie opisanego powyżej kodu.

Przykład DELPHI 7.0:




Przykład C++ Builder 2007:




Podaję również przykład ConnectionString dla połączenia z SQL Server 2008R2 Express z instancją bazy danych SQLExpress i autoryzacją ustawioną na autoryzację Windows.
Ten ConnectionString korzysta z baz danych temodb, czyli wszystkie skrypty SQL wykonane przy pomocy mojego programiku, np. tworzące tabele zostaną automatycznie "unieważnione" po restarcie serwera SQL Server 2008R2 Express. Tabela tempdb jest czyszczona przy każdym uruchamianiu serwera baz danych SQL Server.

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tempdb;Data Source=.\SQLExpress


Pliki do pobrania:
1. Źródła biblioteki DLL
-pobierz
2. Źródła przykładowego programu w Delphi 7.0 korzystającego z biblioteki DLL
-pobierz
3. Źródła przykładowego programu w C++ Builder 2007 korzystającego z biblioteki DLL
-pobierz
4. Tylko plik wykonywalny przykładowego programu w Delphi 7.0 korzystającego z biblioteki DLL
-pobierz
5. Tylko plik wykonywalny przykładowego programu w C++ Builder 2007 korzystającego z biblioteki DLL
-pobierz
6. Źródła przykładowego programu w Delphi 2007 korzystającego z biblioteki DLL i źródła biblioteki DLL w Delphi 2007
-pobierz



Pomagali: Arkadiusz Dymek, Edek Pienkowski, Zenek Bóbr, Marek Borowski, Piotr Sietnik, Michoo - więcej -> Skrypt SQL w ADOQuery z wieloma instrukcjami


Zamiana liczby na słowa kwota słownie algorytm program Delphi PHP

W tym post-cie, zademonstruję program pokazujący jak dokonać zamiany liczby na słowa w Delphi i PHP - kwota słownie.

Przedstawię algorytm, udostępnię pliki źródłowe programów z funkcją zamieniającą liczbę na słowa Delphi i PHP - kwota słownie oraz udostępnię także przykładowe programy w tych językach programowania realizujące zamianę liczby na słowa (

liczby na słowo

) - w ujęciu księgowym i finansowym.

W internecie jest wiele przykładów na wspomnianą zamianę.
Ja demonstruję "zbitkę" skondensowanej wiedzy jaką znalazłem na różnych grupach dyskusyjnych i stronach internetowych oraz blogach.

"Przemieliłem" tę wiedzę i stworzyłem program, który jest komercyjnie używany przez moją firmę KatMPBSoft, zarówno w aplikacjach desktopowych jak i w aplikacjach internetowych.

Algorytm zamiana liczby na słowa co ważne jest też wolny od literówek.





Link do aplikacji desktopowej w wersji demo zamieszczam poniżej:
 - Oprogramowanie medyczne do rejestracji pacjentów - strona internetowa w wersji polskiej
 - Program do rejestracji pacjentów - strona internetowa w wersji angielskiej

W aplikacji ALFA algorytm służy do zamiany kwoty pieniężnej na kwotę pieniężną słowną dla faktur i rachunków.

Link do aplikacji internetowych zamieszczam poniżej:
 - TZ24.NET - wersja polska z wstawkami angielskimi  &

W aplikacji internetowej TZ24.NET algorytm służy do zamiany kwoty pieniężnej na kwotę pieniężną słowną dla wydruku pocztowego.



Poniżej mój algorytm - zamiana liczby na słowa w aplikacji desktop:





Sposób użycia:


Programy do pobrania:
1. Źródła funkcji z algorytm zamiana liczby na słowa -

Delphi kwota słownie


-pobierz
2. Źródła programu algorytm zamiana liczby na słowa -

Delphi kwota słownie


-download
3. Tylko plik wykonywalny program wykorzystujący funkcję zamiana liczby na słowa -

Delphi kwota słownie


-here
4. Funkcja z algorytm zamiana

liczby na słowo

(UTF-8)
- wkrótce
5. Przykładowy program w (UNICODE) - Delphi kwota słownie
- wkrótce
6. Program w (UNICODE) - Delphi kwota słownie
- wkrótce



Poniżej wykonany przeze mnie algorytm - zamiana liczby na słowa w PHP (każda wersja):





Sposób użycia:


Pliki do pobrania:
1. Source program z algorytmem - zamiana liczby na słowo -

kwota słownie PHP


pobierz
2. Source programu wykorzystującego funkcję - zamiana liczby na słowo -

kwota słownie PHP


download






Każdy mój post, dotyczący w mniejszym lub większym stopniu programowania internetowego jest zawsze kompatybilny z IE od 7, z Firefox od 3.6.3, z Opera od 9.63, z Safari od 5.x i z Chrome od wersji aktualnej