자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi iOS에서 Android에서처럼 사용되는 Toast 질문입니다.
2021.05.11 12:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
iOS에서 Android의 Toast 메시지처럼 사용할 수 있는 방법이 있을까요?
Delphi iOS에서 Android에서처럼 사용되는 Toast 질문입니다.
2021.05.11 12:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
iOS에서 Android의 Toast 메시지처럼 사용할 수 있는 방법이 있을까요?
저는 아래처럼 TToastMessage 라는 class 를 만들어 사용하였습니다.
사용할때는
var
LToast: TToastMessage;
begin
LToast := TToastMessage.Create(폼이름);
LToast.Start('테스트 메시지');
end;
처럼 쓰면 됩니다. (전역변수로 만들어서 써도 되고요.)
이렇게 하면 Android 와 iOS 모두에서 사용이 가능한 Toast Message 를 사용할 수 있습니다.
- 아래 -
unit uToastMessage;
interface
uses FMX.Objects, FMX.Layouts, FMX.Types, System.Classes, System.UITypes,
FMX.Graphics, FMX.Ani;
type
TToastMessage = class
private
FBody: TLayout;
FScreen: TRectangle;
FText: TText;
FAni: TFloatAnimation;
public
constructor Create;
procedure Start(AFMXObject: TFmxObject; const AText: string);
end;
implementation
{ TToastMessage }
constructor TToastMessage.Create;
begin
FBody := TLayout.Create(nil);
FBody.Parent := nil;
FBody.Align := TAlignLayout.Bottom;
FBody.Height := 90;
FBody.Padding := TBounds.Create(Rect(20, 0, 20, 55));
FBody.Opacity := 0;
FScreen := TRectangle.Create(FBody);
FScreen.Parent := FBody;
FScreen.Align := TAlignLayout.Client;
FScreen.Stroke.Kind := TBrushKind.None;
FScreen.Fill.Color := TAlphaColorRec.Black;
FScreen.Opacity := 0.3;
FScreen.XRadius := 18;
FScreen.YRadius := 18;
FText := TText.Create(FBody);
FText.Parent := FBody;
FText.Align := TAlignLayout.Client;
FText.Margins := TBounds.Create(Rect(10, 0, 10, 3));
FText.Text := '';
FText.TextSettings.FontColor := TAlphaColorRec.White;
FText.TextSettings.Font.Size := 14;
FAni := TFloatAnimation.Create(FBody);
FAni.Parent := FBody;
FAni.Duration := 1.5;
FAni.PropertyName := 'Opacity';
FAni.StartValue := 1;
FAni.StopValue := 0;
FAni.Interpolation := TInterpolationType.Exponential;
end;
procedure TToastMessage.Start(AFMXObject: TFmxObject; const AText: string);
begin
FBody.Parent := AFMXObject;
FText.Text := AText;
FAni.Start;
end;
end.