1 2 3 4 5 6 7 8 9 |
TMiaStruttura = record case integer of 0 : (content : array[0..19] of char); 1 : ( primidue : array[0..1] of char; dalduealquattro : array[0..1] of char; cognome : array[0..15] of char; ) end; |
1 2 3 4 5 6 7 8 9 10 11 12 |
procedure TForm7.Button1Click(Sender: TObject); begin a.content := '0123456789ABCDEFGHIL'; ShowMessage(a.dalduealquattro); a.dalduealquattro := 'BB'; ShowMessage(a.content); end; |
thank’s to my self obviusly
Manage a System.string as buffer to copy content of string into a generic TStream:
1 |
Stream.Write(Str[1], StrLen * SizeOf(Str[1])); |
RadStudio 10.4 è una release che promette grandi cose in tutte le aree di questo fantastico ambiente di sviluppo. Facendo un primo giro di test abbiamo notato: Nelle applicazioni FMX abbiamo notato un notevole miglioramento del render dei caratteri Il nuovo sistema LSP (language server protocol) sembra aver reso l’IDE ancora più fluido e produttivo…
Leggi tutto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
TThreadedMsgEvent = class( TThread ) private FLock : TCriticalSection; FStr : TQueue<String>; FMemo : TMemo; function GetEvent : String; protected procedure Execute; override; public procedure AddEvent( aMsg : String ); constructor Create( AMemo: TMemo ); destructor Destroy; override; end; implementation { TThreadedMsgEvent } procedure TThreadedMsgEvent.AddEvent(aMsg: String); begin FLock.Acquire; FStr.Enqueue( FormatDateTime('DD/MM/YY HH:NN:SS.ZZZ',Now)+ ' : '+ aMsg ); FLock.Release; end; constructor TThreadedMsgEvent.Create(aMemo: TMemo); begin inherited Create(True); FreeOnTerminate := False; FOnMessage := ACallBack; FStr := TQueue<String>.Create(); FLock := TCriticalSection.Create; FMemo := aMemo; Resume; end; destructor TThreadedMsgEvent.Destroy; override; begin FreeAndNil( FStr ); FreeAndNil( FLock ); end; procedure TThreadedMsgEvent.Execute; begin while not Terminated do begin try if (FStr.Count > 0) then begin if Assigned( aMemo ) then begin TThread.synchronize( procedure begin FMemo.Lines.Add( GetEvent ); end; ); end; end; except end; TThread.Sleep(1); end; end; function TThreadedMsgEvent.GetEvent: String; begin FLock.Acquire; result := FStr.Dequeue; FLock.Release; end; |
From post found at: https://stackoverflow.com/questions/17506615/how-to-handle-log-in-a-threaded-manner-in-delphi
Delphi Linux … create a background process… daemon service stay tuned https://chapmanworld.com/2017/04/05/creating-a-linux-daemon-service-in-delphi/ http://blog.paolorossi.net/2017/07/11/building-a-real-linux-daemon-with-delphi-part-1-2/ http://blog.paolorossi.net/2017/09/04/building-a-real-linux-daemon-with-delphi-part-2/
WebSocket è una tecnologia che permette un interazione bidirezionale tra server e client, mi direte, nulla di nuovo con una connessione socket degli anni 90 facevamo la stessa cosa. Vero!!! La cosa che però rende questa tecnologia molto vantaggiosa è che per prima cosa, implementa degli standard nei protocolli di trasmissione e fruizione dei dati…
Leggi tutto