Commit 3c9c0e5d by Mac Stephens

almost complete website, need to look at hamburger menu and finish network connection

parent cbadf72e
*.exe
*.dll
*.bpl
*.bpi
*.dcp
*.so
*.apk
*.drc
*.map
*.dres
*.rsm
*.tds
*.dcu
*.lib
*.a
*.o
*.ocx
*.cfg
*.hpp
*Resource.rc
*.local
*.identcache
*.projdata
*.tvsconfig
*.dsk
__history/
__recovery/
*.~*
*.stat
\ No newline at end of file
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.3.0",
"configurations": [
{
"preLaunchTask": "Build",
"type": "chrome",
"request": "launch",
"name": "Run",
"url": "http://localhost:${command:rad4.tms.web.port.debug}/${command:rad4.tms.getcurrentproject.html.file}",
"webRoot": "${workspaceFolder}",
"timeout": 20000
},
{
"preLaunchTask": "Build",
"type": "chrome",
"request": "launch",
"name": "Run Without Debugging",
"url": "http://localhost:${command:rad4.tms.web.port.release}/${command:rad4.tms.getcurrentproject.html.file}",
"webRoot": "${workspaceFolder}",
"timeout": 20000
}
]
}
\ No newline at end of file
{
"version": "2.0.0",
"runner": "terminal",
"tasks": [
{
"label": "Build",
"dependsOrder": "sequence",
"dependsOn": [
"Echo",
"Active"
]
},
{
"label": "Echo",
"type": "shell",
"command": "echo 'Building...'",
"problemMatcher": []
},
{
"label": "Sleepdelay",
"type": "shell",
"command": "sleep ${config:TMS.options.electron.debug.delay}",
"windows": {
"command": "ping 127.0.0.1 -n ${config:TMS.options.electron.debug.delay} > '${workspaceFolder}\\.vscode\\null.txt'"
},
"group": "none",
"presentation": {
"reveal": "silent",
"panel": "new"
}
},
{
"label": "Active",
"type": "build",
"operation": "compile",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$tmswebcoreerror",
"$tmswebcorewarning"
]
},
{
"label": "Debug",
"type": "build",
"operation": "compile",
"buildconfiguration": "Debug",
"group": "build",
"problemMatcher": [
"$tmswebcoreerror",
"$tmswebcorewarning"
]
},
{
"label": "Release",
"type": "build",
"operation": "compile",
"buildconfiguration": "Release",
"group": "build",
"problemMatcher": [
"$tmswebcoreerror",
"$tmswebcorewarning"
]
}
]
}
\ No newline at end of file
{"tms":{"desktop":{"theme":"auto","layouts":{"Default Desktop":"{\"dockbox\":{\"id\":\"docklayoutbase\",\"size\":200,\"mode\":\"horizontal\",\"children\":[{\"id\":\"leftlayout\",\"size\":300,\"mode\":\"vertical\",\"children\":[{\"id\":\"+1\",\"size\":200,\"tabs\":[{\"id\":\"structure\"}],\"activeId\":\"structure\"},{\"id\":\"+2\",\"size\":200,\"tabs\":[{\"id\":\"objectinspector\"}],\"activeId\":\"objectinspector\"}]},{\"id\":\"+3\",\"size\":1000,\"tabs\":[{\"id\":\"documentgroup\"}],\"activeId\":\"documentgroup\"},{\"id\":\"rightlayout\",\"size\":250,\"tabs\":[{\"id\":\"toolpalette\"}],\"activeId\":\"toolpalette\"}]},\"floatbox\":{\"id\":\"+4\",\"size\":1,\"mode\":\"float\",\"children\":[]},\"maxbox\":{\"id\":\"+5\",\"size\":1,\"mode\":\"maximize\",\"children\":[]}}"},"active":"Default Desktop"},"packages":{"installed":{"k0webcore":{"name":"TMS WEB Core","path":"core\\webcore.twcl","checked":true}}},"formDesigner":{"gridOptions":{"displayGrid":"true","useDesignerGuidelines":"true","snapToGrid":"true","gridSizeX":8,"gridSizeY":8},"options":{"showComponentCaptions":"true","showDesignerHints":"true","showExtendedControlHints":"true","showNonVisualComponents":"true","deleteEmptyEventHandlersOnSave":"true"}},"options":{"electron":{"debug":{"port":"9223","delay":"3","timeout":"10000"}},"automaticallyCopyFileExtensions":"","outputPath":".\\$(Platform)\\$(Config)","singleJavascriptFile":"","ecmaScript":""}},"omnipascal":{"delphiInstallationPath":"","freePascalSourcePath":"","defaultDevelopmentEnvironment":"Delphi","searchPath":"c:\\Users\\Admin\\.vscode\\extensions\\tmssoftware.tmswebcore-2.3.7283\\resources\\coresource\\*","msbuildPath":"","lazbuildPath":"","createBuildScripts":false,"symbolIndex":"workspace","usesListStyle":"multipleItemsPerLine","namingConventionString":"pascalCase"}}
\ No newline at end of file
object FNavbar: TFNavbar
Color = clWhite
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
FormStyle = fsNormal
Height = 114
Left = 0
TabOrder = 0
Top = 0
Width = 1082
object btnHome: TWebButton
Caption = 'HOME'
Color = clNone
ElementID = 'home'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 228
OnClick = btnHomeClick
Role = 'null'
TabOrder = 0
Top = 222
Width = 100
end
object btnCompliance: TWebButton
Caption = 'COMPLIANCE'
Color = clNone
ElementID = 'compliance'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 340
OnClick = btnComplianceClick
Role = 'null'
TabOrder = 0
Top = 222
Width = 100
end
object btnContactUs: TWebButton
Caption = 'WebButton3'
Color = clNone
ElementID = 'contactus'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 452
OnClick = btnContactUsClick
Role = 'null'
TabOrder = 0
Top = 222
Width = 100
end
end
<div>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<!-- Brand/logo -->
<a class="navbar-brand" href="#">
<img src="images/efxLogo.png" alt="EFX Currency Exchange" style="height: 40px;">
<!-- Adjust the height as needed -->
</a>
<!-- Toggler/collapsibe Button (for mobile view) -->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" id="home" aria-current="page" href="#FHome">HOME</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">COMPLIANCE</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">CONTACT US</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
unit Navbar;
interface
uses
System.SysUtils, System.Classes, WEBLib.Graphics, WEBLib.Forms, Vcl.StdCtrls,
WEBLib.StdCtrls, Vcl.Controls, WEBLib.Dialogs, Vcl.Imaging.pngimage,
WEBLib.ExtCtrls, WEBLib.Controls, Web, JS, WEBLib.Menus;
type
TFNavbar = class(TWebForm)
btnContactUs: TWebButton;
btnCompliance: TWebButton;
btnHome: TWebButton;
[async]
procedure btnHomeClick(Sender: TObject);
procedure btnComplianceClick(Sender: TObject);
procedure WebFormClose(Sender: TObject; var Action: TCloseAction);
procedure btnContactUsClick(Sender: TObject);
public
end;
var
FNavbar: TFNavbar;
implementation
{$R *.dfm}
uses
View.Home, View.Compliance, View.ContactUs;
procedure TFNavbar.btnHomeClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFHome, FHome);
end;
procedure TFNavbar.btnComplianceClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFCompliance, FCompliance);
end;
procedure TFNavbar.btnContactUsClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFContactUs, FContactUs);
end;
procedure TFNavbar.WebFormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
initialization
RegisterClass(TFNavbar);
end.
<div>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<!-- Brand/logo -->
<a class="navbar-brand" href="#">
<img src="images/efxLogo.png" alt="EFX Currency Exchange" style="height: 40px;">
<!-- Adjust the height as needed -->
</a>
<!-- Toggler/collapsibe Button (for mobile view) -->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" id="home" aria-current="page" href="#FHome">HOME</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">COMPLIANCE</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">CONTACT US</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
This source diff could not be displayed because it is too large. You can view the blob instead.
<!--NAVBAR CONTAINER-->
<div class="em-navbar-wrap">
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top shadow">
<div class="container-fluid container-max">
<a class="navbar-brand em-brand" href="#FHome">
<img src="images/efxLogo.png" alt="EFX" style="height: 60px; margin-left: 20px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" id="home" href="#FHome">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">Compliance</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!-- HERO IMAGE -->
<div class="hero-image-compliance">
<img src="images/coins.jpg" alt="Hero Image" class="img-fluid">
</div>
<!-- CONTENT SECTION -->
<div class="content-section">
<div class="container-fluid px-0">
<div class="currencies-section shadow-sm text-center p-5 border-bottom">
<h2 class="efx-green mb-2">Compliance</h2>
<p class="middle-subtitle">efx is firmly committed to the fight against money laundering and terrorist financing.</p>
<p class="subtitle">At our discretion, or as in accordance with applicable law, you may be required to provide government issued photo identification in order to make a currency exchange transaction. Other restrictions may apply. Void where prohibited.</p>
</div>
</div>
</div>
<!-- DETAIL SECTION -->
<div class="container mt-5">
<div class="container">
<div class="row align-items-start">
<div class="col-md-4 mb-4 text-center">
<div class="mb-3">
<i class="fa-solid fa-eye fa-2xl"></i>
</div>
<h4>Anti-Money Laundering</h4>
<p>eFX has instituted anti-money laundering compliance programs, including compliance reviews, periodic training and testing of personnel, and third party review of its anti-money laundering procedures. Such anti-money laundering programs include screening of customer names and transactions through governmental and other database lists.</p>
</div>
<div class="col-md-4 mb-4 text-center"> <!-- Adjusted column size -->
<img src="images/efx-location.jpg" alt="Compliance" class="img-fluid rounded-circle shadow">
</div>
<div class="col-md-4 mb-4 text-center">
<div class="mb-3">
<i class="fa-solid fa-scale-balanced fa-2xl"></i>
</div>
<h4>U.S. Department of Treasury</h4>
<p>efx is registered with the United States Department of the Treasury Financial Crimes Enforcement Network as a money services business. efx also holds currency exchange licenses in states where a license for its currency exchange operations are required.</p>
</div>
</div>
</div>
</div>
<footer class="bg-dark text-light text-center py-4">
<div class="container-fluid container-max">
<div class="row">
<div class="col-12 mb-3">
<a href="https://www.facebook.com/efxcurrency/" class="text-decoration-none me-2">
<i class="fa-brands fa-square-facebook fa-lg" style="color: #28b34c"></i>
</a>
<a href="https://twitter.com/efxCurrency/" class="text-decoration-none">
<i class="fa-brands fa-square-x-twitter fa-lg" style="color: #28b34c"></i>
</a>
</div>
<div class="col-12">
<p>©2024 copyright eFX. All rights reserved.</p>
<p>NMLS No. 981328</p>
</div>
</div>
</div>
</footer>
<!--NAVBAR CONTAINER-->
<div class="em-navbar-wrap">
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top shadow">
<div class="container-fluid container-max">
<a class="navbar-brand em-brand" href="#FHome">
<img src="images/efxLogo.png" alt="EFX" style="height: 60px; margin-left: 20px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" id="home" href="#FHome">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">Compliance</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!-- DETAIL SECTION -->
<div class="container mt-5">
<!-- Title and underline -->
<div class="row mb-4">
<div class="col">
<h1>Contact Us</h1>
<hr> <!-- This creates a horizontal line -->
</div>
</div>
<!-- Contact form and hours information -->
<div class="row">
<!-- Contact form column -->
<div class="col-md-6">
<h2>Send us a Message</h2>
<p>Get in contact with us for your currency needs!</p>
<form id="contactForm">
<div class="mb-3">
<label for="edtName" class="form-label">Your Name (required)</label>
<input type="text" class="form-control" id="edtName" required placeholder="John Doe">
</div>
<div class="mb-3">
<label for="edtEmail" class="form-label">Your Email (required)</label>
<input type="email" class="form-control" id="edtEmail" required placeholder="example@yourdomain.com">
</div>
<div class="mb-3">
<label for="edtSubject" class="form-label">Subject</label>
<input type="text" class="form-control" id="edtSubject" placeholder="Type the subject here.">
</div>
<div class="mb-3">
<label for="memoMessage" class="form-label">Your Message</label>
<textarea class="form-control" id="memoMessage" placeholder="Type your message here." rows="3"></textarea>
</div>
<button type="submit" id="btnSubmit"class="btn btn-primary">Send Email</button>
</form>
</div>
<!-- Hours information column -->
<div class="col-md-6">
<div class="hours-box">
<h3>EFX Currency Hours</h3>
<!-- Hours information goes here -->
<div class="location">
<h4>Niagara Falls</h4>
<p>Thursday – Monday: 11am – 4pm</p>
<p>Phone: (716) 297-4654</p>
</div>
<div class="location">
<h4>Buffalo</h4>
<p>Monday – Saturday: 11am – 4pm</p>
<p>Phone: (716) 681-8820</p>
</div>
<!-- Repeat for other locations -->
</div>
</div>
</div>
</div>
<footer class="bg-dark text-light text-center py-4">
<div class="container-fluid container-max">
<div class="row">
<div class="col-12 mb-3">
<a href="https://www.facebook.com/efxcurrency/" class="text-decoration-none me-2">
<i class="fa-brands fa-square-facebook fa-lg" style="color: #28b34c"></i>
</a>
<a href="https://twitter.com/efxCurrency/" class="text-decoration-none">
<i class="fa-brands fa-square-x-twitter fa-lg" style="color: #28b34c"></i>
</a>
</div>
<div class="col-12">
<p>©2024 copyright eFX. All rights reserved.</p>
<p>NMLS No. 981328</p>
</div>
</div>
</div>
</footer>
<div>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<!-- Brand/logo -->
<a class="navbar-brand" href="#">
<img src="images/efxLogo.png" alt="EFX Currency Exchange" style="height: 40px;">
<!-- Adjust the height as needed -->
</a>
<!-- Toggler/collapsibe Button (for mobile view) -->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" id="home" aria-current="page" href="#FHome">HOME</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">COMPLIANCE</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">CONTACT</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
body {
font-family: "Raleway", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
color: #272727;
background-color: #f4f4f4;
padding-top: 90px;
box-sizing: border-box;
}
.container-max {
max-width: 1400px; /* or whatever the max width you want */
margin-right: auto;
margin-left: auto;
}
.efx-green {
color: #28b34c;
}
.em-navbar-wrap .navbar {
padding-top: 0;
padding-bottom: 0;
transition: height 0.3s ease-in-out;
position: fixed;
width: 100%;
z-index: 1030;
}
.em-brand img {
height: auto;
transition: height 0.3s ease-in-out;
}
.navbar-nav .nav-link {
text-transform: uppercase;
letter-spacing: 0.085em;
color: #999999;
padding-top: 37px;
padding-bottom: 37px;
height: 90px;
transition: padding 0.3s ease-in-out;
}
.navbar-nav .nav-item:hover .nav-link,
.navbar-nav .nav-item.active .nav-link {
color: #272727;
box-shadow: inset 0 -4px 0 0 #ff2a13;
}
@media (max-width: 992px) {
.navbar-nav .nav-link {
padding-top: 10px;
padding-bottom: 10px;
height: auto;
}
}
.em-navbar-wrap .navbar.scrolled {
padding-top: 0;
padding-bottom: 0;
height: 70px;
}
.em-brand img.scrolled-logo {
height: 30px;
}
.navbar.scrolled .nav-link {
padding-top: 25px;
padding-bottom: 25px;
}
/* Hero Image Styling */
.hero-image-home {
position: relative;
height: 500px;
overflow: hidden;
}
.hero-image-home img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
position: absolute;
top: 0;
left: 0;
z-index: -1;
/* Places the image behind the content */
}
.hero-image-compliance {
position: relative;
height: 400px;
overflow: hidden;
}
.hero-image-compliance img {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: -1;
/* Places the image behind the content */
}
/* Currency Expert Box Styling */
.currency-expert-box {
position: absolute;
top: 30%;
left: 20%;
transform: translateX(-50%);
background-color: rgba(246, 246, 246, 0.9);
/* Light grey with transparency */
padding: 20px;
width: 30%;
z-index: 2;
/* Places the box above the image but below the navbar and content-section when scrolling */
border-radius: 10px;
}
/* Content Section Styling */
.content-section {
position: relative;
z-index: 10;
/* Places the content in front of the image */
background: #FFF;
margin-top: -2rem;
}
/* Additional CSS */
blockquote {
margin-top: 1em;
font-style: italic;
}
.middle-subtitle {
font-size: medium; /* Adjust size as needed */
font-weight: bold; /* Optional: if you want it to stand out more */
}
/* Adjusted padding-top for navbar */
.container.mt-5 {
margin-top: calc(5rem + 90px) !important;
/* Navbar height + original mt-5 margin */
}
.location-info {
padding: 1rem;
background: #fff;
/* For white background, match to your theme */
border: 1px solid #ddd;
/* For border, adjust as needed */
margin-bottom: 2rem;
/* Space below each map */
}
.location-info h3 {
margin-bottom: .5rem;
/* Space below the heading */
}
/* For the Get Directions button */
.btn-primary {
background-color: #28a745;
/* Use a green color to match your theme */
border-color: #28a745;
/* Additional button styling if needed */
}
<html><head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<noscript>Your browser does not support JavaScript!</noscript>
<link rel="icon" href="data:;base64,=">
<title>TMS Web Project</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200">
<link crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="css/App.css" rel="stylesheet" type="text/css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap" rel="stylesheet">
<script type="text/javascript" src="TMSWebTemplate.js"></script>
<script src="https://smtpjs.com/v3/smtp.js"></script>
<style>
.material-symbols-outlined {
font-variation-settings:
'FILL' 1,
'wght' 600,
'GRAD' 0,
'opsz' 24;
}
</style>
</head>
<body>
<script type="text/javascript">
rtl.run();
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
program TMSWebTemplate;
uses
VCL.Forms,
WEBLib.Forms,
View.Home in 'View.Home.pas' {FHome: TWebForm} {*.html},
View.Compliance in 'View.Compliance.pas' {FCompliance: TWebForm} {*.html},
View.ContactUs in 'View.ContactUs.pas' {FContactUs: TWebForm} {*.html},
Navbar in 'Navbar.pas' {FNavbar: TWebForm} {*.html},
uSmtpJsWrapper in 'uSmtpJsWrapper.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
asm
if (window.location.hash === '') {
window.location.hash = '#FHome';
}
end;
if not Application.Route then
begin
Application.CreateForm(TFHome, FHome);
end;
Application.Run;
end.
object FCompliance: TFCompliance
CSSLibrary = cssBootstrap
Color = clWhite
ElementFont = efCSS
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
FormStyle = fsNormal
Height = 1209
Left = 0
TabOrder = 0
Top = 0
Width = 1386
object btnHome: TWebButton
Caption = 'HOME'
Color = clNone
ElementID = 'home'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 535
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnCompliance: TWebButton
Caption = 'COMPLIANCE'
Color = clNone
ElementID = 'compliance'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 647
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnContactUs: TWebButton
Caption = 'CONTACT US'
Color = clNone
ElementID = 'contactus'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 759
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
end
<!--NAVBAR CONTAINER-->
<div class="em-navbar-wrap">
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top shadow">
<div class="container-fluid container-max">
<a class="navbar-brand em-brand" href="#FHome">
<img src="images/efxLogo.png" alt="EFX" style="height: 60px; margin-left: 20px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" id="home" href="#FHome">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">Compliance</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!-- HERO IMAGE -->
<div class="hero-image-compliance">
<img src="images/coins.jpg" alt="Hero Image" class="img-fluid">
</div>
<!-- CONTENT SECTION -->
<div class="content-section">
<div class="container-fluid px-0">
<div class="currencies-section shadow-sm text-center p-5 border-bottom">
<h2 class="efx-green mb-2">Compliance</h2>
<p class="middle-subtitle">efx is firmly committed to the fight against money laundering and terrorist financing.</p>
<p class="subtitle">At our discretion, or as in accordance with applicable law, you may be required to provide government issued photo identification in order to make a currency exchange transaction. Other restrictions may apply. Void where prohibited.</p>
</div>
</div>
</div>
<!-- DETAIL SECTION -->
<div class="container mt-5">
<div class="container">
<div class="row align-items-start">
<div class="col-md-4 mb-4 text-center">
<div class="mb-3">
<i class="fa-solid fa-eye fa-2xl"></i>
</div>
<h4>Anti-Money Laundering</h4>
<p>eFX has instituted anti-money laundering compliance programs, including compliance reviews, periodic training and testing of personnel, and third party review of its anti-money laundering procedures. Such anti-money laundering programs include screening of customer names and transactions through governmental and other database lists.</p>
</div>
<div class="col-md-4 mb-4 text-center"> <!-- Adjusted column size -->
<img src="images/efx-location.jpg" alt="Compliance" class="img-fluid rounded-circle shadow">
</div>
<div class="col-md-4 mb-4 text-center">
<div class="mb-3">
<i class="fa-solid fa-scale-balanced fa-2xl"></i>
</div>
<h4>U.S. Department of Treasury</h4>
<p>efx is registered with the United States Department of the Treasury Financial Crimes Enforcement Network as a money services business. efx also holds currency exchange licenses in states where a license for its currency exchange operations are required.</p>
</div>
</div>
</div>
</div>
<footer class="bg-dark text-light text-center py-4">
<div class="container-fluid container-max">
<div class="row">
<div class="col-12 mb-3">
<a href="https://www.facebook.com/efxcurrency/" class="text-decoration-none me-2">
<i class="fa-brands fa-square-facebook fa-lg" style="color: #28b34c"></i>
</a>
<a href="https://twitter.com/efxCurrency/" class="text-decoration-none">
<i class="fa-brands fa-square-x-twitter fa-lg" style="color: #28b34c"></i>
</a>
</div>
<div class="col-12">
<p>©2024 copyright eFX. All rights reserved.</p>
<p>NMLS No. 981328</p>
</div>
</div>
</div>
</footer>
unit View.Compliance;
interface
uses
System.SysUtils, System.Classes, WEBLib.Graphics, WEBLib.Forms, Vcl.Controls,
Vcl.StdCtrls, WEBLib.StdCtrls, web, WEBLib.Controls, WEBLib.Menus, WEBLib.ExtCtrls;
type
TFCompliance = class(TWebForm)
btnHome: TWebButton;
btnCompliance: TWebButton;
btnContactUs: TWebButton;
procedure btnHomeClick(Sender: TObject);
procedure btnContactUsClick(Sender: TObject);
procedure WebFormClose(Sender: TObject; var Action: TCloseAction);
end;
var
FCompliance: TFCompliance;
implementation
{$R *.dfm}
uses
View.ContactUs, View.Home;
procedure TFCompliance.btnHomeClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFHome, FHome);
end;
procedure TFCompliance.btnContactUsClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFContactUs, FContactUs);
end;
procedure TFCompliance.WebFormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
initialization
RegisterClass(TFCompliance);
end.
object FContactUs: TFContactUs
CSSLibrary = cssBootstrap
Color = clWhite
ElementFont = efCSS
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
FormStyle = fsNormal
Height = 1186
Left = 0
TabOrder = 0
Top = 0
Width = 1138
object btnHome: TWebButton
Caption = 'HOME'
Color = clNone
ElementID = 'home'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 535
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnCompliance: TWebButton
Caption = 'COMPLIANCE'
Color = clNone
ElementID = 'compliance'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 647
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnContactUs: TWebButton
Caption = 'CONTACT US'
Color = clNone
ElementID = 'contactus'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 759
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnSubmit: TWebButton
Caption = 'Send Email'
Color = clNone
ElementFont = efCSS
ElementID = 'btnSubmit'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 430
OnClick = btnSubmitClick
Role = 'button'
TabOrder = 0
Top = 354
Width = 100
end
object edtName: TWebEdit
Alignment = taLeftJustify
Color = clWindow
ElementFont = efCSS
ElementID = 'edtName'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
HideSelection = False
Left = 0
ShowFocus = True
TabOrder = 0
Top = 0
Width = 100
end
object edtEmail: TWebEdit
Alignment = taLeftJustify
Color = clWindow
ElementFont = efCSS
ElementID = 'edtEmail'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
HideSelection = False
Left = 344
ShowFocus = True
TabOrder = 0
Top = 339
Width = 100
end
object memoMessage: TWebMemo
AutoSize = False
Color = clWindow
ElementFont = efCSS
ElementID = 'memoMessage'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 303
Left = 100
ReadOnly = False
Role = 'null'
SelLength = 0
SelStart = 0
ShowFocus = True
TabOrder = 0
Top = 738
Width = 464
end
object edtSubject: TWebEdit
Alignment = taLeftJustify
Color = clWindow
ElementFont = efCSS
ElementID = 'edtSubject'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
HideSelection = False
Left = 405
ShowFocus = True
TabOrder = 0
Top = 458
Width = 100
end
end
<!--NAVBAR CONTAINER-->
<div class="em-navbar-wrap">
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top shadow">
<div class="container-fluid container-max">
<a class="navbar-brand em-brand" href="#FHome">
<img src="images/efxLogo.png" alt="EFX" style="height: 60px; margin-left: 20px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" id="home" href="#FHome">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="compliance" href="#FCompliance">Compliance</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contactus" href="#FContactUs">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!-- DETAIL SECTION -->
<div class="container mt-5">
<!-- Title and underline -->
<div class="row mb-4">
<div class="col">
<h1>Contact Us</h1>
<hr> <!-- This creates a horizontal line -->
</div>
</div>
<!-- Contact form and hours information -->
<div class="row">
<!-- Contact form column -->
<div class="col-md-6">
<h2>Send us a Message</h2>
<p>Get in contact with us for your currency needs!</p>
<form id="contactForm">
<div class="mb-3">
<label for="edtName" class="form-label">Your Name (required)</label>
<input type="text" class="form-control" id="edtName" required placeholder="John Doe">
</div>
<div class="mb-3">
<label for="edtEmail" class="form-label">Your Email (required)</label>
<input type="email" class="form-control" id="edtEmail" required placeholder="example@yourdomain.com">
</div>
<div class="mb-3">
<label for="edtSubject" class="form-label">Subject</label>
<input type="text" class="form-control" id="edtSubject" placeholder="Type the subject here.">
</div>
<div class="mb-3">
<label for="memoMessage" class="form-label">Your Message</label>
<textarea class="form-control" id="memoMessage" placeholder="Type your message here." rows="3"></textarea>
</div>
<button type="submit" id="btnSubmit"class="btn btn-primary">Send Email</button>
</form>
</div>
<!-- Hours information column -->
<div class="col-md-6">
<div class="hours-box">
<h3>EFX Currency Hours</h3>
<!-- Hours information goes here -->
<div class="location">
<h4>Niagara Falls</h4>
<p>Thursday – Monday: 11am – 4pm</p>
<p>Phone: (716) 297-4654</p>
</div>
<div class="location">
<h4>Buffalo</h4>
<p>Monday – Saturday: 11am – 4pm</p>
<p>Phone: (716) 681-8820</p>
</div>
<!-- Repeat for other locations -->
</div>
</div>
</div>
</div>
<footer class="bg-dark text-light text-center py-4">
<div class="container-fluid container-max">
<div class="row">
<div class="col-12 mb-3">
<a href="https://www.facebook.com/efxcurrency/" class="text-decoration-none me-2">
<i class="fa-brands fa-square-facebook fa-lg" style="color: #28b34c"></i>
</a>
<a href="https://twitter.com/efxCurrency/" class="text-decoration-none">
<i class="fa-brands fa-square-x-twitter fa-lg" style="color: #28b34c"></i>
</a>
</div>
<div class="col-12">
<p>©2024 copyright eFX. All rights reserved.</p>
<p>NMLS No. 981328</p>
</div>
</div>
</div>
</footer>
unit View.ContactUs;
interface
uses
System.SysUtils, System.Classes, JS, Web, WEBLib.Graphics, WEBLib.Controls, WebLib.RegularExpressions,
WEBLib.Forms, WEBLib.Dialogs, Vcl.StdCtrls, WEBLib.StdCtrls, Vcl.Controls, WEBLib.Menus;
type
TFContactUs = class(TWebForm)
btnHome: TWebButton;
btnCompliance: TWebButton;
btnContactUs: TWebButton;
btnSubmit: TWebButton;
edtName: TWebEdit;
edtEmail: TWebEdit;
memoMessage: TWebMemo;
edtSubject: TWebEdit;
procedure WebFormClose(Sender: TObject; var Action: TCloseAction);
procedure btnSubmitClick(Sender: TObject);
private
{ Private declarations }
function IsInputValid: Boolean;
function IsEmailValid(AEmail: String): Boolean;
procedure SendEmail;
public
{ Public declarations }
end;
var
FContactUs: TFContactUs;
implementation
{$R *.dfm}
uses uSmtpJsWrapper;
procedure TFContactUs.btnSubmitClick(Sender: TObject);
begin
if IsInputValid then
begin
SendEmail;
end
else
begin
ShowMessage('Please complete all fields and ensure the email address is valid.');
end;
end;
procedure TFContactUs.WebFormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
function TFContactUs.IsEmailValid(AEmail: String): Boolean;
const
CPattern = '^\w+([\.-]?w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$';
begin
Result := TRegEx.IsMatch( AEmail, CPattern );
end;
function TFContactUs.IsInputValid: Boolean;
var
LEmailValid: Boolean;
LComplete: Boolean;
begin
LEmailValid := IsEmailValid( edtEmail.Text );
LComplete := (edtName.Text <> '') and
(edtSubject.Text <> '') and
(edtEmail.Text <> '');
Result := LEmailValid and LComplete;
end;
procedure TFContactUs.SendEmail;
begin
TSmtpJsWrapper.Send(
'evtestskiclub@gmail.com',
edtName.Text,
edtEmail.Text,
edtSubject.Text,
memoMessage.Lines.Text
);
end;
initialization
RegisterClass(TFContactUs);
end.
object FHome: TFHome
CSSLibrary = cssBootstrap
Color = clWhite
ElementFont = efCSS
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
FormStyle = fsNormal
Height = 2826
Left = 0
TabOrder = 0
Top = 0
Width = 1674
object btnHome: TWebButton
Caption = 'HOME'
Color = clNone
ElementFont = efCSS
ElementID = 'home'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 535
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnCompliance: TWebButton
Caption = 'COMPLIANCE'
Color = clNone
ElementFont = efCSS
ElementID = 'compliance'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 647
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
object btnContactUs: TWebButton
Caption = 'CONTACT US'
Color = clNone
ElementFont = efCSS
ElementID = 'contactus'
ElementPosition = epRelative
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Size = 8
Font.Style = []
Height = 25
Left = 759
Role = 'button'
TabOrder = 0
Top = 353
Width = 100
end
end
This diff is collapsed. Click to expand it.
unit View.Home;
interface
uses
System.SysUtils, System.Classes, WEBLib.Graphics, WEBLib.Forms, Vcl.StdCtrls,
WEBLib.StdCtrls, Vcl.Controls, WEBLib.Dialogs, Vcl.Imaging.pngimage,
WEBLib.ExtCtrls, WEBLib.Controls, Web, JS, WEBLib.Menus, WEBLib.WebCtrls;
type
TFHome = class(TWebForm)
btnHome: TWebButton;
btnCompliance: TWebButton;
btnContactUs: TWebButton;
[async]
procedure WebFormCreate(Sender: TObject);
procedure btnComplianceClick(Sender: TObject);
procedure WebFormClose(Sender: TObject; var Action: TCloseAction);
procedure btnContactUsClick(Sender: TObject);
public
procedure NavScrollSizing;
end;
var
FHome: TFHome;
implementation
{$R *.dfm}
uses
View.Compliance, View.ContactUs;
procedure TFHome.btnComplianceClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFCompliance, FCompliance);
end;
procedure TFHome.btnContactUsClick(Sender: TObject);
begin
Close;
Application.CreateForm(TFContactUs, FContactUs);
end;
procedure TFHome.WebFormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TFHome.WebFormCreate(Sender: TObject);
begin
Application.ThemeColor := clTMSWEB;
NavScrollSizing;
end;
procedure TFHome.NavScrollSizing;
begin
asm
window.addEventListener('scroll', function() {
var navbar = document.querySelector('.em-navbar-wrap .navbar');
var logo = document.querySelector('.em-brand img');
var scrollDistance = 50; // Adjust based on your preference
if (window.scrollY > scrollDistance) {
navbar.classList.add('scrolled');
logo.classList.add('scrolled-logo');
} else {
navbar.classList.remove('scrolled');
logo.classList.remove('scrolled-logo');
}
});
end;
end;
initialization
RegisterClass(TFHome);
end.
body {
font-family: "Raleway", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
color: #272727;
background-color: #f4f4f4;
padding-top: 90px;
box-sizing: border-box;
}
.container-max {
max-width: 1400px; /* or whatever the max width you want */
margin-right: auto;
margin-left: auto;
}
.efx-green {
color: #28b34c;
}
.em-navbar-wrap .navbar {
padding-top: 0;
padding-bottom: 0;
transition: height 0.3s ease-in-out;
position: fixed;
width: 100%;
z-index: 1030;
}
.em-brand img {
height: auto;
transition: height 0.3s ease-in-out;
}
.navbar-nav .nav-link {
text-transform: uppercase;
letter-spacing: 0.085em;
color: #999999;
padding-top: 37px;
padding-bottom: 37px;
height: 90px;
transition: padding 0.3s ease-in-out;
}
.navbar-nav .nav-item:hover .nav-link,
.navbar-nav .nav-item.active .nav-link {
color: #272727;
box-shadow: inset 0 -4px 0 0 #ff2a13;
}
@media (max-width: 992px) {
.navbar-nav .nav-link {
padding-top: 10px;
padding-bottom: 10px;
height: auto;
}
}
.em-navbar-wrap .navbar.scrolled {
padding-top: 0;
padding-bottom: 0;
height: 70px;
}
.em-brand img.scrolled-logo {
height: 30px;
}
.navbar.scrolled .nav-link {
padding-top: 25px;
padding-bottom: 25px;
}
/* Hero Image Styling */
.hero-image-home {
position: relative;
height: 500px;
overflow: hidden;
}
.hero-image-home img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
position: absolute;
top: 0;
left: 0;
z-index: -1;
/* Places the image behind the content */
}
.hero-image-compliance {
position: relative;
height: 400px;
overflow: hidden;
}
.hero-image-compliance img {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: -1;
/* Places the image behind the content */
}
/* Currency Expert Box Styling */
.currency-expert-box {
position: absolute;
top: 30%;
left: 20%;
transform: translateX(-50%);
background-color: rgba(246, 246, 246, 0.9);
/* Light grey with transparency */
padding: 20px;
width: 30%;
z-index: 2;
/* Places the box above the image but below the navbar and content-section when scrolling */
border-radius: 10px;
}
/* Content Section Styling */
.content-section {
position: relative;
z-index: 10;
/* Places the content in front of the image */
background: #FFF;
margin-top: -2rem;
}
/* Additional CSS */
blockquote {
margin-top: 1em;
font-style: italic;
}
.middle-subtitle {
font-size: medium; /* Adjust size as needed */
font-weight: bold; /* Optional: if you want it to stand out more */
}
/* Adjusted padding-top for navbar */
.container.mt-5 {
margin-top: calc(5rem + 90px) !important;
/* Navbar height + original mt-5 margin */
}
.location-info {
padding: 1rem;
background: #fff;
/* For white background, match to your theme */
border: 1px solid #ddd;
/* For border, adjust as needed */
margin-bottom: 2rem;
/* Space below each map */
}
.location-info h3 {
margin-bottom: .5rem;
/* Space below the heading */
}
/* For the Get Directions button */
.btn-primary {
background-color: #28a745;
/* Use a green color to match your theme */
border-color: #28a745;
/* Additional button styling if needed */
}
<html><head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<noscript>Your browser does not support JavaScript!</noscript>
<link rel="icon" href="data:;base64,=">
<title>TMS Web Project</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200">
<link crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="css/App.css" rel="stylesheet" type="text/css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap" rel="stylesheet">
<script type="text/javascript" src="$(ProjectName).js"></script>
<script src="https://smtpjs.com/v3/smtp.js"></script>
<style>
.material-symbols-outlined {
font-variation-settings:
'FILL' 1,
'wght' 600,
'GRAD' 0,
'opsz' 24;
}
</style>
</head>
<body>
<script type="text/javascript">
rtl.run();
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
unit uSmtpJsWrapper;
interface
type
TSmtpJsWrapper = class
class procedure Send(const ARecipient, AName, ASender, ASubject, ABody: string);
end;
implementation
class procedure TSmtpJsWrapper.Send(const ARecipient, AName, ASender, ASubject, ABody: string);
var
LBody: string;
begin
Lbody := AName + #10 + ABody;
// The PAS2JS compiler flag ignores the Delphi compliler, and uses the JavaScript compiler instead
// This allows for the code to run without errors
{$IFDEF PAS2JS}
asm
Email.send({
SecureToken : "71904338-da05-4feb-8d19-b2dd7a0436ed",
To : ARecipient,
From : ASender,
Subject : ASubject,
Body : LBody
}).then(
message => alert(message)
);
end;
{$ENDIF}
end;
end.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment