Z cyklu #ciekawostkiWindows
Pewnie wielu z was wie i nie będzie to zaskoczenie ale dla mnie moment w którym to odkryłem (dzień wczorajszy) był momentem
Zapewne nieraz dziergając apke na windowsa rzucaliście komunikat użytkownikowi na ekran. Ogólnie w delphi są 3 podstawowe klasy do takich komunikatów:
Bez względu na to której użyjecie pod spodem delphi i tak wywoła klasyczne windows api i pojawią się okienka coś w stylu jak poniżej:
ShowMessage('Hurra');
MessageDlg('Hurra2', mtWarning, [mbOK], 0);
MessageBox(0, 'Hurra3', 'test', MB_ICONWARNING or MB_OK);
To jest jasne i oczywiste. Sam windows swoje komunikaty też wyświetla poprzez klasę
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox
ale wiecie co ... wystarczy kliknąć w ten komunikat i użyć skrótu Ctrl+C i zawartość tegoż message leci do schowka :D
no tego nie znałem :P
Efekt dla poszczególnych okien poniżej:
[Window Title]
Project2
[Content]
Hurra
[OK]
[Window Title]
Warning
[Content]
Hurra2
[OK]
---------------------------
test
---------------------------
Hurra3
---------------------------
OK
---------------------------
przepisywanie angielskich komunikatow pod koniec lat 90' w moim wypadku nie wchodzila w gre :P dlatego wlasnie wtedy sprobowalem i "zadziaao". W Battlestar Galactica mowili: "All this has happened before, and all this will happen again" - za 20 lat zapewne ktoś inny wyskoczy z takim odkryciem :P
Darmowe Delphi & C++ Builder Community Edition (10.4.2) wydane
https://blogs.embarcadero.com/delphi-cbuilder-community-editions-now-available-in-version-10-4-2/
https://www.embarcadero.com/products/delphi/starter/free-download
Delphi and C++Builder 10.4.2 Community Editions
https://blogs.embarcadero.com/delphi-cbuilder-community-editions-now-available-in-version-10-4-2/Nie wiem jak się zapatrujecie na rynek krypto-walut. Nikogo nie namawiam i wrzucam raczej jako ciekawostkę ale dla fanów delphi link poniżej:
https://www.coingecko.com/pl/waluty/delphi
Uzyskaj cenę, wykresy, wolumen, kapitalizację rynkowa, listę giełdową i inne Delphi ( ADEL ) .
https://www.coingecko.com/pl/waluty/delphiZ cyklu #Delphi
Dzięki artykułowi, który zamieścił @lofix:
Delphi Obsługa COM
dosłownie w kilka minut udało mi się zrobić sterowanie rotatorem:
Sterowanie rotatorem w Delphi
Są też sniffery programowe i hardwerowe które podsłuchują ruch między urządzeniem a komputerem. Co do prędkości - przecież RS232 jest szybsze od Ethernetu ze względu na szybszą odpowiedź - komunikacja jest bezpośrednia, protokół lekki, nie obsługuje pakietowania - wszystko to można, ale nie trzeba obsłużyć na poziomie własnego sterownika. Taki terminal płatniczy działa na RS232 potwierdza odbiór, przesyła sumy kontrolne a całość szyfruje. Za to licznik wejść do sklepu wysyła i nie interesuje go kto odbierze i czy jakiś bit się nie zakręci. Co do danych - też są zrzucane dane i to całkiem duże ilości - np. z centralek RCP. Sam standard umożliwia komunikację szybszą niż fast ethernet z użyciem odpowiedniego nadajnika odbiornika. Co prawda, jeśli chodzi o sieci czy magistralę urządzeń, to trzeba posiłkować się RS485 i używać protokołu co to obsłuży ale tutaj już chyba prościej iść w ethernet - chyba, że odległości urządzeń bez wzmacniaczy przekraczają możliwości Ethernetu. Generalnie haha, hihi że są urządzenia na COM - są dlatego, że to dla tego zastosowania najlepsze rozwiązanie. RS232 ma jakieś 60lat. TCP za to 50lat. Proponuję używać technologii jako narzędzia a nie jak punkt kultu.
Odpowiem na te wszystkie argumenty w ten sposób: Sprzęt wojskowy rządzi się swoimi prawami :]
Z cyklu: dlaczego #Delphi
Nie chciałbym na mikroblogu poruszać dyskusji na temat delphi, jednak zaletą tego języka jest fakt, że nie ma rzeczy, której ktoś już kiedyś w delphi nie robił. W związku z powyższym wystarczy tylko dobrze poszukać, pobrać gotowy komponent i voilà
procedure TfrmMain.cbxComChange(Sender: TObject);
begin
GPS.Com := cbxCom.ItemIndex + 1 ;
GPS.Active := True ;
end;
procedure TfrmMain.cbxBaudChange(Sender: TObject);
begin
GPS.BaudRate := StrToInt( cbxBaud.Items[ cbxBaud.ItemIndex ] ) ;
GPS.Active := True ;
end;
procedure TfrmMain.GPSPosition(Sender: TObject);
var
str : String ;
begin
str := Format( '%s %.4f %.4f', [ TimeToStr(Now), RadToDeg( GPS.Longitude ),RadToDeg( GPS.Latitude) ] ) ;
Memo1.Lines.Add( str ) ;
end;
Powyższy kod pozwala pobrać dane z COM w postaci NMEA i przekonwertować je do gotowych danych.
Brak wersji CE kończy się tak że nie ma juniorów danego języka. W Swifcie jest podobny problem. Znajomy zaczyna pracę jako tester automatyzujacy w Swifcie. Firmie wystarczy to że ma chęć nauczenia się Swifta. W Javie to raczej nie do pomyślenia
@Manna5: Tego nie wiem ... trzeba by poszperać w klasach delphiowych co się kryje pod każdą z tych metod ;)