@@ -32,14 +32,14 @@ TInlineKeyboard = class;
3232 TInlineQueryEvent = procedure (ASender: TObject; AnInlineQuery: TTelegramInlineQueryObj) of object ;
3333 TChosenInlineResultEvent = procedure (ASender: TObject;
3434 AChosenInlineResult: TTelegramChosenInlineResultObj) of object ;
35- TPreCheckoutQueryEvent = procedure (ASender: TObject;
36- APreCheckoutQuery: TTelegramPreCheckOutQuery) of object ;
37- TSuccessfulPaymentEvent = procedure (ASender: TObject;
38- ASuccessfulPayment: TTelegramSuccessfulPayment) of object ;
39- TMessageReactionEvent = procedure (ASender: TObject;
40- AMessageReaction: TTelegramMessageReactionUpdated) of object ;
41- TMessageReactionCountEvent = procedure (ASender: TObject;
42- AMessageReactionCount: TTelegramMessageReactionCountUpdated) of object ;
35+ TPreCheckoutQueryEvent = procedure (ASender: TObject;
36+ APreCheckoutQuery: TTelegramPreCheckOutQuery) of object ;
37+ TSuccessfulPaymentEvent = procedure (ASender: TObject;
38+ ASuccessfulPayment: TTelegramSuccessfulPayment) of object ;
39+ TMessageReactionEvent = procedure (ASender: TObject;
40+ AMessageReaction: TTelegramMessageReactionUpdated) of object ;
41+ TMessageReactionCountEvent = procedure (ASender: TObject;
42+ AMessageReactionCount: TTelegramMessageReactionCountUpdated) of object ;
4343
4444 { TStringHash }
4545
@@ -108,13 +108,16 @@ TKeyboardButton = class(TJSONObject)
108108 private
109109 function GetRequestContact : Boolean;
110110 function GetRequestLocation : Boolean;
111+ function GetStyle : String;
111112 function Gettext : String;
112113 procedure SetRequestContact (AValue: Boolean);
113114 procedure SetRequestLocation (AValue: Boolean);
115+ procedure SetStyle (const AValue: String);
114116 procedure Settext (AValue: String);
115117 public
116118 constructor Create(const AText: String);
117119 property text: String read Gettext write Settext;
120+ property Style: String read GetStyle write SetStyle; // Optional
118121 property RequestContact: Boolean read GetRequestContact write SetRequestContact; // Optional
119122 property RequestLocation: Boolean read GetRequestLocation write SetRequestLocation; // Optional
120123 end ;
@@ -142,16 +145,19 @@ TInlineKeyboardButton = class(TJSONObject)
142145 function Getcallback_data : String;
143146 function Getswitch_inline_query : String;
144147 function Getswitch_inline_query_current_chat : String;
148+ function GetStyle : String;
145149 function Gettext : String;
146150 function Geturl : String;
147151 procedure Setcallback_data (AValue: String);
152+ procedure SetStyle (AValue: String);
148153 procedure Setswitch_inline_query (AValue: String);
149154 procedure Setswitch_inline_query_current_chat (AValue: String);
150155 procedure Settext (AValue: String);
151156 procedure Seturl (AValue: String);
152157 public
153158 constructor Create(const AText: String);
154159 property text: String read Gettext write Settext;
160+ property Style: String read GetStyle write SetStyle;
155161 property url: String read Geturl write Seturl;
156162 property callback_data: String read Getcallback_data write Setcallback_data;
157163 property switch_inline_query: String read Getswitch_inline_query write Setswitch_inline_query;
@@ -454,10 +460,10 @@ TTelegramSender = class
454460 FOnReceiveEditedChannelPost: TMessageEvent;
455461 FOnReceiveEditedMessage: TMessageEvent;
456462 FOnReceiveInlineQuery: TInlineQueryEvent;
457- FOnReceiveMessage: TMessageEvent;
458- FOnReceiveMessageReaction: TMessageReactionEvent;
459- FOnReceiveMessageReactionCount: TMessageReactionCountEvent;
460- FOnReceiveMyChatMemberUpdated: TChatMemberEvent;
463+ FOnReceiveMessage: TMessageEvent;
464+ FOnReceiveMessageReaction: TMessageReactionEvent;
465+ FOnReceiveMessageReactionCount: TMessageReactionCountEvent;
466+ FOnReceiveMyChatMemberUpdated: TChatMemberEvent;
461467 FOnReceivePreCheckoutQuery: TPreCheckoutQueryEvent;
462468 FOnReceiveSuccessfulPayment: TMessageEvent;
463469 FUpdate: TTelegramUpdateObj;
@@ -528,14 +534,14 @@ TTelegramSender = class
528534 procedure DoReceiveCallbackQuery (ACallback: TCallbackQueryObj); virtual ;
529535 procedure DoReceiveChannelPost (AChannelPost: TTelegramMessageObj); virtual ;
530536 procedure DoReceiveEditedChannelPost (AChannelPost: TTelegramMessageObj); virtual ;
531- procedure DoReceiveInlineQuery (AnInlineQuery: TTelegramInlineQueryObj); virtual ;
532- procedure DoReceiveChosenInlineResult (AChosenInlineResult: TTelegramChosenInlineResultObj); virtual ;
533- procedure DoReceivePreCheckoutQuery (APreCheckoutQuery: TTelegramPreCheckOutQuery); virtual ;
534- procedure DoReceiveMyChatMemberQuery (AMyChatMember: TTelegramChatMemberUpdated); virtual ;
535- procedure DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated); virtual ;
536- procedure DoReceiveMessageReaction (AMessageReaction: TTelegramMessageReactionUpdated); virtual ;
537- procedure DoReceiveMessageReactionCount (AMessageReactionCount: TTelegramMessageReactionCountUpdated); virtual ;
538- procedure DoReceiveSuccessfulPayment (AMessage: TTelegramMessageObj); virtual ;
537+ procedure DoReceiveInlineQuery (AnInlineQuery: TTelegramInlineQueryObj); virtual ;
538+ procedure DoReceiveChosenInlineResult (AChosenInlineResult: TTelegramChosenInlineResultObj); virtual ;
539+ procedure DoReceivePreCheckoutQuery (APreCheckoutQuery: TTelegramPreCheckOutQuery); virtual ;
540+ procedure DoReceiveMyChatMemberQuery (AMyChatMember: TTelegramChatMemberUpdated); virtual ;
541+ procedure DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated); virtual ;
542+ procedure DoReceiveMessageReaction (AMessageReaction: TTelegramMessageReactionUpdated); virtual ;
543+ procedure DoReceiveMessageReactionCount (AMessageReactionCount: TTelegramMessageReactionCountUpdated); virtual ;
544+ procedure DoReceiveSuccessfulPayment (AMessage: TTelegramMessageObj); virtual ;
539545 procedure DoReceiveBusinessConnection (ABusinessConnection: TTelegramBusinessConnectionObj); virtual ;
540546 procedure DoReceiveBusinessMessage (ABusinessMessage: TTelegramMessageObj); virtual ;
541547 procedure DebugMessage (const Msg: String); virtual ; // it will send all requests and responses to the log. Useful during development
@@ -744,20 +750,20 @@ TTelegramSender = class
744750 write FOnReceiveInlineQuery;
745751 property OnReceiveChosenInlineResult: TChosenInlineResultEvent read FOnReceiveChosenInlineResult
746752 write FOnReceiveChosenInlineResult;
747- property OnReceivePreCheckoutQuery: TPreCheckoutQueryEvent read FOnReceivePreCheckoutQuery
748- write FOnReceivePreCheckoutQuery;
749- property OnReceiveSuccessfulPayment: TMessageEvent read FOnReceiveSuccessfulPayment
750- write FOnReceiveSuccessfulPayment;
751- property OnReceiveBusinessConnection: TBusinessConnectionEvent read FOnReceiveBusinessConnection
752- write FOnReceiveBusinessConnection;
753- property OnReceiveBusinessMessage: TMessageEvent read FOnReceiveBusinessMessage
754- write FOnReceiveBusinessMessage;
755- property OnReceiveMessageReaction: TMessageReactionEvent read FOnReceiveMessageReaction
756- write FOnReceiveMessageReaction;
757- property OnReceiveMessageReactionCount: TMessageReactionCountEvent read FOnReceiveMessageReactionCount
758- write FOnReceiveMessageReactionCount;
759- property OnReceiveMyChatMemberUpdated: TChatMemberEvent read FOnReceiveMyChatMemberUpdated
760- write FOnReceiveMyChatMemberUpdated;
753+ property OnReceivePreCheckoutQuery: TPreCheckoutQueryEvent read FOnReceivePreCheckoutQuery
754+ write FOnReceivePreCheckoutQuery;
755+ property OnReceiveSuccessfulPayment: TMessageEvent read FOnReceiveSuccessfulPayment
756+ write FOnReceiveSuccessfulPayment;
757+ property OnReceiveBusinessConnection: TBusinessConnectionEvent read FOnReceiveBusinessConnection
758+ write FOnReceiveBusinessConnection;
759+ property OnReceiveBusinessMessage: TMessageEvent read FOnReceiveBusinessMessage
760+ write FOnReceiveBusinessMessage;
761+ property OnReceiveMessageReaction: TMessageReactionEvent read FOnReceiveMessageReaction
762+ write FOnReceiveMessageReaction;
763+ property OnReceiveMessageReactionCount: TMessageReactionCountEvent read FOnReceiveMessageReactionCount
764+ write FOnReceiveMessageReactionCount;
765+ property OnReceiveMyChatMemberUpdated: TChatMemberEvent read FOnReceiveMyChatMemberUpdated
766+ write FOnReceiveMyChatMemberUpdated;
761767 property OnReceiveChatMemberUpdated: TChatMemberEvent read FOnReceiveChatMemberUpdated
762768 write FOnReceiveChatMemberUpdated;
763769 end ;
@@ -856,6 +862,7 @@ implementation
856862 s_OneTimeKeyboard = ' one_time_keyboard' ;
857863 s_RequestContact = ' request_contact' ;
858864 s_RequestLocation = ' request_location' ;
865+ s_Style = ' style' ;
859866 s_SwitchInlineQuery = ' switch_inline_query' ;
860867 s_CallbackData = ' callback_data' ;
861868 s_SwitchInlineQueryCurrentChat = ' s_switch_inline_query_current_chat' ;
@@ -1697,6 +1704,11 @@ function TKeyboardButton.Gettext: String;
16971704 Result:=Strings[s_text];
16981705end ;
16991706
1707+ function TKeyboardButton.GetStyle : String;
1708+ begin
1709+ Result:=Strings[s_Style];
1710+ end ;
1711+
17001712procedure TKeyboardButton.SetRequestContact (AValue: Boolean);
17011713begin
17021714 Booleans[s_RequestContact]:=AValue;
@@ -1712,6 +1724,11 @@ procedure TKeyboardButton.Settext(AValue: String);
17121724 Strings[s_text]:=AValue;
17131725end ;
17141726
1727+ procedure TKeyboardButton.SetStyle (const AValue: String);
1728+ begin
1729+ Strings[s_Style]:=AValue;
1730+ end ;
1731+
17151732constructor TKeyboardButton.Create(const AText: String);
17161733begin
17171734 inherited Create;
@@ -1910,6 +1927,11 @@ procedure TInlineKeyboardButton.Settext(AValue: String);
19101927 Strings[s_text]:=AValue;
19111928end ;
19121929
1930+ procedure TInlineKeyboardButton.SetStyle (AValue: String);
1931+ begin
1932+ Strings[s_Style]:=AValue;
1933+ end ;
1934+
19131935procedure TInlineKeyboardButton.Setcallback_data (AValue: String);
19141936begin
19151937 CheckOptnlAndSet(s_callbackdata, AValue);
@@ -1920,6 +1942,11 @@ function TInlineKeyboardButton.Geturl: String;
19201942 Result:=Strings[s_url];
19211943end ;
19221944
1945+ function TInlineKeyboardButton.GetStyle : String;
1946+ begin
1947+ Result:=Strings[s_Style];
1948+ end ;
1949+
19231950function TInlineKeyboardButton.CheckOptnlNull : Boolean;
19241951begin
19251952 Result:=not (Assigned(Find(s_CallbackData)) or Assigned(Find(s_SwitchInlineQuery)) or
@@ -2277,11 +2304,11 @@ procedure TTelegramSender.DoReceiveMyChatMemberQuery(AMyChatMember: TTelegramCha
22772304 FOnReceiveMyChatMemberUpdated(Self, AMyChatMember);
22782305end ;
22792306
2280- procedure TTelegramSender.DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated);
2281- begin
2282- FCurrentMessage:=nil ;
2283- FCurrentChat:=AChatMember.Chat;
2284- FCurrentUser:=AChatMember.From;
2307+ procedure TTelegramSender.DoReceiveChatMemberQuery (AChatMember: TTelegramChatMemberUpdated);
2308+ begin
2309+ FCurrentMessage:=nil ;
2310+ FCurrentChat:=AChatMember.Chat;
2311+ FCurrentUser:=AChatMember.From;
22852312 FCurrentThreadId:=_nullThrd;
22862313 FCurrentIsTopicMessage:=False;
22872314 FCurrentChatId:=FCurrentUser.ID;
@@ -2290,41 +2317,41 @@ procedure TTelegramSender.DoReceiveChatMemberQuery(AChatMember: TTelegramChatMem
22902317 DoAfterParseUpdate;
22912318 if FLanguage=EmptyStr then
22922319 SetLanguage(CurrentLanguage(FCurrentUser));
2293- if Assigned(FOnReceiveChatMemberUpdated) then
2294- FOnReceiveChatMemberUpdated(Self, AChatMember);
2295- end ;
2296-
2297- procedure TTelegramSender.DoReceiveMessageReaction (
2298- AMessageReaction: TTelegramMessageReactionUpdated);
2299- begin
2300- FCurrentMessage:=nil ;
2301- FCurrentChat:=AMessageReaction.Chat;
2302- FCurrentChatID:=AMessageReaction.Chat.ID;
2303- FCurrentThreadId:=_nullThrd;
2304- FCurrentIsTopicMessage:=False;
2305- FCurrentUser:=AMessageReaction.User;
2306- if CurrentIsBanned then
2307- Exit;
2308- DoAfterParseUpdate;
2309- if Assigned(FOnReceiveMessageReaction) then
2310- FOnReceiveMessageReaction(Self, AMessageReaction);
2311- end ;
2312-
2313- procedure TTelegramSender.DoReceiveMessageReactionCount (
2314- AMessageReactionCount: TTelegramMessageReactionCountUpdated);
2315- begin
2316- FCurrentMessage:=nil ;
2317- FCurrentChat:=AMessageReactionCount.Chat;
2318- FCurrentChatID:=AMessageReactionCount.Chat.ID;
2319- FCurrentThreadId:=_nullThrd;
2320- FCurrentIsTopicMessage:=False;
2321- FCurrentUser:=nil ;
2322- if CurrentIsBanned then
2323- Exit;
2324- DoAfterParseUpdate;
2325- if Assigned(FOnReceiveMessageReactionCount) then
2326- FOnReceiveMessageReactionCount(Self, AMessageReactionCount);
2327- end ;
2320+ if Assigned(FOnReceiveChatMemberUpdated) then
2321+ FOnReceiveChatMemberUpdated(Self, AChatMember);
2322+ end ;
2323+
2324+ procedure TTelegramSender.DoReceiveMessageReaction (
2325+ AMessageReaction: TTelegramMessageReactionUpdated);
2326+ begin
2327+ FCurrentMessage:=nil ;
2328+ FCurrentChat:=AMessageReaction.Chat;
2329+ FCurrentChatID:=AMessageReaction.Chat.ID;
2330+ FCurrentThreadId:=_nullThrd;
2331+ FCurrentIsTopicMessage:=False;
2332+ FCurrentUser:=AMessageReaction.User;
2333+ if CurrentIsBanned then
2334+ Exit;
2335+ DoAfterParseUpdate;
2336+ if Assigned(FOnReceiveMessageReaction) then
2337+ FOnReceiveMessageReaction(Self, AMessageReaction);
2338+ end ;
2339+
2340+ procedure TTelegramSender.DoReceiveMessageReactionCount (
2341+ AMessageReactionCount: TTelegramMessageReactionCountUpdated);
2342+ begin
2343+ FCurrentMessage:=nil ;
2344+ FCurrentChat:=AMessageReactionCount.Chat;
2345+ FCurrentChatID:=AMessageReactionCount.Chat.ID;
2346+ FCurrentThreadId:=_nullThrd;
2347+ FCurrentIsTopicMessage:=False;
2348+ FCurrentUser:=nil ;
2349+ if CurrentIsBanned then
2350+ Exit;
2351+ DoAfterParseUpdate;
2352+ if Assigned(FOnReceiveMessageReactionCount) then
2353+ FOnReceiveMessageReactionCount(Self, AMessageReactionCount);
2354+ end ;
23282355
23292356procedure TTelegramSender.DoReceiveSuccessfulPayment (
23302357 AMessage: TTelegramMessageObj);
@@ -2394,13 +2421,13 @@ procedure TTelegramSender.DoReceiveUpdate(AnUpdate: TTelegramUpdateObj);
23942421 utChosenInlineResult: DoReceiveChosenInlineResult(AnUpdate.ChosenInlineResult);
23952422 utCallbackQuery: DoReceiveCallbackQuery(AnUpdate.CallbackQuery);
23962423 utPreCheckoutQuery: DoReceivePreCheckoutQuery(AnUpdate.PreCheckoutQuery);
2397- utMyChatMember: DoReceiveMyChatMemberQuery(AnUpdate.MyChatMember);
2398- utChatMember: DoReceiveChatMemberQuery(AnUpdate.ChatMember);
2399- utBusinessConnection: DoReceiveBusinessConnection(AnUpdate.BusinessConnection);
2400- utBusinessMessage: DoReceiveBusinessMessage(AnUpdate.BusinessMessage);
2401- utMessageReaction: DoReceiveMessageReaction(AnUpdate.MessageReaction);
2402- utMessageReactionCount: DoReceiveMessageReactionCount(AnUpdate.MessageReactionCount);
2403- end ;
2424+ utMyChatMember: DoReceiveMyChatMemberQuery(AnUpdate.MyChatMember);
2425+ utChatMember: DoReceiveChatMemberQuery(AnUpdate.ChatMember);
2426+ utBusinessConnection: DoReceiveBusinessConnection(AnUpdate.BusinessConnection);
2427+ utBusinessMessage: DoReceiveBusinessMessage(AnUpdate.BusinessMessage);
2428+ utMessageReaction: DoReceiveMessageReaction(AnUpdate.MessageReaction);
2429+ utMessageReactionCount: DoReceiveMessageReactionCount(AnUpdate.MessageReactionCount);
2430+ end ;
24042431 if Assigned(FUpdateLogger) then
24052432 if CurrentIsSimpleUser then // This is to ensure that admins and moderators do not affect the statistics
24062433 FUpdateLogger.Log(AnUpdate.AsString);
0 commit comments