├── Compiled └── FluentHTML_Demo.exe ├── Demo ├── Ana_.fmx ├── Ana_.pas ├── FluentHTML_Demo.dpr ├── FluentHTML_Demo.dproj ├── FluentHTML_Demo.dproj.local ├── FluentHTML_Demo.res └── HTML_Pages_.pas ├── FluentWeb.dpk ├── FluentWeb.dproj ├── FluentWeb.dproj.local ├── FluentWeb.identcache ├── FluentWeb.res ├── FluentWebGroup.groupproj ├── FluentWebGroup.groupproj.local ├── README.md └── src ├── Classes_HTML5_.pas ├── Methods_HTML5_.pas └── Types_HTML5_.pas /Compiled/FluentHTML_Demo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uparlayan/FluentHTML/c5983beab9081e3b04b76b67f0969017a43d4355/Compiled/FluentHTML_Demo.exe -------------------------------------------------------------------------------- /Demo/Ana_.fmx: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object pnl_Toolbar: TPanel 12 | Align = Top 13 | Padding.Left = 9.000000000000000000 14 | Padding.Top = 9.000000000000000000 15 | Padding.Right = 9.000000000000000000 16 | Padding.Bottom = 9.000000000000000000 17 | Size.Width = 640.000000000000000000 18 | Size.Height = 50.000000000000000000 19 | Size.PlatformDefault = False 20 | object bt_Test: TButton 21 | Align = Left 22 | Position.X = 9.000000000000000000 23 | Position.Y = 9.000000000000000000 24 | Size.Width = 80.000000000000000000 25 | Size.Height = 32.000000000000000000 26 | Size.PlatformDefault = False 27 | Text = 'Test' 28 | OnClick = KlikManager 29 | end 30 | end 31 | object WB: TWebBrowser 32 | Align = Client 33 | Size.Width = 640.000000000000000000 34 | Size.Height = 430.000000000000000000 35 | Size.PlatformDefault = False 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /Demo/Ana_.pas: -------------------------------------------------------------------------------- 1 | unit Ana_; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.WebBrowser, 8 | FMX.StdCtrls, FMX.Controls.Presentation; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | pnl_Toolbar: TPanel; 13 | bt_Test: TButton; 14 | WB: TWebBrowser; 15 | procedure KlikManager(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | Form1: TForm1; 24 | 25 | implementation 26 | 27 | uses 28 | HTML_Pages_; 29 | 30 | {$R *.fmx} 31 | 32 | procedure TForm1.KlikManager(Sender: TObject); 33 | begin 34 | if (Sender = bt_Test) then begin 35 | WB.LoadFromStrings(HomePage, ''); 36 | end else 37 | if (Sender = nil) then begin 38 | end else 39 | if (Sender = nil) then begin 40 | end else 41 | if (Sender = nil) then begin 42 | end else 43 | if (Sender = nil) then begin 44 | end else 45 | begin 46 | { Standart else sonu } 47 | end; 48 | end; 49 | 50 | end. 51 | -------------------------------------------------------------------------------- /Demo/FluentHTML_Demo.dpr: -------------------------------------------------------------------------------- 1 | program FluentHTML_Demo; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | Ana_ in 'Ana_.pas' {Form1}, 7 | HTML_Pages_ in 'HTML_Pages_.pas', 8 | Classes_HTML5_ in '..\src\Classes_HTML5_.pas', 9 | Methods_HTML5_ in '..\src\Methods_HTML5_.pas', 10 | Types_HTML5_ in '..\src\Types_HTML5_.pas'; 11 | 12 | {$R *.res} 13 | 14 | begin 15 | ReportMemoryLeaksOnShutdown := True; 16 | Application.Initialize; 17 | Application.CreateForm(TForm1, Form1); 18 | Application.Run; 19 | end. 20 | -------------------------------------------------------------------------------- /Demo/FluentHTML_Demo.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {0EE73B03-9D5C-4983-AE9B-9E28260D783E} 4 | 19.0 5 | FMX 6 | True 7 | Debug 8 | Win32 9 | 37915 10 | Application 11 | FluentHTML_Demo.dpr 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Base 54 | true 55 | 56 | 57 | true 58 | Cfg_1 59 | true 60 | true 61 | 62 | 63 | true 64 | Cfg_1 65 | true 66 | true 67 | 68 | 69 | true 70 | Base 71 | true 72 | 73 | 74 | true 75 | Cfg_2 76 | true 77 | true 78 | 79 | 80 | true 81 | Cfg_2 82 | true 83 | true 84 | 85 | 86 | .\$(Platform)\$(Config) 87 | .\$(Platform)\$(Config) 88 | false 89 | false 90 | false 91 | false 92 | false 93 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 94 | true 95 | true 96 | true 97 | true 98 | true 99 | true 100 | true 101 | true 102 | $(BDS)\bin\delphi_PROJECTICON.ico 103 | $(BDS)\bin\delphi_PROJECTICNS.icns 104 | FluentHTML_Demo 105 | 106 | 107 | DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;ibxpress;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;ibxbindings;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) 108 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 109 | Debug 110 | true 111 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 112 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 113 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 114 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 115 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 116 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 117 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 118 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 119 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 120 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 121 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 122 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 123 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 124 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 125 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar 126 | 127 | 128 | DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;ibxpress;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;ibxbindings;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) 129 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 130 | Debug 131 | true 132 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 133 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 134 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 135 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 136 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 137 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 138 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 139 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 140 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 141 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 142 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 143 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 144 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 145 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 146 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar 147 | 148 | 149 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;ibxpress;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;ibxbindings;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) 150 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers 151 | iPhoneAndiPad 152 | true 153 | Debug 154 | $(MSBuildProjectName) 155 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png 156 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png 157 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png 158 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png 159 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png 160 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png 161 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png 162 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png 163 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png 164 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png 165 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png 166 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png 167 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png 168 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png 169 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png 170 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png 171 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png 172 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png 173 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png 174 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png 175 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png 176 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png 177 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png 178 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png 179 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png 180 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png 181 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png 182 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png 183 | 184 | 185 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;ibxpress;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;ibxbindings;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) 186 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers 187 | iPhoneAndiPad 188 | true 189 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png 190 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png 191 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png 192 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png 193 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png 194 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png 195 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png 196 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png 197 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png 198 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png 199 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png 200 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png 201 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png 202 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png 203 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png 204 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png 205 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png 206 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png 207 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png 208 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png 209 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png 210 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png 211 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png 212 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png 213 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png 214 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png 215 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png 216 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png 217 | 10.0 218 | 219 | 220 | DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) 221 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers 222 | Debug 223 | true 224 | 225 | 226 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;FluentPack;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;FluentWeb;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) 227 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 228 | Debug 229 | true 230 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 231 | 1033 232 | $(BDS)\bin\default_app.manifest 233 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 234 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 235 | ..\Compiled 236 | ..\Compiled\Dcu 237 | 238 | 239 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) 240 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 241 | Debug 242 | true 243 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 244 | 1033 245 | $(BDS)\bin\default_app.manifest 246 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 247 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 248 | 249 | 250 | DEBUG;$(DCC_Define) 251 | true 252 | false 253 | true 254 | true 255 | true 256 | 257 | 258 | false 259 | true 260 | PerMonitorV2 261 | true 262 | 1033 263 | 264 | 265 | true 266 | PerMonitorV2 267 | 268 | 269 | false 270 | RELEASE;$(DCC_Define) 271 | 0 272 | 0 273 | 274 | 275 | true 276 | PerMonitorV2 277 | 278 | 279 | true 280 | PerMonitorV2 281 | 282 | 283 | 284 | MainSource 285 | 286 | 287 |
Form1
288 | fmx 289 |
290 | 291 | 292 | 293 | 294 | 295 | Cfg_2 296 | Base 297 | 298 | 299 | Base 300 | 301 | 302 | Cfg_1 303 | Base 304 | 305 |
306 | 307 | Delphi.Personality.12 308 | Application 309 | 310 | 311 | 312 | FluentHTML_Demo.dpr 313 | 314 | 315 | Microsoft Office 2000 Sample Automation Server Wrapper Components 316 | Microsoft Office XP Sample Automation Server Wrapper Components 317 | 318 | 319 | 320 | True 321 | True 322 | False 323 | True 324 | True 325 | False 326 | True 327 | True 328 | True 329 | 330 | 331 | 332 | 333 | true 334 | 335 | 336 | 337 | 338 | true 339 | 340 | 341 | 342 | 343 | true 344 | 345 | 346 | 347 | 348 | FluentHTML_Demo.exe 349 | true 350 | 351 | 352 | 353 | 354 | 1 355 | 356 | 357 | Contents\MacOS 358 | 1 359 | 360 | 361 | 0 362 | 363 | 364 | 365 | 366 | classes 367 | 1 368 | 369 | 370 | classes 371 | 1 372 | 373 | 374 | 375 | 376 | res\xml 377 | 1 378 | 379 | 380 | res\xml 381 | 1 382 | 383 | 384 | 385 | 386 | library\lib\armeabi-v7a 387 | 1 388 | 389 | 390 | 391 | 392 | library\lib\armeabi 393 | 1 394 | 395 | 396 | library\lib\armeabi 397 | 1 398 | 399 | 400 | 401 | 402 | library\lib\armeabi-v7a 403 | 1 404 | 405 | 406 | 407 | 408 | library\lib\mips 409 | 1 410 | 411 | 412 | library\lib\mips 413 | 1 414 | 415 | 416 | 417 | 418 | library\lib\armeabi-v7a 419 | 1 420 | 421 | 422 | library\lib\arm64-v8a 423 | 1 424 | 425 | 426 | 427 | 428 | library\lib\armeabi-v7a 429 | 1 430 | 431 | 432 | 433 | 434 | res\drawable 435 | 1 436 | 437 | 438 | res\drawable 439 | 1 440 | 441 | 442 | 443 | 444 | res\values 445 | 1 446 | 447 | 448 | res\values 449 | 1 450 | 451 | 452 | 453 | 454 | res\values-v21 455 | 1 456 | 457 | 458 | res\values-v21 459 | 1 460 | 461 | 462 | 463 | 464 | res\values 465 | 1 466 | 467 | 468 | res\values 469 | 1 470 | 471 | 472 | 473 | 474 | res\drawable 475 | 1 476 | 477 | 478 | res\drawable 479 | 1 480 | 481 | 482 | 483 | 484 | res\drawable-xxhdpi 485 | 1 486 | 487 | 488 | res\drawable-xxhdpi 489 | 1 490 | 491 | 492 | 493 | 494 | res\drawable-ldpi 495 | 1 496 | 497 | 498 | res\drawable-ldpi 499 | 1 500 | 501 | 502 | 503 | 504 | res\drawable-mdpi 505 | 1 506 | 507 | 508 | res\drawable-mdpi 509 | 1 510 | 511 | 512 | 513 | 514 | res\drawable-hdpi 515 | 1 516 | 517 | 518 | res\drawable-hdpi 519 | 1 520 | 521 | 522 | 523 | 524 | res\drawable-xhdpi 525 | 1 526 | 527 | 528 | res\drawable-xhdpi 529 | 1 530 | 531 | 532 | 533 | 534 | res\drawable-mdpi 535 | 1 536 | 537 | 538 | res\drawable-mdpi 539 | 1 540 | 541 | 542 | 543 | 544 | res\drawable-hdpi 545 | 1 546 | 547 | 548 | res\drawable-hdpi 549 | 1 550 | 551 | 552 | 553 | 554 | res\drawable-xhdpi 555 | 1 556 | 557 | 558 | res\drawable-xhdpi 559 | 1 560 | 561 | 562 | 563 | 564 | res\drawable-xxhdpi 565 | 1 566 | 567 | 568 | res\drawable-xxhdpi 569 | 1 570 | 571 | 572 | 573 | 574 | res\drawable-xxxhdpi 575 | 1 576 | 577 | 578 | res\drawable-xxxhdpi 579 | 1 580 | 581 | 582 | 583 | 584 | res\drawable-small 585 | 1 586 | 587 | 588 | res\drawable-small 589 | 1 590 | 591 | 592 | 593 | 594 | res\drawable-normal 595 | 1 596 | 597 | 598 | res\drawable-normal 599 | 1 600 | 601 | 602 | 603 | 604 | res\drawable-large 605 | 1 606 | 607 | 608 | res\drawable-large 609 | 1 610 | 611 | 612 | 613 | 614 | res\drawable-xlarge 615 | 1 616 | 617 | 618 | res\drawable-xlarge 619 | 1 620 | 621 | 622 | 623 | 624 | res\values 625 | 1 626 | 627 | 628 | res\values 629 | 1 630 | 631 | 632 | 633 | 634 | 1 635 | 636 | 637 | Contents\MacOS 638 | 1 639 | 640 | 641 | 0 642 | 643 | 644 | 645 | 646 | Contents\MacOS 647 | 1 648 | .framework 649 | 650 | 651 | Contents\MacOS 652 | 1 653 | .framework 654 | 655 | 656 | 0 657 | 658 | 659 | 660 | 661 | 1 662 | .dylib 663 | 664 | 665 | 1 666 | .dylib 667 | 668 | 669 | 1 670 | .dylib 671 | 672 | 673 | Contents\MacOS 674 | 1 675 | .dylib 676 | 677 | 678 | Contents\MacOS 679 | 1 680 | .dylib 681 | 682 | 683 | 0 684 | .dll;.bpl 685 | 686 | 687 | 688 | 689 | 1 690 | .dylib 691 | 692 | 693 | 1 694 | .dylib 695 | 696 | 697 | 1 698 | .dylib 699 | 700 | 701 | Contents\MacOS 702 | 1 703 | .dylib 704 | 705 | 706 | Contents\MacOS 707 | 1 708 | .dylib 709 | 710 | 711 | 0 712 | .bpl 713 | 714 | 715 | 716 | 717 | 0 718 | 719 | 720 | 0 721 | 722 | 723 | 0 724 | 725 | 726 | 0 727 | 728 | 729 | 0 730 | 731 | 732 | Contents\Resources\StartUp\ 733 | 0 734 | 735 | 736 | Contents\Resources\StartUp\ 737 | 0 738 | 739 | 740 | 0 741 | 742 | 743 | 744 | 745 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 746 | 1 747 | 748 | 749 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 750 | 1 751 | 752 | 753 | 754 | 755 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 756 | 1 757 | 758 | 759 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 760 | 1 761 | 762 | 763 | 764 | 765 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 766 | 1 767 | 768 | 769 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 770 | 1 771 | 772 | 773 | 774 | 775 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 776 | 1 777 | 778 | 779 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 780 | 1 781 | 782 | 783 | 784 | 785 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 786 | 1 787 | 788 | 789 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 790 | 1 791 | 792 | 793 | 794 | 795 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 796 | 1 797 | 798 | 799 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 800 | 1 801 | 802 | 803 | 804 | 805 | 1 806 | 807 | 808 | 1 809 | 810 | 811 | 812 | 813 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 814 | 1 815 | 816 | 817 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 818 | 1 819 | 820 | 821 | 822 | 823 | 1 824 | 825 | 826 | 1 827 | 828 | 829 | 830 | 831 | ..\ 832 | 1 833 | 834 | 835 | ..\ 836 | 1 837 | 838 | 839 | 840 | 841 | 1 842 | 843 | 844 | 1 845 | 846 | 847 | 1 848 | 849 | 850 | 851 | 852 | ..\$(PROJECTNAME).launchscreen 853 | 64 854 | 855 | 856 | ..\$(PROJECTNAME).launchscreen 857 | 64 858 | 859 | 860 | 861 | 862 | 1 863 | 864 | 865 | 1 866 | 867 | 868 | 1 869 | 870 | 871 | 872 | 873 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 874 | 1 875 | 876 | 877 | 878 | 879 | ..\ 880 | 1 881 | 882 | 883 | ..\ 884 | 1 885 | 886 | 887 | 888 | 889 | Contents 890 | 1 891 | 892 | 893 | Contents 894 | 1 895 | 896 | 897 | 898 | 899 | Contents\Resources 900 | 1 901 | 902 | 903 | Contents\Resources 904 | 1 905 | 906 | 907 | 908 | 909 | library\lib\armeabi-v7a 910 | 1 911 | 912 | 913 | library\lib\arm64-v8a 914 | 1 915 | 916 | 917 | 1 918 | 919 | 920 | 1 921 | 922 | 923 | 1 924 | 925 | 926 | 1 927 | 928 | 929 | Contents\MacOS 930 | 1 931 | 932 | 933 | Contents\MacOS 934 | 1 935 | 936 | 937 | 0 938 | 939 | 940 | 941 | 942 | library\lib\armeabi-v7a 943 | 1 944 | 945 | 946 | 947 | 948 | 1 949 | 950 | 951 | 1 952 | 953 | 954 | 955 | 956 | Assets 957 | 1 958 | 959 | 960 | Assets 961 | 1 962 | 963 | 964 | 965 | 966 | Assets 967 | 1 968 | 969 | 970 | Assets 971 | 1 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 12 987 | 988 | 989 | 990 | 991 |
992 | -------------------------------------------------------------------------------- /Demo/FluentHTML_Demo.dproj.local: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 1899.12.30 00:00:00.000.480,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Classes_HTML5_.pas 5 | 1899.12.30 00:00:00.000.564,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Types_HTML5_.pas 6 | 1899.12.30 00:00:00.000.170,=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\Unit1.pas 7 | 1899.12.30 00:00:00.000.857,P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\Unit1.pas=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\HTML_Page_.pas 8 | 1899.12.30 00:00:00.000.418,P:\Dev\Delphi\ProjSYDNEY\Unit1.fmx=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\Ana_.fmx 9 | 1899.12.30 00:00:00.000.180,P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\HTML_Page_.pas=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\HTML_Pages_.pas 10 | 1899.12.30 00:00:00.000.523,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Methods_HTML5_.pas 11 | 1899.12.30 00:00:00.000.234,=P:\Dev\Delphi\ProjSYDNEY\Unit1.pas 12 | 1899.12.30 00:00:00.000.418,P:\Dev\Delphi\ProjSYDNEY\Unit1.pas=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\Ana_.pas 13 | 1899.12.30 00:00:00.000.985,P:\Dev\Delphi\ProjSYDNEY\Project1.dproj=P:\Dev\Delphi\ProjGIT\FluentHTML\Demo\FluentHTML_Demo.dproj 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Demo/FluentHTML_Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uparlayan/FluentHTML/c5983beab9081e3b04b76b67f0969017a43d4355/Demo/FluentHTML_Demo.res -------------------------------------------------------------------------------- /Demo/HTML_Pages_.pas: -------------------------------------------------------------------------------- 1 | unit HTML_Pages_; 2 | 3 | interface 4 | 5 | uses 6 | Classes_HTML5_ 7 | , Methods_HTML5_ 8 | ; 9 | 10 | function HomePage: string; 11 | 12 | implementation 13 | 14 | uses 15 | System.SysUtils 16 | ; 17 | 18 | function HomePage: string; 19 | var 20 | aHTML: THTMLTag; 21 | begin 22 | 23 | aHTML := html([ 24 | head([ meta.charset('UTF-8') 25 | , title('Basit HTML4 Haber Kağıdı') 26 | ]) 27 | , body([ h1('HTML4 Simple Newsletter template in Firefox 37 with JAWS 15') 28 | , p_('This video is a captioned demonstration of a simple newsletter written in HTML4. It is being displayed in Firefox 37 and accessed using JAWS 15.') 29 | , div_( 30 | video([ source().src('http://weba11y.com/Examples/HTML5A11y2015/demos/SimpleNewsletter1.mp4').type_('video/mp4') 31 | , source().src('http://weba11y.com/Examples/HTML5A11y2015/demos/SimpleNewsletter1.webm').type_('video/webm') 32 | , source().src('http://weba11y.com/Examples/HTML5A11y2015/demos/SimpleNewsletter1.ogv').type_('video/ogv') 33 | ]).style('height:765px;width:915px;') 34 | ).style('margin-left:200px') 35 | ]) 36 | ]).lang('en') 37 | ; 38 | { 39 | weba11y.com/Examples/HTML5A11y2015/demos/ 40 | 41 |
42 | 49 |
50 | 51 | } 52 | Result := ''#13#10 + aHTML.ToString; 53 | FreeAndNil(aHTML); 54 | end; 55 | 56 | end. 57 | -------------------------------------------------------------------------------- /FluentWeb.dpk: -------------------------------------------------------------------------------- 1 | package FluentWeb; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$IMPLICITBUILD ON} 29 | 30 | requires 31 | rtl; 32 | 33 | contains 34 | Classes_HTML5_ in 'src\Classes_HTML5_.pas', 35 | Methods_HTML5_ in 'src\Methods_HTML5_.pas', 36 | Types_HTML5_ in 'src\Types_HTML5_.pas'; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /FluentWeb.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {12A2FE37-30F2-48FF-B066-9351ED82C161} 4 | FluentWeb.dpk 5 | 19.0 6 | None 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Package 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Base 54 | true 55 | 56 | 57 | true 58 | Base 59 | true 60 | 61 | 62 | true 63 | Cfg_1 64 | true 65 | true 66 | 67 | 68 | true 69 | Base 70 | true 71 | 72 | 73 | .\$(Platform)\$(Config) 74 | .\$(Platform)\$(Config) 75 | false 76 | false 77 | false 78 | false 79 | false 80 | true 81 | true 82 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 83 | All 84 | FluentWeb 85 | 86 | 87 | None 88 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar 89 | rtl;$(DCC_UsePackage) 90 | 91 | 92 | None 93 | android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar 94 | rtl;$(DCC_UsePackage) 95 | 96 | 97 | None 98 | rtl;$(DCC_UsePackage) 99 | 100 | 101 | None 102 | rtl;$(DCC_UsePackage) 103 | 104 | 105 | rtl;$(DCC_UsePackage) 106 | 107 | 108 | rtl;$(DCC_UsePackage) 109 | 110 | 111 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 112 | Debug 113 | true 114 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 115 | 1033 116 | .\Compiled\Dcu 117 | rtl;$(DCC_UsePackage) 118 | 119 | 120 | rtl;$(DCC_UsePackage) 121 | 122 | 123 | DEBUG;$(DCC_Define) 124 | true 125 | false 126 | true 127 | true 128 | true 129 | 130 | 131 | false 132 | true 133 | 1033 134 | 135 | 136 | false 137 | RELEASE;$(DCC_Define) 138 | 0 139 | 0 140 | 141 | 142 | 143 | MainSource 144 | 145 | 146 | 147 | 148 | 149 | 150 | Cfg_2 151 | Base 152 | 153 | 154 | Base 155 | 156 | 157 | Cfg_1 158 | Base 159 | 160 | 161 | 162 | Delphi.Personality.12 163 | Package 164 | 165 | 166 | 167 | FluentWeb.dpk 168 | 169 | 170 | Microsoft Office 2000 Sample Automation Server Wrapper Components 171 | Microsoft Office XP Sample Automation Server Wrapper Components 172 | 173 | 174 | 175 | False 176 | False 177 | False 178 | False 179 | False 180 | False 181 | True 182 | False 183 | 184 | 185 | 186 | 187 | true 188 | 189 | 190 | 191 | 192 | true 193 | 194 | 195 | 196 | 197 | FluentWeb.bpl 198 | true 199 | 200 | 201 | 202 | 203 | true 204 | 205 | 206 | 207 | 208 | 1 209 | 210 | 211 | 0 212 | 213 | 214 | 215 | 216 | classes 217 | 1 218 | 219 | 220 | classes 221 | 1 222 | 223 | 224 | 225 | 226 | res\xml 227 | 1 228 | 229 | 230 | res\xml 231 | 1 232 | 233 | 234 | 235 | 236 | library\lib\armeabi-v7a 237 | 1 238 | 239 | 240 | 241 | 242 | library\lib\armeabi 243 | 1 244 | 245 | 246 | library\lib\armeabi 247 | 1 248 | 249 | 250 | 251 | 252 | library\lib\armeabi-v7a 253 | 1 254 | 255 | 256 | 257 | 258 | library\lib\mips 259 | 1 260 | 261 | 262 | library\lib\mips 263 | 1 264 | 265 | 266 | 267 | 268 | library\lib\armeabi-v7a 269 | 1 270 | 271 | 272 | library\lib\arm64-v8a 273 | 1 274 | 275 | 276 | 277 | 278 | library\lib\armeabi-v7a 279 | 1 280 | 281 | 282 | 283 | 284 | res\drawable 285 | 1 286 | 287 | 288 | res\drawable 289 | 1 290 | 291 | 292 | 293 | 294 | res\values 295 | 1 296 | 297 | 298 | res\values 299 | 1 300 | 301 | 302 | 303 | 304 | res\values-v21 305 | 1 306 | 307 | 308 | res\values-v21 309 | 1 310 | 311 | 312 | 313 | 314 | res\values 315 | 1 316 | 317 | 318 | res\values 319 | 1 320 | 321 | 322 | 323 | 324 | res\drawable 325 | 1 326 | 327 | 328 | res\drawable 329 | 1 330 | 331 | 332 | 333 | 334 | res\drawable-xxhdpi 335 | 1 336 | 337 | 338 | res\drawable-xxhdpi 339 | 1 340 | 341 | 342 | 343 | 344 | res\drawable-ldpi 345 | 1 346 | 347 | 348 | res\drawable-ldpi 349 | 1 350 | 351 | 352 | 353 | 354 | res\drawable-mdpi 355 | 1 356 | 357 | 358 | res\drawable-mdpi 359 | 1 360 | 361 | 362 | 363 | 364 | res\drawable-hdpi 365 | 1 366 | 367 | 368 | res\drawable-hdpi 369 | 1 370 | 371 | 372 | 373 | 374 | res\drawable-xhdpi 375 | 1 376 | 377 | 378 | res\drawable-xhdpi 379 | 1 380 | 381 | 382 | 383 | 384 | res\drawable-mdpi 385 | 1 386 | 387 | 388 | res\drawable-mdpi 389 | 1 390 | 391 | 392 | 393 | 394 | res\drawable-hdpi 395 | 1 396 | 397 | 398 | res\drawable-hdpi 399 | 1 400 | 401 | 402 | 403 | 404 | res\drawable-xhdpi 405 | 1 406 | 407 | 408 | res\drawable-xhdpi 409 | 1 410 | 411 | 412 | 413 | 414 | res\drawable-xxhdpi 415 | 1 416 | 417 | 418 | res\drawable-xxhdpi 419 | 1 420 | 421 | 422 | 423 | 424 | res\drawable-xxxhdpi 425 | 1 426 | 427 | 428 | res\drawable-xxxhdpi 429 | 1 430 | 431 | 432 | 433 | 434 | res\drawable-small 435 | 1 436 | 437 | 438 | res\drawable-small 439 | 1 440 | 441 | 442 | 443 | 444 | res\drawable-normal 445 | 1 446 | 447 | 448 | res\drawable-normal 449 | 1 450 | 451 | 452 | 453 | 454 | res\drawable-large 455 | 1 456 | 457 | 458 | res\drawable-large 459 | 1 460 | 461 | 462 | 463 | 464 | res\drawable-xlarge 465 | 1 466 | 467 | 468 | res\drawable-xlarge 469 | 1 470 | 471 | 472 | 473 | 474 | res\values 475 | 1 476 | 477 | 478 | res\values 479 | 1 480 | 481 | 482 | 483 | 484 | 1 485 | 486 | 487 | 1 488 | 489 | 490 | 0 491 | 492 | 493 | 494 | 495 | 1 496 | .framework 497 | 498 | 499 | 1 500 | .framework 501 | 502 | 503 | 0 504 | 505 | 506 | 507 | 508 | 1 509 | .dylib 510 | 511 | 512 | 1 513 | .dylib 514 | 515 | 516 | 0 517 | .dll;.bpl 518 | 519 | 520 | 521 | 522 | 1 523 | .dylib 524 | 525 | 526 | 1 527 | .dylib 528 | 529 | 530 | 1 531 | .dylib 532 | 533 | 534 | 1 535 | .dylib 536 | 537 | 538 | 1 539 | .dylib 540 | 541 | 542 | 0 543 | .bpl 544 | 545 | 546 | 547 | 548 | 0 549 | 550 | 551 | 0 552 | 553 | 554 | 0 555 | 556 | 557 | 0 558 | 559 | 560 | 0 561 | 562 | 563 | 0 564 | 565 | 566 | 0 567 | 568 | 569 | 0 570 | 571 | 572 | 573 | 574 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 575 | 1 576 | 577 | 578 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 579 | 1 580 | 581 | 582 | 583 | 584 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 585 | 1 586 | 587 | 588 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 589 | 1 590 | 591 | 592 | 593 | 594 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 595 | 1 596 | 597 | 598 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 599 | 1 600 | 601 | 602 | 603 | 604 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 605 | 1 606 | 607 | 608 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 609 | 1 610 | 611 | 612 | 613 | 614 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 615 | 1 616 | 617 | 618 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 619 | 1 620 | 621 | 622 | 623 | 624 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 625 | 1 626 | 627 | 628 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 629 | 1 630 | 631 | 632 | 633 | 634 | 1 635 | 636 | 637 | 1 638 | 639 | 640 | 641 | 642 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 643 | 1 644 | 645 | 646 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 647 | 1 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 1 657 | 658 | 659 | 1 660 | 661 | 662 | 1 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | Contents\Resources 671 | 1 672 | 673 | 674 | Contents\Resources 675 | 1 676 | 677 | 678 | 679 | 680 | library\lib\armeabi-v7a 681 | 1 682 | 683 | 684 | library\lib\arm64-v8a 685 | 1 686 | 687 | 688 | 1 689 | 690 | 691 | 1 692 | 693 | 694 | 1 695 | 696 | 697 | 1 698 | 699 | 700 | 1 701 | 702 | 703 | 1 704 | 705 | 706 | 0 707 | 708 | 709 | 710 | 711 | library\lib\armeabi-v7a 712 | 1 713 | 714 | 715 | 716 | 717 | 1 718 | 719 | 720 | 1 721 | 722 | 723 | 724 | 725 | Assets 726 | 1 727 | 728 | 729 | Assets 730 | 1 731 | 732 | 733 | 734 | 735 | Assets 736 | 1 737 | 738 | 739 | Assets 740 | 1 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 12 756 | 757 | 758 | 759 | 760 | 761 | -------------------------------------------------------------------------------- /FluentWeb.dproj.local: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 1899.12.30 00:00:00.000.444,P:\Dev\Delphi\ProjSYDNEY\Package1.dproj=P:\Dev\Delphi\ProjGIT\FluentHTML\FluentWeb.dproj 5 | 1899.12.30 00:00:00.000.875,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Types_HTML5_.pas 6 | 1899.12.30 00:00:00.000.845,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Methods_HTML5_.pas 7 | 1899.12.30 00:00:00.000.810,=P:\Dev\Delphi\ProjGIT\FluentHTML\src\Classes_HTML5_.pas 8 | 1899.12.30 00:00:00.000.556,=rtl.dcp 9 | 10 | 11 | -------------------------------------------------------------------------------- /FluentWeb.identcache: -------------------------------------------------------------------------------- 1 | 7P:\Dev\Delphi\ProjGIT\FluentHTML\src\Classes_HTML5_.pas7P:\Dev\Delphi\ProjGIT\FluentHTML\src\Methods_HTML5_.pas5P:\Dev\Delphi\ProjGIT\FluentHTML\src\Types_HTML5_.pas -------------------------------------------------------------------------------- /FluentWeb.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uparlayan/FluentHTML/c5983beab9081e3b04b76b67f0969017a43d4355/FluentWeb.res -------------------------------------------------------------------------------- /FluentWebGroup.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {DF820CDA-784A-4879-AAFA-949989FBE7D9} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 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 | -------------------------------------------------------------------------------- /FluentWebGroup.groupproj.local: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FluentHTML 2 | 3 | - Pascal'da HTML taglarını doğrudan kullanabilmek için geliştirilmiş bir kütüphanedir. 4 | - HTML5 Tagları esas alınmıştır. 5 | - Sadece HTML5 Taglarını üretmek için kullanılabilir, Parse işlevi YOKTUR... 6 | 7 | ```pascal 8 | 9 | uses 10 | Classes_HTML5_ // THTMLTag Class definition 11 | , Methods_HTML5_ // HTML Tags definitions... 12 | ; 13 | 14 | ... 15 | ... 16 | ... 17 | 18 | procedure TWebModule.PageProducer1HTMLTag( Sender : TObject 19 | ; Tag : TTag 20 | ; const TagString : string 21 | ; TagParams : TStrings 22 | ; var ReplaceText : string 23 | ); 24 | var 25 | aHTML: THTMLTag; 26 | begin 27 | if SameText(TagString, 'userprofile') then begin 28 | aHTML:= table([ 29 | thead([ 30 | tr( [ th('Kullanıcı Profili').colspan('2') ]) 31 | , tr( [ th('Alan') , th('Değer') ]) 32 | ]) 33 | , tbody([ 34 | tr( [ td('ID') , td(Oturum.User.ID.ToString) ]) 35 | , tr( [ td('Kullanıcı Adı') , td(Oturum.User.UserName) ]) 36 | , tr( [ td('Şifre') , td(Oturum.User.Password) ]) 37 | , tr( [ td('Ad Soyad') , td(Oturum.User.AdSoyad) ]) 38 | , tr( [ td('Eposta') , td(Oturum.User.Eposta) ]) 39 | , tr( [ td('Dil') , td(Oturum.User.Dil) ]) 40 | , tr( [ td('Durum') , td(Oturum.User.Durum) ]) 41 | ]) 42 | ]).class_('vg'); 43 | 44 | ReplaceText := aHTML.ToString; 45 | end else 46 | if SameText(TagString, 'userprofileform') then begin 47 | aHTML:= form( 48 | [ fieldset('Kullanıcı Profilinizi Düzenleyin') 49 | , label_( 'Kullanıcı Adı' , [ br, input.placeholder('Lütfen bir kullanıcı adı belirtin' ).id('username_id').name('username').value('').type_('text').autocomplete('off') ]) 50 | , br 51 | , label_( 'Şifreniz' , [ br, input.placeholder('Lütfen 8 basamaklı bir şifre yazınız' ).id('password_id').name('password').value('').type_('password').autocomplete('off') ]) 52 | , br 53 | , label_( 'Ad ve Soyadınız' , [ br, input.placeholder('Lütfen tam adınızı yazınız' ).id('fullname_id').name('fullname').value('').type_('text').autocomplete('off') ]) 54 | , br 55 | , label_( 'Eposta Adresiniz', [ br, input.placeholder('Size ait Eposta adresinizi yazınız' ).id('emailadr_id').name('emailadr').value('').type_('text').autocomplete('off') ]) 56 | , br 57 | , label_( 'Arabirim Dili' , [ br, input.placeholder('Bu siteyi hangi dilde kullanacaksınız?').id('language_id').name('language').value('').type_('text').autocomplete('off') ]) 58 | ]).action('/profileedit').method('post'); 59 | ReplaceText := aHTML.ToString; 60 | end else 61 | begin 62 | { Standart else sonu } 63 | end; 64 | if Assigned(aHTML) then FreeAndNil(aHTML); 65 | end; 66 | ``` 67 | -------------------------------------------------------------------------------- /src/Classes_HTML5_.pas: -------------------------------------------------------------------------------- 1 | /// 2 | /// HTML TAG NESNESİNİN tanımlandığı birimdir. 3 | /// 4 | /// 5 | /// HTML Taglarının yapısını tanımlar. Buna olaylar, öznitelikler ve alt 6 | /// elemanlar da dahildir. 7 | /// 8 | /// 9 | /// Uğur PARLAYAN 10 | /// 11 | /// 12 | /// 01.01.2019 13 | /// 14 | unit Classes_HTML5_; 15 | 16 | interface 17 | 18 | {$region 'gözardı edilecek olan uyarı ve ipucu listesi'} 19 | { // Uyarı ve ipucu listesi aşağıdaki linkte yer alıyor. UP. 20 | https://marc.durdin.net/2012/05/delphi-xe2s-hidden-hints-and-warnings-options/ } 21 | {$WARN UNIT_PLATFORM OFF} // Platfown Spesifik uyarısını kapatır 22 | {$WARN SYMBOL_PLATFORM OFF} // W1002 spesifik platform, incele ( https://stackoverflow.com/questions/352479/delphi-warning-w1002-symbol-filesetdate-is-specific-to-a-platform ) 23 | {$WARN SUSPICIOUS_TYPECAST OFF} // W1044 spesifik platform, incele ( https://stackoverflow.com/questions/283759/convert-string-to-pansichar-in-delphi-2009 ) 24 | {$WARN IMPLICIT_STRING_CAST OFF} // W1057 (Örtük tip dönüştürme: String to utf8string) 25 | {$WARN IMPLICIT_STRING_CAST_LOSS OFF} // W1058 (örtük tip dönüştürme: utf8string to string) 26 | {$WARN NO_RETVAL OFF} // W1058 (örtük tip dönüştürme: utf8string to string) 27 | {$WARN HIDDEN_VIRTUAL OFF} // W1010 (Temel sınıftaki sanal yöntem gizlenmiş...) 28 | {$endregion} 29 | 30 | uses 31 | Types_HTML5_ // THTMLAttributes = array of string; 32 | , System.Generics.Collections // TObjectList 33 | ; 34 | 35 | type 36 | THTMLTag = class(TInterfacedObject) 37 | private 38 | FItems : TObjectList; 39 | FTagName : String; 40 | FContext : String; 41 | {$region 'attributes'} 42 | Faccesskey : String; // Global öznitelik 43 | Fautocapitalize : String; // Global öznitelik 44 | Fclass_ : String; // Global öznitelik 45 | Fcontenteditable: String; // Global öznitelik 46 | Fcontextmenu : String; // Global öznitelik 47 | Fdata : String; // Global öznitelik 48 | Fdir : String; // Global öznitelik 49 | Fdraggable : String; // Global öznitelik 50 | Fdropzone : String; // Global öznitelik 51 | Fhidden : String; // Global öznitelik 52 | Fid : String; // Global öznitelik 53 | Fitemprop : String; // Global öznitelik 54 | Flang : String; // Global öznitelik 55 | Fslot : String; // Global öznitelik 56 | Fspellcheck : String; // Global öznitelik 57 | Fstyle : String; // Global öznitelik 58 | Ftabindex : String; // Global öznitelik 59 | Ftitle : String; // Global öznitelik 60 | Ftranslate : String; // Global öznitelik 61 | Faccept : String; // Yerel öznitelik 62 | Faccept_charset : String; // Yerel öznitelik 63 | Faction : String; // Yerel öznitelik 64 | Falign : String; // Yerel öznitelik 65 | Fallow : String; // Yerel öznitelik 66 | Falt : String; // Yerel öznitelik 67 | Fasync : String; // Yerel öznitelik 68 | Fautocomplete : String; // Yerel öznitelik 69 | Fautofocus : String; // Yerel öznitelik 70 | Fautoplay : String; // Yerel öznitelik 71 | Fbackground : String; // Yerel öznitelik 72 | Fbgcolor : String; // Yerel öznitelik 73 | Fborder : String; // Yerel öznitelik 74 | Fbuffered : String; // Yerel öznitelik 75 | Fchallenge : String; // Yerel öznitelik 76 | Fcharset : String; // Yerel öznitelik 77 | Fchecked : String; // Yerel öznitelik 78 | Fcite : String; // Yerel öznitelik 79 | Fcode : String; // Yerel öznitelik 80 | Fcodebase : String; // Yerel öznitelik 81 | Fcolor : String; // Yerel öznitelik 82 | Fcols : String; // Yerel öznitelik 83 | Fcolspan : String; // Yerel öznitelik 84 | Fcontent : String; // Yerel öznitelik 85 | Fcontrols : String; // Yerel öznitelik 86 | Fcoords : String; // Yerel öznitelik 87 | Fcrossorigin : String; // Yerel öznitelik 88 | Fcsp : String; // Yerel öznitelik 89 | Fdatetime : String; // Yerel öznitelik 90 | Fdecoding : String; // Yerel öznitelik 91 | Fdefault : String; // Yerel öznitelik 92 | Fdefer : String; // Yerel öznitelik 93 | Fdirname : String; // Yerel öznitelik 94 | Fdisabled : String; // Yerel öznitelik 95 | Fdownload : String; // Yerel öznitelik 96 | Fenctype : String; // Yerel öznitelik 97 | Fenterkeyhint : String; // Yerel öznitelik 98 | Ffor_ : String; // Yerel öznitelik 99 | Fform : String; // Yerel öznitelik 100 | Fformaction : String; // Yerel öznitelik 101 | Fformnovalidate : String; // Yerel öznitelik 102 | Fheaders : String; // Yerel öznitelik 103 | Fheight : String; // Yerel öznitelik 104 | Fhigh : String; // Yerel öznitelik 105 | Fhref : String; // Yerel öznitelik 106 | Fhreflang : String; // Yerel öznitelik 107 | Fhttp_equiv : String; // Yerel öznitelik 108 | Ficon : String; // Yerel öznitelik 109 | Fimportance : String; // Yerel öznitelik 110 | Fintegrity : String; // Yerel öznitelik 111 | Fintrinsicsize : String; // Yerel öznitelik 112 | Finputmode : String; // Yerel öznitelik 113 | Fismap : String; // Yerel öznitelik 114 | Fkeytype : String; // Yerel öznitelik 115 | Fkind : String; // Yerel öznitelik 116 | Flabel_ : String; // Yerel öznitelik 117 | Flanguage : String; // Yerel öznitelik 118 | Floading : String; // Yerel öznitelik 119 | Flist : String; // Yerel öznitelik 120 | Floop : String; // Yerel öznitelik 121 | Flow : String; // Yerel öznitelik 122 | Fmanifest : String; // Yerel öznitelik 123 | Fmax : String; // Yerel öznitelik 124 | Fmaxlength : String; // Yerel öznitelik 125 | Fminlength : String; // Yerel öznitelik 126 | Fmedia : String; // Yerel öznitelik 127 | Fmethod : String; // Yerel öznitelik 128 | Fmin : String; // Yerel öznitelik 129 | Fmultiple : String; // Yerel öznitelik 130 | Fmuted : String; // Yerel öznitelik 131 | Fname : String; // Yerel öznitelik 132 | Fnovalidate : String; // Yerel öznitelik 133 | Fopen : String; // Yerel öznitelik 134 | Foptimum : String; // Yerel öznitelik 135 | Fpattern : String; // Yerel öznitelik 136 | Fping : String; // Yerel öznitelik 137 | Fplaceholder : String; // Yerel öznitelik 138 | Fposter : String; // Yerel öznitelik 139 | Fpreload : String; // Yerel öznitelik 140 | Fradiogroup : String; // Yerel öznitelik 141 | Freadonly : String; // Yerel öznitelik 142 | Freferrerpolicy : String; // Yerel öznitelik 143 | Frel : String; // Yerel öznitelik 144 | Frequired : String; // Yerel öznitelik 145 | Freversed : String; // Yerel öznitelik 146 | Frows : String; // Yerel öznitelik 147 | Frowspan : String; // Yerel öznitelik 148 | Fsandbox : String; // Yerel öznitelik 149 | Fscope : String; // Yerel öznitelik 150 | Fscoped : String; // Yerel öznitelik 151 | Fselected : String; // Yerel öznitelik 152 | Fshape : String; // Yerel öznitelik 153 | Fsize : String; // Yerel öznitelik 154 | Fsizes : String; // Yerel öznitelik 155 | Fspan : String; // Yerel öznitelik 156 | Fsrc : String; // Yerel öznitelik 157 | Fsrcdoc : String; // Yerel öznitelik 158 | Fsrclang : String; // Yerel öznitelik 159 | Fsrcset : String; // Yerel öznitelik 160 | Fstart : String; // Yerel öznitelik 161 | Fstep : String; // Yerel öznitelik 162 | Fsummary : String; // Yerel öznitelik 163 | Ftarget : String; // Yerel öznitelik 164 | Ftype_ : String; // Yerel öznitelik 165 | Fusemap : String; // Yerel öznitelik 166 | Fvalue : String; // Yerel öznitelik 167 | Fwidth : String; // Yerel öznitelik 168 | Fwrap : String; // Yerel öznitelik 169 | {$endregion} 170 | {$region 'Events'} 171 | {$region 'window events'} 172 | Fonafterprint : String; 173 | Fonbeforeprint : String; 174 | Fonbeforeunload : String; 175 | Fonerror_ : String; 176 | Fonhashchange : String; 177 | Fonload : String; 178 | Fonmessage : String; 179 | Fonoffline : String; 180 | Fononline : String; 181 | Fonpagehide : String; 182 | Fonpageshow : String; 183 | Fonpopstate : String; 184 | Fonresize : String; 185 | Fonstorage : String; 186 | Fonunload : String; 187 | {$endregion} 188 | {$region 'form events'} 189 | Fonblur : String; 190 | Fonchange : String; 191 | Foncontextmenu : String; 192 | Fonfocus : String; 193 | Foninput : String; 194 | Foninvalid : String; 195 | Fonreset : String; 196 | Fonsearch : String; 197 | Fonselect : String; 198 | Fonsubmit : String; 199 | {$endregion} 200 | {$region 'keyboard events'} 201 | Fonkeydown : String; 202 | Fonkeypress : String; 203 | Fonkeyup : String; 204 | {$endregion} 205 | {$region 'mouse events'} 206 | Fonclick : String; 207 | Fondblclick : String; 208 | Fonmousedown : String; 209 | Fonmousemove : String; 210 | Fonmouseout : String; 211 | Fonmouseover : String; 212 | Fonmouseup : String; 213 | Fonmousewheel : String; 214 | Fonwheel : String; 215 | {$endregion} 216 | {$region 'drag events'} 217 | Fondrag : String; 218 | Fondragend : String; 219 | Fondragenter : String; 220 | Fondragleave : String; 221 | Fondragover : String; 222 | Fondragstart : String; 223 | Fondrop : String; 224 | Fonscroll : String; 225 | {$endregion} 226 | {$region 'clipboard events'} 227 | Foncopy : String; 228 | Foncut : String; 229 | Fonpaste : String; 230 | {$endregion} 231 | {$region 'media events'} 232 | Fonabort : String; 233 | Foncanplay : String; 234 | Foncanplaythrough : String; 235 | Foncuechange : String; 236 | Fondurationchange : String; 237 | Fonemptied : String; 238 | Fonended : String; 239 | Fonerror : String; 240 | Fonloadeddata : String; 241 | Fonloadedmetadata : String; 242 | Fonloadstart : String; 243 | Fonpause : String; 244 | Fonplay : String; 245 | Fonplaying : String; 246 | Fonprogress : String; 247 | Fonratechange : String; 248 | Fonseeked : String; 249 | Fonseeking : String; 250 | Fonstalled : String; 251 | Fonsuspend : String; 252 | Fontimeupdate : String; 253 | Fonvolumechange : String; 254 | Fonwaiting : String; 255 | {$endregion} 256 | {$region 'misc events'} 257 | Fontoggle : String; 258 | {$endregion} 259 | {$endregion} 260 | protected 261 | function ValidateAttribute ( SupportedTags: THTMLItems): Boolean; 262 | function iif(aSorgu: Boolean; aTrue, aFalse: String): String; 263 | function iin(aItem: String; aItemList: THTMLItems): Boolean; 264 | function Merge(aTag, aContent: String): String; 265 | procedure Clear; 266 | public 267 | property Items: TObjectList read FItems; 268 | function Item(const aIndex: Integer): THTMLTag; 269 | constructor Create; 270 | destructor Destroy; override; 271 | function TagName ( const Value: String): THTMLTag; 272 | function Context ( const Value: String): THTMLTag; overload; 273 | function Context ( const Value: THTMLTag): THTMLTag; overload; 274 | function ToString : String; 275 | {$region 'Attribute Tool'} 276 | {$endregion} 277 | {$region 'Attributes'} 278 | function accesskey ( const aValue: String): THTMLTag; 279 | function autocapitalize ( const aValue: String): THTMLTag; 280 | function class_ ( const aValue: String): THTMLTag; 281 | function contenteditable ( const aValue: String): THTMLTag; 282 | function contextmenu ( const aValue: String): THTMLTag; 283 | function data ( const aValue: String): THTMLTag; 284 | function dir ( const aValue: String): THTMLTag; 285 | function draggable ( const aValue: String): THTMLTag; 286 | function dropzone ( const aValue: String): THTMLTag; 287 | function hidden ( const aValue: String): THTMLTag; 288 | function id ( const aValue: String): THTMLTag; 289 | function itemprop ( const aValue: String): THTMLTag; 290 | function lang ( const aValue: String): THTMLTag; 291 | function slot ( const aValue: String): THTMLTag; 292 | function spellcheck ( const aValue: String): THTMLTag; 293 | function style ( const aValue: String): THTMLTag; 294 | function tabindex ( const aValue: String): THTMLTag; 295 | function title ( const aValue: String): THTMLTag; 296 | function translate ( const aValue: String): THTMLTag; 297 | function accept ( const aValue: String): THTMLTag; 298 | function accept_charset ( const aValue: String): THTMLTag; 299 | function action ( const aValue: String): THTMLTag; 300 | function align ( const aValue: String): THTMLTag; 301 | function allow ( const aValue: String): THTMLTag; 302 | function alt ( const aValue: String): THTMLTag; 303 | function async ( const aValue: String): THTMLTag; 304 | function autocomplete ( const aValue: String): THTMLTag; 305 | function autofocus ( const aValue: String): THTMLTag; 306 | function autoplay ( const aValue: String): THTMLTag; 307 | function background ( const aValue: String): THTMLTag; 308 | function bgcolor ( const aValue: String): THTMLTag; 309 | function border ( const aValue: String): THTMLTag; 310 | function buffered ( const aValue: String): THTMLTag; 311 | function challenge ( const aValue: String): THTMLTag; 312 | function charset ( const aValue: String): THTMLTag; 313 | function checked ( const aValue: String): THTMLTag; 314 | function cite ( const aValue: String): THTMLTag; 315 | function code ( const aValue: String): THTMLTag; 316 | function codebase ( const aValue: String): THTMLTag; 317 | function color ( const aValue: String): THTMLTag; 318 | function cols ( const aValue: String): THTMLTag; 319 | function colspan ( const aValue: String): THTMLTag; 320 | function content ( const aValue: String): THTMLTag; 321 | function controls ( const aValue: String): THTMLTag; 322 | function coords ( const aValue: String): THTMLTag; 323 | function crossorigin ( const aValue: String): THTMLTag; 324 | function csp ( const aValue: String): THTMLTag; 325 | function datetime ( const aValue: String): THTMLTag; 326 | function decoding ( const aValue: String): THTMLTag; 327 | function default ( const aValue: String): THTMLTag; 328 | function defer ( const aValue: String): THTMLTag; 329 | function dirname ( const aValue: String): THTMLTag; 330 | function disabled ( const aValue: String): THTMLTag; 331 | function download ( const aValue: String): THTMLTag; 332 | function enctype ( const aValue: String): THTMLTag; 333 | function enterkeyhint ( const aValue: String): THTMLTag; 334 | function for_ ( const aValue: String): THTMLTag; 335 | function form ( const aValue: String): THTMLTag; 336 | function formaction ( const aValue: String): THTMLTag; 337 | function formnovalidate ( const aValue: String): THTMLTag; 338 | function headers ( const aValue: String): THTMLTag; 339 | function height ( const aValue: String): THTMLTag; 340 | function high ( const aValue: String): THTMLTag; 341 | function href ( const aValue: String): THTMLTag; 342 | function hreflang ( const aValue: String): THTMLTag; 343 | function http_equiv ( const aValue: String): THTMLTag; 344 | function icon ( const aValue: String): THTMLTag; 345 | function importance ( const aValue: String): THTMLTag; 346 | function integrity ( const aValue: String): THTMLTag; 347 | function intrinsicsize ( const aValue: String): THTMLTag; 348 | function inputmode ( const aValue: String): THTMLTag; 349 | function ismap ( const aValue: String): THTMLTag; 350 | function keytype ( const aValue: String): THTMLTag; 351 | function kind ( const aValue: String): THTMLTag; 352 | function label_ ( const aValue: String): THTMLTag; 353 | function language ( const aValue: String): THTMLTag; 354 | function loading ( const aValue: String): THTMLTag; 355 | function list ( const aValue: String): THTMLTag; 356 | function loop ( const aValue: String): THTMLTag; 357 | function low ( const aValue: String): THTMLTag; 358 | function manifest ( const aValue: String): THTMLTag; 359 | function max ( const aValue: String): THTMLTag; 360 | function maxlength ( const aValue: String): THTMLTag; 361 | function minlength ( const aValue: String): THTMLTag; 362 | function media ( const aValue: String): THTMLTag; 363 | function method ( const aValue: String): THTMLTag; 364 | function min ( const aValue: String): THTMLTag; 365 | function multiple ( const aValue: String): THTMLTag; 366 | function muted ( const aValue: String): THTMLTag; 367 | function name ( const aValue: String): THTMLTag; 368 | function novalidate ( const aValue: String): THTMLTag; 369 | function open ( const aValue: String): THTMLTag; 370 | function optimum ( const aValue: String): THTMLTag; 371 | function pattern ( const aValue: String): THTMLTag; 372 | function ping ( const aValue: String): THTMLTag; 373 | function placeholder ( const aValue: String): THTMLTag; 374 | function poster ( const aValue: String): THTMLTag; 375 | function preload ( const aValue: String): THTMLTag; 376 | function radiogroup ( const aValue: String): THTMLTag; 377 | function readonly ( const aValue: String): THTMLTag; 378 | function referrerpolicy ( const aValue: String): THTMLTag; 379 | function rel ( const aValue: String): THTMLTag; 380 | function required ( const aValue: String): THTMLTag; 381 | function reversed ( const aValue: String): THTMLTag; 382 | function rows ( const aValue: String): THTMLTag; 383 | function rowspan ( const aValue: String): THTMLTag; 384 | function sandbox ( const aValue: String): THTMLTag; 385 | function scope ( const aValue: String): THTMLTag; 386 | function scoped ( const aValue: String): THTMLTag; 387 | function selected ( const aValue: String): THTMLTag; 388 | function shape ( const aValue: String): THTMLTag; 389 | function size ( const aValue: String): THTMLTag; 390 | function sizes ( const aValue: String): THTMLTag; 391 | function span ( const aValue: String): THTMLTag; 392 | function src ( const aValue: String): THTMLTag; 393 | function srcdoc ( const aValue: String): THTMLTag; 394 | function srclang ( const aValue: String): THTMLTag; 395 | function srcset ( const aValue: String): THTMLTag; 396 | function start ( const aValue: String): THTMLTag; 397 | function step ( const aValue: String): THTMLTag; 398 | function summary ( const aValue: String): THTMLTag; 399 | function target ( const aValue: String): THTMLTag; 400 | function type_ ( const aValue: String): THTMLTag; 401 | function usemap ( const aValue: String): THTMLTag; 402 | function value ( const aValue: String): THTMLTag; 403 | function width ( const aValue: String): THTMLTag; 404 | function wrap ( const aValue: String): THTMLTag; 405 | {$endregion} 406 | {$region 'events'} 407 | {$region 'window events'} 408 | function onafterprint ( const aScript: String): THTMLTag; 409 | function onbeforeprint ( const aScript: String): THTMLTag; 410 | function onbeforeunload ( const aScript: String): THTMLTag; 411 | function onerror ( const aScript: String): THTMLTag; 412 | function onhashchange ( const aScript: String): THTMLTag; 413 | function onload ( const aScript: String): THTMLTag; 414 | function onmessage ( const aScript: String): THTMLTag; 415 | function onoffline ( const aScript: String): THTMLTag; 416 | function ononline ( const aScript: String): THTMLTag; 417 | function onpagehide ( const aScript: String): THTMLTag; 418 | function onpageshow ( const aScript: String): THTMLTag; 419 | function onpopstate ( const aScript: String): THTMLTag; 420 | function onresize ( const aScript: String): THTMLTag; 421 | function onstorage ( const aScript: String): THTMLTag; 422 | function onunload ( const aScript: String): THTMLTag; 423 | {$endregion} 424 | {$region 'form events'} 425 | function onblur ( const aScript: String): THTMLTag; 426 | function onchange ( const aScript: String): THTMLTag; 427 | function oncontextmenu ( const aScript: String): THTMLTag; 428 | function onfocus ( const aScript: String): THTMLTag; 429 | function oninput ( const aScript: String): THTMLTag; 430 | function oninvalid ( const aScript: String): THTMLTag; 431 | function onreset ( const aScript: String): THTMLTag; 432 | function onsearch ( const aScript: String): THTMLTag; 433 | function onselect ( const aScript: String): THTMLTag; 434 | function onsubmit ( const aScript: String): THTMLTag; 435 | {$endregion} 436 | {$region 'keyboard events'} 437 | function onkeydown ( const aScript: String): THTMLTag; 438 | function onkeypress ( const aScript: String): THTMLTag; 439 | function onkeyup ( const aScript: String): THTMLTag; 440 | {$endregion} 441 | {$region 'mouse events'} 442 | function onclick ( const aScript: String): THTMLTag; 443 | function ondblclick ( const aScript: String): THTMLTag; 444 | function onmousedown ( const aScript: String): THTMLTag; 445 | function onmousemove ( const aScript: String): THTMLTag; 446 | function onmouseout ( const aScript: String): THTMLTag; 447 | function onmouseover ( const aScript: String): THTMLTag; 448 | function onmouseup ( const aScript: String): THTMLTag; 449 | function onmousewheel ( const aScript: String): THTMLTag; 450 | function onwheel ( const aScript: String): THTMLTag; 451 | {$endregion} 452 | {$region 'drag events'} 453 | function ondrag ( const aScript: String): THTMLTag; 454 | function ondragend ( const aScript: String): THTMLTag; 455 | function ondragenter ( const aScript: String): THTMLTag; 456 | function ondragleave ( const aScript: String): THTMLTag; 457 | function ondragover ( const aScript: String): THTMLTag; 458 | function ondragstart ( const aScript: String): THTMLTag; 459 | function ondrop ( const aScript: String): THTMLTag; 460 | function onscroll ( const aScript: String): THTMLTag; 461 | {$endregion} 462 | {$region 'clipboard events'} 463 | function oncopy ( const aScript: String): THTMLTag; 464 | function oncut ( const aScript: String): THTMLTag; 465 | function onpaste ( const aScript: String): THTMLTag; 466 | {$endregion} 467 | {$region 'media events'} 468 | function onabort ( const aScript: String): THTMLTag; 469 | function oncanplay ( const aScript: String): THTMLTag; 470 | function oncanplaythrough ( const aScript: String): THTMLTag; 471 | function oncuechange ( const aScript: String): THTMLTag; 472 | function ondurationchange ( const aScript: String): THTMLTag; 473 | function onemptied ( const aScript: String): THTMLTag; 474 | function onended ( const aScript: String): THTMLTag; 475 | function onerror_ ( const aScript: String): THTMLTag; 476 | function onloadeddata ( const aScript: String): THTMLTag; 477 | function onloadedmetadata ( const aScript: String): THTMLTag; 478 | function onloadstart ( const aScript: String): THTMLTag; 479 | function onpause ( const aScript: String): THTMLTag; 480 | function onplay ( const aScript: String): THTMLTag; 481 | function onplaying ( const aScript: String): THTMLTag; 482 | function onprogress ( const aScript: String): THTMLTag; 483 | function onratechange ( const aScript: String): THTMLTag; 484 | function onseeked ( const aScript: String): THTMLTag; 485 | function onseeking ( const aScript: String): THTMLTag; 486 | function onstalled ( const aScript: String): THTMLTag; 487 | function onsuspend ( const aScript: String): THTMLTag; 488 | function ontimeupdate ( const aScript: String): THTMLTag; 489 | function onvolumechange ( const aScript: String): THTMLTag; 490 | function onwaiting ( const aScript: String): THTMLTag; 491 | {$endregion} 492 | {$region 'misc events'} 493 | function ontoggle ( const aScript: String): THTMLTag; 494 | {$endregion} 495 | {$endregion} 496 | end; 497 | 498 | implementation 499 | 500 | uses 501 | System.SysUtils // format 502 | ; 503 | 504 | { THTMLTag } 505 | 506 | function THTMLTag.ValidateAttribute(SupportedTags: THTMLItems): Boolean; 507 | var 508 | Eleman: String; 509 | begin 510 | Result := False; 511 | for Eleman in SupportedTags do 512 | if Eleman = FTagName then Exit(True); 513 | end; 514 | 515 | function THTMLTag.iif(aSorgu: Boolean; aTrue, aFalse: String): String; 516 | begin 517 | if (aSorgu = True) then Result := aTrue else Result := aFalse; 518 | end; 519 | 520 | function THTMLTag.iin(aItem: String; aItemList: THTMLItems): Boolean; 521 | var 522 | S: String; 523 | begin 524 | if (aItemList.Count < 0) then Exit(False); 525 | for S in aItemList do if S.Trim = aItem.Trim then Exit(True); 526 | Result := False; 527 | end; 528 | 529 | function THTMLTag.Merge(aTag, aContent: String): String; 530 | begin 531 | if (aContent.Trim.IsEmpty = False) then begin 532 | if (aTag.Trim.IsEmpty = False) 533 | then Result := format('%s="%s" ', [aTag.Trim, aContent.Trim]) 534 | else Result := aContent.Trim + ' '; 535 | end else begin 536 | Result := ''; 537 | end; 538 | end; 539 | 540 | procedure THTMLTag.Clear; 541 | begin 542 | FItems.Clear; 543 | FTagName := ''; // <- Bu böyle mi olmalı ?! emin değilim... denemeler yapılacak... 544 | FContext := ''; // <- İsim çakışması. Meta.Content ile self.Content çakışıyor... Ben "Content" denildiğinde başlangıç tagı ile bitiş tagı arasındaki bölümü kastediyorum... 545 | {$REGION 'Attributes'} 546 | Faccesskey := ''; 547 | Fautocapitalize := ''; 548 | Fclass_ := ''; 549 | Fcontenteditable := ''; 550 | Fcontextmenu := ''; 551 | Fdata := ''; 552 | Fdir := ''; 553 | Fdraggable := ''; 554 | Fdropzone := ''; 555 | Fhidden := ''; 556 | Fid := ''; 557 | Fitemprop := ''; 558 | Flang := ''; 559 | Fslot := ''; 560 | Fspellcheck := ''; 561 | Fstyle := ''; 562 | Ftabindex := ''; 563 | Ftitle := ''; 564 | Ftranslate := ''; 565 | Faccept := ''; 566 | Faccept_charset := ''; 567 | Faction := ''; 568 | Falign := ''; 569 | Fallow := ''; 570 | Falt := ''; 571 | Fasync := ''; 572 | Fautocomplete := ''; 573 | Fautofocus := ''; 574 | Fautoplay := ''; 575 | Fbackground := ''; 576 | Fbgcolor := ''; 577 | Fborder := ''; 578 | Fbuffered := ''; 579 | Fchallenge := ''; 580 | Fcharset := ''; 581 | Fchecked := ''; 582 | Fcite := ''; 583 | Fcode := ''; 584 | Fcodebase := ''; 585 | Fcolor := ''; 586 | Fcols := ''; 587 | Fcolspan := ''; 588 | Fcontent := ''; 589 | Fcontrols := ''; 590 | Fcoords := ''; 591 | Fcrossorigin := ''; 592 | Fcsp := ''; 593 | Fdatetime := ''; 594 | Fdecoding := ''; 595 | Fdefault := ''; 596 | Fdefer := ''; 597 | Fdirname := ''; 598 | Fdisabled := ''; 599 | Fdownload := ''; 600 | Fenctype := ''; 601 | Fenterkeyhint := ''; 602 | Ffor_ := ''; 603 | Fform := ''; 604 | Fformaction := ''; 605 | Fformnovalidate := ''; 606 | Fheaders := ''; 607 | Fheight := ''; 608 | Fhigh := ''; 609 | Fhref := ''; 610 | Fhreflang := ''; 611 | Fhttp_equiv := ''; 612 | Ficon := ''; 613 | Fimportance := ''; 614 | Fintegrity := ''; 615 | Fintrinsicsize := ''; 616 | Finputmode := ''; 617 | Fismap := ''; 618 | Fkeytype := ''; 619 | Fkind := ''; 620 | Flabel_ := ''; 621 | Flanguage := ''; 622 | Floading := ''; 623 | Flist := ''; 624 | Floop := ''; 625 | Flow := ''; 626 | Fmanifest := ''; 627 | Fmax := ''; 628 | Fmaxlength := ''; 629 | Fminlength := ''; 630 | Fmedia := ''; 631 | Fmethod := ''; 632 | Fmin := ''; 633 | Fmultiple := ''; 634 | Fmuted := ''; 635 | Fname := ''; 636 | Fnovalidate := ''; 637 | Fopen := ''; 638 | Foptimum := ''; 639 | Fpattern := ''; 640 | Fping := ''; 641 | Fplaceholder := ''; 642 | Fposter := ''; 643 | Fpreload := ''; 644 | Fradiogroup := ''; 645 | Freadonly := ''; 646 | Freferrerpolicy := ''; 647 | Frel := ''; 648 | Frequired := ''; 649 | Freversed := ''; 650 | Frows := ''; 651 | Frowspan := ''; 652 | Fsandbox := ''; 653 | Fscope := ''; 654 | Fscoped := ''; 655 | Fselected := ''; 656 | Fshape := ''; 657 | Fsize := ''; 658 | Fsizes := ''; 659 | Fspan := ''; 660 | Fsrc := ''; 661 | Fsrcdoc := ''; 662 | Fsrclang := ''; 663 | Fsrcset := ''; 664 | Fstart := ''; 665 | Fstep := ''; 666 | Fsummary := ''; 667 | Ftarget := ''; 668 | Ftype_ := ''; 669 | Fusemap := ''; 670 | Fvalue := ''; 671 | Fwidth := ''; 672 | Fwrap := ''; 673 | {$ENDREGION} 674 | {$REGION 'Events'} 675 | Fonafterprint := ''; 676 | Fonbeforeprint := ''; 677 | Fonbeforeunload := ''; 678 | Fonerror_ := ''; 679 | Fonhashchange := ''; 680 | Fonload := ''; 681 | Fonmessage := ''; 682 | Fonoffline := ''; 683 | Fononline := ''; 684 | Fonpagehide := ''; 685 | Fonpageshow := ''; 686 | Fonpopstate := ''; 687 | Fonresize := ''; 688 | Fonstorage := ''; 689 | Fonunload := ''; 690 | Fonblur := ''; 691 | Fonchange := ''; 692 | Foncontextmenu := ''; 693 | Fonfocus := ''; 694 | Foninput := ''; 695 | Foninvalid := ''; 696 | Fonreset := ''; 697 | Fonsearch := ''; 698 | Fonselect := ''; 699 | Fonsubmit := ''; 700 | Fonkeydown := ''; 701 | Fonkeypress := ''; 702 | Fonkeyup := ''; 703 | Fonclick := ''; 704 | Fondblclick := ''; 705 | Fonmousedown := ''; 706 | Fonmousemove := ''; 707 | Fonmouseout := ''; 708 | Fonmouseover := ''; 709 | Fonmouseup := ''; 710 | Fonmousewheel := ''; 711 | Fonwheel := ''; 712 | Fondrag := ''; 713 | Fondragend := ''; 714 | Fondragenter := ''; 715 | Fondragleave := ''; 716 | Fondragover := ''; 717 | Fondragstart := ''; 718 | Fondrop := ''; 719 | Fonscroll := ''; 720 | Foncopy := ''; 721 | Foncut := ''; 722 | Fonpaste := ''; 723 | Fonabort := ''; 724 | Foncanplay := ''; 725 | Foncanplaythrough := ''; 726 | Foncuechange := ''; 727 | Fondurationchange := ''; 728 | Fonemptied := ''; 729 | Fonended := ''; 730 | Fonerror := ''; 731 | Fonloadeddata := ''; 732 | Fonloadedmetadata := ''; 733 | Fonloadstart := ''; 734 | Fonpause := ''; 735 | Fonplay := ''; 736 | Fonplaying := ''; 737 | Fonprogress := ''; 738 | Fonratechange := ''; 739 | Fonseeked := ''; 740 | Fonseeking := ''; 741 | Fonstalled := ''; 742 | Fonsuspend := ''; 743 | Fontimeupdate := ''; 744 | Fonvolumechange := ''; 745 | Fonwaiting := ''; 746 | Fontoggle := ''; 747 | {$ENDREGION} 748 | end; 749 | 750 | function THTMLTag.Item(const aIndex: Integer): THTMLTag; 751 | begin 752 | Result := nil; 753 | if (AIndex in [0..FItems.Count - 1]) then Result := FItems.Items[aIndex]; 754 | end; 755 | 756 | function THTMLTag.TagName(const Value: String): THTMLTag; 757 | begin 758 | FTagName := Value; 759 | Result := Self; 760 | end; 761 | 762 | function THTMLTag.Context(const Value: THTMLTag): THTMLTag; 763 | begin 764 | FContext := Value.ToString; 765 | Result := Self; 766 | end; 767 | 768 | function THTMLTag.Context(const Value: String): THTMLTag; 769 | begin 770 | FContext := Value; 771 | Result := Self; 772 | end; 773 | 774 | function THTMLTag.ToString: String; 775 | var 776 | aTag: THTMLTag; 777 | begin 778 | {$REGION 'Tag başlangıcı'} 779 | Result := ''; 780 | if (FTagName = 'doctype') 781 | then Result := ''#1 782 | else Result := Result 783 | + '<' + FTagName + ' ' 784 | {$region 'Attributes'} 785 | + Merge('accesskey' , Faccesskey) 786 | + Merge('autocapitalize' , Fautocapitalize) 787 | + Merge('class' , Fclass_) 788 | + Merge('contenteditable' , Fcontenteditable) 789 | + Merge('contextmenu' , Fcontextmenu) 790 | + Merge('data' , Fdata) 791 | + Merge('dir' , Fdir) 792 | + Merge('draggable' , Fdraggable) 793 | + Merge('dropzone' , Fdropzone) 794 | + Merge('hidden' , Fhidden) 795 | + Merge('id' , Fid) 796 | + Merge('itemprop' , Fitemprop) 797 | + Merge('lang' , Flang) 798 | + Merge('slot' , Fslot) 799 | + Merge('spellcheck' , Fspellcheck) 800 | + Merge('style' , Fstyle) 801 | + Merge('tabindex' , Ftabindex) 802 | + Merge('title' , Ftitle) 803 | + Merge('translate' , Ftranslate) 804 | + Merge('accept' , Faccept) 805 | + Merge('accept_charset' , Faccept_charset) 806 | + Merge('action' , Faction) 807 | + Merge('align' , Falign) 808 | + Merge('allow' , Fallow) 809 | + Merge('alt' , Falt) 810 | + Merge('async' , Fasync) 811 | + Merge('autocomplete' , Fautocomplete) 812 | + Merge('autofocus' , Fautofocus) 813 | + Merge('autoplay' , Fautoplay) 814 | + Merge('background' , Fbackground) 815 | + Merge('bgcolor' , Fbgcolor) 816 | + Merge('border' , Fborder) 817 | + Merge('buffered' , Fbuffered) 818 | + Merge('challenge' , Fchallenge) 819 | + Merge('charset' , Fcharset) 820 | + Merge('checked' , Fchecked) 821 | + Merge('cite' , Fcite) 822 | + Merge('code' , Fcode) 823 | + Merge('codebase' , Fcodebase) 824 | + Merge('color' , Fcolor) 825 | + Merge('cols' , Fcols) 826 | + Merge('colspan' , Fcolspan) 827 | + Merge('content' , Fcontent) 828 | + Merge('controls' , Fcontrols) 829 | + Merge('coords' , Fcoords) 830 | + Merge('crossorigin' , Fcrossorigin) 831 | + Merge('csp ' , Fcsp ) 832 | + Merge('datetime' , Fdatetime) 833 | + Merge('decoding' , Fdecoding) 834 | + Merge('default' , Fdefault) 835 | + Merge('defer' , Fdefer) 836 | + Merge('dirname' , Fdirname) 837 | + Merge('disabled' , Fdisabled) 838 | + Merge('download' , Fdownload) 839 | + Merge('enctype' , Fenctype) 840 | + Merge('enterkeyhint ' , Fenterkeyhint ) 841 | + Merge('for' , Ffor_) 842 | + Merge('form' , Fform) 843 | + Merge('formaction' , Fformaction) 844 | + Merge('formnovalidate' , Fformnovalidate) 845 | + Merge('headers' , Fheaders) 846 | + Merge('height' , Fheight) 847 | + Merge('high' , Fhigh) 848 | + Merge('href' , Fhref) 849 | + Merge('hreflang' , Fhreflang) 850 | + Merge('http_equiv' , Fhttp_equiv) 851 | + Merge('icon' , Ficon) 852 | + Merge('importance ' , Fimportance ) 853 | + Merge('integrity' , Fintegrity) 854 | + Merge('intrinsicsize ' , Fintrinsicsize ) 855 | + Merge('inputmode' , Finputmode) 856 | + Merge('ismap' , Fismap) 857 | + Merge('keytype' , Fkeytype) 858 | + Merge('kind' , Fkind) 859 | + Merge('label' , Flabel_) 860 | + Merge('language' , Flanguage) 861 | + Merge('loading ' , Floading ) 862 | + Merge('list' , Flist) 863 | + Merge('loop' , Floop) 864 | + Merge('low' , Flow) 865 | + Merge('manifest' , Fmanifest) 866 | + Merge('max' , Fmax) 867 | + Merge('maxlength' , Fmaxlength) 868 | + Merge('minlength' , Fminlength) 869 | + Merge('media' , Fmedia) 870 | + Merge('method' , Fmethod) 871 | + Merge('min' , Fmin) 872 | + Merge('multiple' , Fmultiple) 873 | + Merge('muted' , Fmuted) 874 | + Merge('name' , Fname) 875 | + Merge('novalidate' , Fnovalidate) 876 | + Merge('open' , Fopen) 877 | + Merge('optimum' , Foptimum) 878 | + Merge('pattern' , Fpattern) 879 | + Merge('ping' , Fping) 880 | + Merge('placeholder' , Fplaceholder) 881 | + Merge('poster' , Fposter) 882 | + Merge('preload' , Fpreload) 883 | + Merge('radiogroup' , Fradiogroup) 884 | + Merge('readonly' , Freadonly) 885 | + Merge('referrerpolicy' , Freferrerpolicy) 886 | + Merge('rel' , Frel) 887 | + Merge('required' , Frequired) 888 | + Merge('reversed' , Freversed) 889 | + Merge('rows' , Frows) 890 | + Merge('rowspan' , Frowspan) 891 | + Merge('sandbox' , Fsandbox) 892 | + Merge('scope' , Fscope) 893 | + Merge('scoped' , Fscoped) 894 | + Merge('selected' , Fselected) 895 | + Merge('shape' , Fshape) 896 | + Merge('size' , Fsize) 897 | + Merge('sizes' , Fsizes) 898 | + Merge('span' , Fspan) 899 | + Merge('src' , Fsrc) 900 | + Merge('srcdoc' , Fsrcdoc) 901 | + Merge('srclang' , Fsrclang) 902 | + Merge('srcset' , Fsrcset) 903 | + Merge('start' , Fstart) 904 | + Merge('step' , Fstep) 905 | + Merge('summary' , Fsummary) 906 | + Merge('target' , Ftarget) 907 | + Merge('type' , Ftype_) 908 | + Merge('usemap' , Fusemap) 909 | + Merge('value' , Fvalue) 910 | + Merge('width' , Fwidth) 911 | + Merge('wrap' , Fwrap) 912 | {$endregion} 913 | {$region 'Events'} 914 | + Merge('onafterprint' , Fonafterprint) 915 | + Merge('onbeforeprint' , Fonbeforeprint) 916 | + Merge('onbeforeunload' , Fonbeforeunload) 917 | + Merge('onerror_' , Fonerror_) 918 | + Merge('onhashchange' , Fonhashchange) 919 | + Merge('onload' , Fonload) 920 | + Merge('onmessage' , Fonmessage) 921 | + Merge('onoffline' , Fonoffline) 922 | + Merge('ononline' , Fononline) 923 | + Merge('onpagehide' , Fonpagehide) 924 | + Merge('onpageshow' , Fonpageshow) 925 | + Merge('onpopstate' , Fonpopstate) 926 | + Merge('onresize' , Fonresize) 927 | + Merge('onstorage' , Fonstorage) 928 | + Merge('onunload' , Fonunload) 929 | + Merge('onblur' , Fonblur) 930 | + Merge('onchange' , Fonchange) 931 | + Merge('oncontextmenu' , Foncontextmenu) 932 | + Merge('onfocus' , Fonfocus) 933 | + Merge('oninput' , Foninput) 934 | + Merge('oninvalid' , Foninvalid) 935 | + Merge('onreset' , Fonreset) 936 | + Merge('onsearch' , Fonsearch) 937 | + Merge('onselect' , Fonselect) 938 | + Merge('onsubmit' , Fonsubmit) 939 | + Merge('onkeydown' , Fonkeydown) 940 | + Merge('onkeypress' , Fonkeypress) 941 | + Merge('onkeyup' , Fonkeyup) 942 | + Merge('onclick' , Fonclick) 943 | + Merge('ondblclick' , Fondblclick) 944 | + Merge('onmousedown' , Fonmousedown) 945 | + Merge('onmousemove' , Fonmousemove) 946 | + Merge('onmouseout' , Fonmouseout) 947 | + Merge('onmouseover' , Fonmouseover) 948 | + Merge('onmouseup' , Fonmouseup) 949 | + Merge('onmousewheel' , Fonmousewheel) 950 | + Merge('onwheel' , Fonwheel) 951 | + Merge('ondrag' , Fondrag) 952 | + Merge('ondragend' , Fondragend) 953 | + Merge('ondragenter' , Fondragenter) 954 | + Merge('ondragleave' , Fondragleave) 955 | + Merge('ondragover' , Fondragover) 956 | + Merge('ondragstart' , Fondragstart) 957 | + Merge('ondrop' , Fondrop) 958 | + Merge('onscroll' , Fonscroll) 959 | + Merge('oncopy' , Foncopy) 960 | + Merge('oncut' , Foncut) 961 | + Merge('onpaste' , Fonpaste) 962 | + Merge('onabort' , Fonabort) 963 | + Merge('oncanplay' , Foncanplay) 964 | + Merge('oncanplaythrough' , Foncanplaythrough) 965 | + Merge('oncuechange' , Foncuechange) 966 | + Merge('ondurationchange' , Fondurationchange) 967 | + Merge('onemptied' , Fonemptied) 968 | + Merge('onended' , Fonended) 969 | + Merge('onerror' , Fonerror) 970 | + Merge('onloadeddata' , Fonloadeddata) 971 | + Merge('onloadedmetadata' , Fonloadedmetadata) 972 | + Merge('onloadstart' , Fonloadstart) 973 | + Merge('onpause' , Fonpause) 974 | + Merge('onplay' , Fonplay) 975 | + Merge('onplaying' , Fonplaying) 976 | + Merge('onprogress' , Fonprogress) 977 | + Merge('onratechange' , Fonratechange) 978 | + Merge('onseeked' , Fonseeked) 979 | + Merge('onseeking' , Fonseeking) 980 | + Merge('onstalled' , Fonstalled) 981 | + Merge('onsuspend' , Fonsuspend) 982 | + Merge('ontimeupdate' , Fontimeupdate) 983 | + Merge('onvolumechange' , Fonvolumechange) 984 | + Merge('onwaiting' , Fonwaiting) 985 | + Merge('ontoggle' , Fontoggle) 986 | {$endregion} 987 | ; 988 | Result := Result.Trim 989 | + '>' 990 | ; 991 | {$endregion} 992 | 993 | if (iin(FTagName, ['doctype', 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'{, 'command', 'keygen', 'menuitem'}]) = FALSE) then begin 994 | Result := Result 995 | + FContext 996 | ; 997 | for aTag in FItems do Result := Result + aTag.ToString; 998 | Result := Result 999 | + ''#1 1000 | ; 1001 | end else begin 1002 | Result := Result + #1 1003 | end; 1004 | Result := StringReplace(Result, #1, #13#10, [rfReplaceAll, rfIgnoreCase]); 1005 | end; 1006 | 1007 | constructor THTMLTag.Create; 1008 | begin 1009 | inherited Create; 1010 | FItems := TObjectList.Create; 1011 | end; 1012 | 1013 | destructor THTMLTag.Destroy; 1014 | begin 1015 | Clear; 1016 | FreeAndNil(FItems); 1017 | inherited Destroy; 1018 | end; 1019 | 1020 | {$region 'attributes} 1021 | function THTMLTag.accesskey( const aValue: String): THTMLTag; 1022 | begin 1023 | Faccesskey := aValue.Trim; 1024 | Result := Self; 1025 | end; 1026 | 1027 | function THTMLTag.autocapitalize( const aValue: String): THTMLTag; 1028 | begin 1029 | Fautocapitalize := aValue.Trim; 1030 | Result := Self; 1031 | end; 1032 | 1033 | function THTMLTag.class_( const aValue: String): THTMLTag; 1034 | begin 1035 | Fclass_ := aValue.Trim; 1036 | Result := Self; 1037 | end; 1038 | 1039 | function THTMLTag.contenteditable( const aValue: String): THTMLTag; 1040 | begin 1041 | Fcontenteditable := aValue.Trim; 1042 | Result := Self; 1043 | end; 1044 | 1045 | function THTMLTag.contextmenu( const aValue: String): THTMLTag; 1046 | begin 1047 | Fcontextmenu := aValue.Trim; 1048 | Result := Self; 1049 | end; 1050 | 1051 | function THTMLTag.data( const aValue: String): THTMLTag; 1052 | begin 1053 | Fdata := aValue.Trim; 1054 | Result := Self; 1055 | end; 1056 | 1057 | function THTMLTag.dir( const aValue: String): THTMLTag; 1058 | begin 1059 | Fdir := aValue.Trim; 1060 | Result := Self; 1061 | end; 1062 | 1063 | function THTMLTag.draggable( const aValue: String): THTMLTag; 1064 | begin 1065 | Fdraggable := aValue.Trim; 1066 | Result := Self; 1067 | end; 1068 | 1069 | function THTMLTag.dropzone( const aValue: String): THTMLTag; 1070 | begin 1071 | Fdropzone := aValue.Trim; 1072 | Result := Self; 1073 | end; 1074 | 1075 | function THTMLTag.hidden( const aValue: String): THTMLTag; 1076 | begin 1077 | Fhidden := aValue.Trim; 1078 | Result := Self; 1079 | end; 1080 | 1081 | function THTMLTag.id( const aValue: String): THTMLTag; 1082 | begin 1083 | Fid := aValue.Trim; 1084 | Result := Self; 1085 | end; 1086 | 1087 | function THTMLTag.itemprop( const aValue: String): THTMLTag; 1088 | begin 1089 | Fitemprop := aValue.Trim; 1090 | Result := Self; 1091 | end; 1092 | 1093 | function THTMLTag.lang( const aValue: String): THTMLTag; 1094 | begin 1095 | Flang := aValue.Trim; 1096 | Result := Self; 1097 | end; 1098 | 1099 | function THTMLTag.slot( const aValue: String): THTMLTag; 1100 | begin 1101 | Fslot := aValue.Trim; 1102 | Result := Self; 1103 | end; 1104 | 1105 | function THTMLTag.spellcheck( const aValue: String): THTMLTag; 1106 | begin 1107 | Fspellcheck := aValue.Trim; 1108 | Result := Self; 1109 | end; 1110 | 1111 | function THTMLTag.style( const aValue: String): THTMLTag; 1112 | begin 1113 | Fstyle := aValue.Trim; 1114 | Result := Self; 1115 | end; 1116 | 1117 | function THTMLTag.tabindex( const aValue: String): THTMLTag; 1118 | begin 1119 | Ftabindex := aValue.Trim; 1120 | Result := Self; 1121 | end; 1122 | 1123 | function THTMLTag.title( const aValue: String): THTMLTag; 1124 | begin 1125 | Ftitle := aValue.Trim; 1126 | Result := Self; 1127 | end; 1128 | 1129 | function THTMLTag.translate( const aValue: String): THTMLTag; 1130 | begin 1131 | Ftranslate := aValue.Trim; 1132 | Result := Self; 1133 | end; 1134 | 1135 | function THTMLTag.accept( const aValue: String): THTMLTag; 1136 | begin 1137 | Faccept:= ''; 1138 | if (ValidateAttribute(['form','input']) = TRUE) 1139 | then Faccept := aValue.Trim 1140 | else raise Exception.CreateFMT('`%s` tagı, `accept` özniteliği ile birlikte kullanılamaz.', [FName]); 1141 | Result := Self; 1142 | end; 1143 | 1144 | function THTMLTag.accept_charset( const aValue: String): THTMLTag; 1145 | begin 1146 | Faccept_charset:= ''; 1147 | if (ValidateAttribute(['form']) = TRUE) 1148 | then Faccept_charset := aValue.Trim 1149 | else raise Exception.CreateFMT('`%s` tagı, `accept_charset` özniteliği ile birlikte kullanılamaz.', [FName]); 1150 | Result := Self; 1151 | end; 1152 | 1153 | function THTMLTag.action( const aValue: String): THTMLTag; 1154 | begin 1155 | Faction:= ''; 1156 | if (ValidateAttribute(['form']) = TRUE) 1157 | then Faction := aValue.Trim 1158 | else raise Exception.CreateFMT('`%s` tagı, `action` özniteliği ile birlikte kullanılamaz.', [FName]); 1159 | Result := Self; 1160 | end; 1161 | 1162 | function THTMLTag.align( const aValue: String): THTMLTag; 1163 | begin 1164 | Falign:= ''; 1165 | if (ValidateAttribute(['applet','caption','col','colgroup','hr','iframe','img','table','tbody','td','tfoot ','th','thead','tr']) = TRUE) 1166 | then Falign := aValue.Trim 1167 | else raise Exception.CreateFMT('`%s` tagı, `align` özniteliği ile birlikte kullanılamaz.', [FName]); 1168 | Result := Self; 1169 | end; 1170 | 1171 | function THTMLTag.allow( const aValue: String): THTMLTag; 1172 | begin 1173 | Fallow:= ''; 1174 | if (ValidateAttribute(['iframe']) = TRUE) 1175 | then Fallow := aValue.Trim 1176 | else raise Exception.CreateFMT('`%s` tagı, `allow` özniteliği ile birlikte kullanılamaz.', [FName]); 1177 | Result := Self; 1178 | end; 1179 | 1180 | function THTMLTag.alt( const aValue: String): THTMLTag; 1181 | begin 1182 | Falt:= ''; 1183 | if (ValidateAttribute(['applet','area','img','input']) = TRUE) 1184 | then Falt := aValue.Trim 1185 | else raise Exception.CreateFMT('`%s` tagı, `alt` özniteliği ile birlikte kullanılamaz.', [FName]); 1186 | Result := Self; 1187 | end; 1188 | 1189 | function THTMLTag.async( const aValue: String): THTMLTag; 1190 | begin 1191 | Fasync:= ''; 1192 | if (ValidateAttribute(['script']) = TRUE) 1193 | then Fasync := aValue.Trim 1194 | else raise Exception.CreateFMT('`%s` tagı, `async` özniteliği ile birlikte kullanılamaz.', [FName]); 1195 | Result := Self; 1196 | end; 1197 | 1198 | function THTMLTag.autocomplete( const aValue: String): THTMLTag; 1199 | begin 1200 | Fautocomplete:= ''; 1201 | if (ValidateAttribute(['form','input','textarea']) = TRUE) 1202 | then Fautocomplete := aValue.Trim 1203 | else raise Exception.CreateFMT('`%s` tagı, `autocomplete` özniteliği ile birlikte kullanılamaz.', [FName]); 1204 | Result := Self; 1205 | end; 1206 | 1207 | function THTMLTag.autofocus( const aValue: String): THTMLTag; 1208 | begin 1209 | Fautofocus:= ''; 1210 | if (ValidateAttribute(['button','input','keygen','select','textarea']) = TRUE) 1211 | then Fautofocus := aValue.Trim 1212 | else raise Exception.CreateFMT('`%s` tagı, `autofocus` özniteliği ile birlikte kullanılamaz.', [FName]); 1213 | Result := Self; 1214 | end; 1215 | 1216 | function THTMLTag.autoplay( const aValue: String): THTMLTag; 1217 | begin 1218 | Fautoplay:= ''; 1219 | if (ValidateAttribute(['audio','video']) = TRUE) 1220 | then Fautoplay := aValue.Trim 1221 | else raise Exception.CreateFMT('`%s` tagı, `autoplay` özniteliği ile birlikte kullanılamaz.', [FName]); 1222 | Result := Self; 1223 | end; 1224 | 1225 | function THTMLTag.background( const aValue: String): THTMLTag; 1226 | begin 1227 | Fbackground:= ''; 1228 | if (ValidateAttribute(['body','table','td','th']) = TRUE) 1229 | then Fbackground := aValue.Trim 1230 | else raise Exception.CreateFMT('`%s` tagı, `background` özniteliği ile birlikte kullanılamaz.', [FName]); 1231 | Result := Self; 1232 | end; 1233 | 1234 | function THTMLTag.bgcolor( const aValue: String): THTMLTag; 1235 | begin 1236 | Fbgcolor:= ''; 1237 | if (ValidateAttribute(['body','col','colgroup','marquee','table','tbody','tfoot','td','th','tr']) = TRUE) 1238 | then Fbgcolor := aValue.Trim 1239 | else raise Exception.CreateFMT('`%s` tagı, `bgcolor` özniteliği ile birlikte kullanılamaz.', [FName]); 1240 | Result := Self; 1241 | end; 1242 | 1243 | function THTMLTag.border( const aValue: String): THTMLTag; 1244 | begin 1245 | Fborder:= ''; 1246 | if (ValidateAttribute(['img','object','table']) = TRUE) 1247 | then Fborder := aValue.Trim 1248 | else raise Exception.CreateFMT('`%s` tagı, `border` özniteliği ile birlikte kullanılamaz.', [FName]); 1249 | Result := Self; 1250 | end; 1251 | 1252 | function THTMLTag.buffered( const aValue: String): THTMLTag; 1253 | begin 1254 | Fbuffered:= ''; 1255 | if (ValidateAttribute(['audio','video']) = TRUE) 1256 | then Fbuffered := aValue.Trim 1257 | else raise Exception.CreateFMT('`%s` tagı, `buffered` özniteliği ile birlikte kullanılamaz.', [FName]); 1258 | Result := Self; 1259 | end; 1260 | 1261 | function THTMLTag.challenge( const aValue: String): THTMLTag; 1262 | begin 1263 | Fchallenge:= ''; 1264 | if (ValidateAttribute(['keygen']) = TRUE) 1265 | then Fchallenge := aValue.Trim 1266 | else raise Exception.CreateFMT('`%s` tagı, `challenge` özniteliği ile birlikte kullanılamaz.', [FName]); 1267 | Result := Self; 1268 | end; 1269 | 1270 | function THTMLTag.charset( const aValue: String): THTMLTag; 1271 | begin 1272 | Fcharset:= ''; 1273 | if (ValidateAttribute(['meta','script']) = TRUE) 1274 | then Fcharset := aValue.Trim 1275 | else raise Exception.CreateFMT('`%s` tagı, `charset` özniteliği ile birlikte kullanılamaz.', [FName]); 1276 | Result := Self; 1277 | end; 1278 | 1279 | function THTMLTag.checked( const aValue: String): THTMLTag; 1280 | begin 1281 | Fchecked:= ''; 1282 | if (ValidateAttribute(['command','input']) = TRUE) 1283 | then Fchecked := aValue.Trim 1284 | else raise Exception.CreateFMT('`%s` tagı, `checked` özniteliği ile birlikte kullanılamaz.', [FName]); 1285 | Result := Self; 1286 | end; 1287 | 1288 | function THTMLTag.cite( const aValue: String): THTMLTag; 1289 | begin 1290 | Fcite:= ''; 1291 | if (ValidateAttribute(['blockquote','del','ins','q']) = TRUE) 1292 | then Fcite := aValue.Trim 1293 | else raise Exception.CreateFMT('`%s` tagı, `cite` özniteliği ile birlikte kullanılamaz.', [FName]); 1294 | Result := Self; 1295 | end; 1296 | 1297 | function THTMLTag.code( const aValue: String): THTMLTag; 1298 | begin 1299 | Fcode:= ''; 1300 | if (ValidateAttribute(['applet']) = TRUE) 1301 | then Fcode := aValue.Trim 1302 | else raise Exception.CreateFMT('`%s` tagı, `code` özniteliği ile birlikte kullanılamaz.', [FName]); 1303 | Result := Self; 1304 | end; 1305 | 1306 | function THTMLTag.codebase( const aValue: String): THTMLTag; 1307 | begin 1308 | Fcodebase:= ''; 1309 | if (ValidateAttribute(['applet']) = TRUE) 1310 | then Fcodebase := aValue.Trim 1311 | else raise Exception.CreateFMT('`%s` tagı, `codebase` özniteliği ile birlikte kullanılamaz.', [FName]); 1312 | Result := Self; 1313 | end; 1314 | 1315 | function THTMLTag.color( const aValue: String): THTMLTag; 1316 | begin 1317 | Fcolor:= ''; 1318 | if (ValidateAttribute(['basefont','font','hr']) = TRUE) 1319 | then Fcolor := aValue.Trim 1320 | else raise Exception.CreateFMT('`%s` tagı, `color` özniteliği ile birlikte kullanılamaz.', [FName]); 1321 | Result := Self; 1322 | end; 1323 | 1324 | function THTMLTag.cols( const aValue: String): THTMLTag; 1325 | begin 1326 | Fcols:= ''; 1327 | if (ValidateAttribute(['textarea']) = TRUE) 1328 | then Fcols := aValue.Trim 1329 | else raise Exception.CreateFMT('`%s` tagı, `cols` özniteliği ile birlikte kullanılamaz.', [FName]); 1330 | Result := Self; 1331 | end; 1332 | 1333 | function THTMLTag.colspan( const aValue: String): THTMLTag; 1334 | begin 1335 | Fcolspan:= ''; 1336 | if (ValidateAttribute(['td','th']) = TRUE) 1337 | then Fcolspan := aValue.Trim 1338 | else raise Exception.CreateFMT('`%s` tagı, `colspan` özniteliği ile birlikte kullanılamaz.', [FName]); 1339 | Result := Self; 1340 | end; 1341 | 1342 | function THTMLTag.content( const aValue: String): THTMLTag; 1343 | begin 1344 | Fcontent:= ''; 1345 | if (ValidateAttribute(['meta']) = TRUE) 1346 | then Fcontent := aValue.Trim 1347 | else raise Exception.CreateFMT('`%s` tagı, `content` özniteliği ile birlikte kullanılamaz.', [FName]); 1348 | Result := Self; 1349 | end; 1350 | 1351 | function THTMLTag.controls( const aValue: String): THTMLTag; 1352 | begin 1353 | Fcontrols:= ''; 1354 | if (ValidateAttribute(['audio','video']) = TRUE) 1355 | then Fcontrols := aValue.Trim 1356 | else raise Exception.CreateFMT('`%s` tagı, `controls` özniteliği ile birlikte kullanılamaz.', [FName]); 1357 | Result := Self; 1358 | end; 1359 | 1360 | function THTMLTag.coords( const aValue: String): THTMLTag; 1361 | begin 1362 | Fcoords:= ''; 1363 | if (ValidateAttribute(['area']) = TRUE) 1364 | then Fcoords := aValue.Trim 1365 | else raise Exception.CreateFMT('`%s` tagı, `coords` özniteliği ile birlikte kullanılamaz.', [FName]); 1366 | Result := Self; 1367 | end; 1368 | 1369 | function THTMLTag.crossorigin( const aValue: String): THTMLTag; 1370 | begin 1371 | Fcrossorigin:= ''; 1372 | if (ValidateAttribute(['audio','img','link','script','video']) = TRUE) 1373 | then Fcrossorigin := aValue.Trim 1374 | else raise Exception.CreateFMT('`%s` tagı, `crossorigin` özniteliği ile birlikte kullanılamaz.', [FName]); 1375 | Result := Self; 1376 | end; 1377 | 1378 | function THTMLTag.csp ( const aValue: String): THTMLTag; 1379 | begin 1380 | Fcsp := ''; 1381 | if (ValidateAttribute(['iframe']) = TRUE) 1382 | then Fcsp := aValue.Trim 1383 | else raise Exception.CreateFMT('`%s` tagı, `csp ` özniteliği ile birlikte kullanılamaz.', [FName]); 1384 | Result := Self; 1385 | end; 1386 | 1387 | function THTMLTag.datetime( const aValue: String): THTMLTag; 1388 | begin 1389 | Fdatetime:= ''; 1390 | if (ValidateAttribute(['del','ins','time']) = TRUE) 1391 | then Fdatetime := aValue.Trim 1392 | else raise Exception.CreateFMT('`%s` tagı, `datetime` özniteliği ile birlikte kullanılamaz.', [FName]); 1393 | Result := Self; 1394 | end; 1395 | 1396 | function THTMLTag.decoding( const aValue: String): THTMLTag; 1397 | begin 1398 | Fdecoding:= ''; 1399 | if (ValidateAttribute(['img']) = TRUE) 1400 | then Fdecoding := aValue.Trim 1401 | else raise Exception.CreateFMT('`%s` tagı, `decoding` özniteliği ile birlikte kullanılamaz.', [FName]); 1402 | Result := Self; 1403 | end; 1404 | 1405 | function THTMLTag.default( const aValue: String): THTMLTag; 1406 | begin 1407 | Fdefault:= ''; 1408 | if (ValidateAttribute(['track']) = TRUE) 1409 | then Fdefault := aValue.Trim 1410 | else raise Exception.CreateFMT('`%s` tagı, `default` özniteliği ile birlikte kullanılamaz.', [FName]); 1411 | Result := Self; 1412 | end; 1413 | 1414 | function THTMLTag.defer( const aValue: String): THTMLTag; 1415 | begin 1416 | Fdefer:= ''; 1417 | if (ValidateAttribute(['script']) = TRUE) 1418 | then Fdefer := aValue.Trim 1419 | else raise Exception.CreateFMT('`%s` tagı, `defer` özniteliği ile birlikte kullanılamaz.', [FName]); 1420 | Result := Self; 1421 | end; 1422 | 1423 | function THTMLTag.dirname( const aValue: String): THTMLTag; 1424 | begin 1425 | Fdirname:= ''; 1426 | if (ValidateAttribute(['input','textarea']) = TRUE) 1427 | then Fdirname := aValue.Trim 1428 | else raise Exception.CreateFMT('`%s` tagı, `dirname` özniteliği ile birlikte kullanılamaz.', [FName]); 1429 | Result := Self; 1430 | end; 1431 | 1432 | function THTMLTag.disabled( const aValue: String): THTMLTag; 1433 | begin 1434 | Fdisabled:= ''; 1435 | if (ValidateAttribute(['button','command','fieldset','input','keygen','optgroup','option','select','textarea']) = TRUE) 1436 | then Fdisabled := aValue.Trim 1437 | else raise Exception.CreateFMT('`%s` tagı, `disabled` özniteliği ile birlikte kullanılamaz.', [FName]); 1438 | Result := Self; 1439 | end; 1440 | 1441 | function THTMLTag.download( const aValue: String): THTMLTag; 1442 | begin 1443 | Fdownload:= ''; 1444 | if (ValidateAttribute(['a','area']) = TRUE) 1445 | then Fdownload := aValue.Trim 1446 | else raise Exception.CreateFMT('`%s` tagı, `download` özniteliği ile birlikte kullanılamaz.', [FName]); 1447 | Result := Self; 1448 | end; 1449 | 1450 | function THTMLTag.enctype( const aValue: String): THTMLTag; 1451 | begin 1452 | Fenctype:= ''; 1453 | if (ValidateAttribute(['form']) = TRUE) 1454 | then Fenctype := aValue.Trim 1455 | else raise Exception.CreateFMT('`%s` tagı, `enctype` özniteliği ile birlikte kullanılamaz.', [FName]); 1456 | Result := Self; 1457 | end; 1458 | 1459 | function THTMLTag.enterkeyhint ( const aValue: String): THTMLTag; 1460 | begin 1461 | Fenterkeyhint := ''; 1462 | if (ValidateAttribute(['textarea','contenteditable']) = TRUE) 1463 | then Fenterkeyhint := aValue.Trim 1464 | else raise Exception.CreateFMT('`%s` tagı, `enterkeyhint ` özniteliği ile birlikte kullanılamaz.', [FName]); 1465 | Result := Self; 1466 | end; 1467 | 1468 | function THTMLTag.for_( const aValue: String): THTMLTag; 1469 | begin 1470 | Ffor_:= ''; 1471 | if (ValidateAttribute(['label','output']) = TRUE) 1472 | then Ffor_ := aValue.Trim 1473 | else raise Exception.CreateFMT('`%s` tagı, `for_` özniteliği ile birlikte kullanılamaz.', [FName]); 1474 | Result := Self; 1475 | end; 1476 | 1477 | function THTMLTag.form( const aValue: String): THTMLTag; 1478 | begin 1479 | Fform:= ''; 1480 | if (ValidateAttribute(['button','fieldset','input','keygen','label','meter','object','output','progress','select','textarea']) = TRUE) 1481 | then Fform := aValue.Trim 1482 | else raise Exception.CreateFMT('`%s` tagı, `form` özniteliği ile birlikte kullanılamaz.', [FName]); 1483 | Result := Self; 1484 | end; 1485 | 1486 | function THTMLTag.formaction( const aValue: String): THTMLTag; 1487 | begin 1488 | Fformaction:= ''; 1489 | if (ValidateAttribute(['input','button']) = TRUE) 1490 | then Fformaction := aValue.Trim 1491 | else raise Exception.CreateFMT('`%s` tagı, `formaction` özniteliği ile birlikte kullanılamaz.', [FName]); 1492 | Result := Self; 1493 | end; 1494 | 1495 | function THTMLTag.formnovalidate( const aValue: String): THTMLTag; 1496 | begin 1497 | Fformnovalidate:= ''; 1498 | if (ValidateAttribute(['button']) = TRUE) 1499 | then Fformnovalidate := aValue.Trim 1500 | else raise Exception.CreateFMT('`%s` tagı, `formnovalidate` özniteliği ile birlikte kullanılamaz.', [FName]); 1501 | Result := Self; 1502 | end; 1503 | 1504 | function THTMLTag.headers( const aValue: String): THTMLTag; 1505 | begin 1506 | Fheaders:= ''; 1507 | if (ValidateAttribute(['td','th']) = TRUE) 1508 | then Fheaders := aValue.Trim 1509 | else raise Exception.CreateFMT('`%s` tagı, `headers` özniteliği ile birlikte kullanılamaz.', [FName]); 1510 | Result := Self; 1511 | end; 1512 | 1513 | function THTMLTag.height( const aValue: String): THTMLTag; 1514 | begin 1515 | Fheight:= ''; 1516 | if (ValidateAttribute(['canvas','embed','iframe','img','input','object','video']) = TRUE) 1517 | then Fheight := aValue.Trim 1518 | else raise Exception.CreateFMT('`%s` tagı, `height` özniteliği ile birlikte kullanılamaz.', [FName]); 1519 | Result := Self; 1520 | end; 1521 | 1522 | function THTMLTag.high( const aValue: String): THTMLTag; 1523 | begin 1524 | Fhigh:= ''; 1525 | if (ValidateAttribute(['meter']) = TRUE) 1526 | then Fhigh := aValue.Trim 1527 | else raise Exception.CreateFMT('`%s` tagı, `high` özniteliği ile birlikte kullanılamaz.', [FName]); 1528 | Result := Self; 1529 | end; 1530 | 1531 | function THTMLTag.href( const aValue: String): THTMLTag; 1532 | begin 1533 | Fhref:= ''; 1534 | if (ValidateAttribute(['a','area','base','link']) = TRUE) 1535 | then Fhref := aValue.Trim 1536 | else raise Exception.CreateFMT('`%s` tagı, `href` özniteliği ile birlikte kullanılamaz.', [FName]); 1537 | Result := Self; 1538 | end; 1539 | 1540 | function THTMLTag.hreflang( const aValue: String): THTMLTag; 1541 | begin 1542 | Fhreflang:= ''; 1543 | if (ValidateAttribute(['a','area','link']) = TRUE) 1544 | then Fhreflang := aValue.Trim 1545 | else raise Exception.CreateFMT('`%s` tagı, `hreflang` özniteliği ile birlikte kullanılamaz.', [FName]); 1546 | Result := Self; 1547 | end; 1548 | 1549 | function THTMLTag.http_equiv( const aValue: String): THTMLTag; 1550 | begin 1551 | Fhttp_equiv:= ''; 1552 | if (ValidateAttribute(['meta']) = TRUE) 1553 | then Fhttp_equiv := aValue.Trim 1554 | else raise Exception.CreateFMT('`%s` tagı, `http_equiv` özniteliği ile birlikte kullanılamaz.', [FName]); 1555 | Result := Self; 1556 | end; 1557 | 1558 | function THTMLTag.icon( const aValue: String): THTMLTag; 1559 | begin 1560 | Ficon:= ''; 1561 | if (ValidateAttribute(['command']) = TRUE) 1562 | then Ficon := aValue.Trim 1563 | else raise Exception.CreateFMT('`%s` tagı, `icon` özniteliği ile birlikte kullanılamaz.', [FName]); 1564 | Result := Self; 1565 | end; 1566 | 1567 | function THTMLTag.importance ( const aValue: String): THTMLTag; 1568 | begin 1569 | Fimportance := ''; 1570 | if (ValidateAttribute(['iframe','img','link','script']) = TRUE) 1571 | then Fimportance := aValue.Trim 1572 | else raise Exception.CreateFMT('`%s` tagı, `importance ` özniteliği ile birlikte kullanılamaz.', [FName]); 1573 | Result := Self; 1574 | end; 1575 | 1576 | function THTMLTag.integrity( const aValue: String): THTMLTag; 1577 | begin 1578 | Fintegrity:= ''; 1579 | if (ValidateAttribute(['link','script']) = TRUE) 1580 | then Fintegrity := aValue.Trim 1581 | else raise Exception.CreateFMT('`%s` tagı, `integrity` özniteliği ile birlikte kullanılamaz.', [FName]); 1582 | Result := Self; 1583 | end; 1584 | 1585 | function THTMLTag.intrinsicsize ( const aValue: String): THTMLTag; 1586 | begin 1587 | Fintrinsicsize := ''; 1588 | if (ValidateAttribute(['img']) = TRUE) 1589 | then Fintrinsicsize := aValue.Trim 1590 | else raise Exception.CreateFMT('`%s` tagı, `intrinsicsize ` özniteliği ile birlikte kullanılamaz.', [FName]); 1591 | Result := Self; 1592 | end; 1593 | 1594 | function THTMLTag.inputmode( const aValue: String): THTMLTag; 1595 | begin 1596 | Finputmode:= ''; 1597 | if (ValidateAttribute(['textarea','contenteditable']) = TRUE) 1598 | then Finputmode := aValue.Trim 1599 | else raise Exception.CreateFMT('`%s` tagı, `inputmode` özniteliği ile birlikte kullanılamaz.', [FName]); 1600 | Result := Self; 1601 | end; 1602 | 1603 | function THTMLTag.ismap( const aValue: String): THTMLTag; 1604 | begin 1605 | Fismap:= ''; 1606 | if (ValidateAttribute(['img']) = TRUE) 1607 | then Fismap := aValue.Trim 1608 | else raise Exception.CreateFMT('`%s` tagı, `ismap` özniteliği ile birlikte kullanılamaz.', [FName]); 1609 | Result := Self; 1610 | end; 1611 | 1612 | function THTMLTag.keytype( const aValue: String): THTMLTag; 1613 | begin 1614 | Fkeytype:= ''; 1615 | if (ValidateAttribute(['keygen']) = TRUE) 1616 | then Fkeytype := aValue.Trim 1617 | else raise Exception.CreateFMT('`%s` tagı, `keytype` özniteliği ile birlikte kullanılamaz.', [FName]); 1618 | Result := Self; 1619 | end; 1620 | 1621 | function THTMLTag.kind( const aValue: String): THTMLTag; 1622 | begin 1623 | Fkind:= ''; 1624 | if (ValidateAttribute(['track']) = TRUE) 1625 | then Fkind := aValue.Trim 1626 | else raise Exception.CreateFMT('`%s` tagı, `kind` özniteliği ile birlikte kullanılamaz.', [FName]); 1627 | Result := Self; 1628 | end; 1629 | 1630 | function THTMLTag.label_( const aValue: String): THTMLTag; 1631 | begin 1632 | Flabel_:= ''; 1633 | if (ValidateAttribute(['track']) = TRUE) 1634 | then Flabel_ := aValue.Trim 1635 | else raise Exception.CreateFMT('`%s` tagı, `label_` özniteliği ile birlikte kullanılamaz.', [FName]); 1636 | Result := Self; 1637 | end; 1638 | 1639 | function THTMLTag.language( const aValue: String): THTMLTag; 1640 | begin 1641 | Flanguage:= ''; 1642 | if (ValidateAttribute(['script']) = TRUE) 1643 | then Flanguage := aValue.Trim 1644 | else raise Exception.CreateFMT('`%s` tagı, `language` özniteliği ile birlikte kullanılamaz.', [FName]); 1645 | Result := Self; 1646 | end; 1647 | 1648 | function THTMLTag.loading ( const aValue: String): THTMLTag; 1649 | begin 1650 | Floading := ''; 1651 | if (ValidateAttribute(['img','iframe']) = TRUE) 1652 | then Floading := aValue.Trim 1653 | else raise Exception.CreateFMT('`%s` tagı, `loading ` özniteliği ile birlikte kullanılamaz.', [FName]); 1654 | Result := Self; 1655 | end; 1656 | 1657 | function THTMLTag.list( const aValue: String): THTMLTag; 1658 | begin 1659 | Flist:= ''; 1660 | if (ValidateAttribute(['input']) = TRUE) 1661 | then Flist := aValue.Trim 1662 | else raise Exception.CreateFMT('`%s` tagı, `list` özniteliği ile birlikte kullanılamaz.', [FName]); 1663 | Result := Self; 1664 | end; 1665 | 1666 | function THTMLTag.loop( const aValue: String): THTMLTag; 1667 | begin 1668 | Floop:= ''; 1669 | if (ValidateAttribute(['audio','bgsound','marquee','video']) = TRUE) 1670 | then Floop := aValue.Trim 1671 | else raise Exception.CreateFMT('`%s` tagı, `loop` özniteliği ile birlikte kullanılamaz.', [FName]); 1672 | Result := Self; 1673 | end; 1674 | 1675 | function THTMLTag.low( const aValue: String): THTMLTag; 1676 | begin 1677 | Flow:= ''; 1678 | if (ValidateAttribute(['meter']) = TRUE) 1679 | then Flow := aValue.Trim 1680 | else raise Exception.CreateFMT('`%s` tagı, `low` özniteliği ile birlikte kullanılamaz.', [FName]); 1681 | Result := Self; 1682 | end; 1683 | 1684 | function THTMLTag.manifest( const aValue: String): THTMLTag; 1685 | begin 1686 | Fmanifest:= ''; 1687 | if (ValidateAttribute(['html']) = TRUE) 1688 | then Fmanifest := aValue.Trim 1689 | else raise Exception.CreateFMT('`%s` tagı, `manifest` özniteliği ile birlikte kullanılamaz.', [FName]); 1690 | Result := Self; 1691 | end; 1692 | 1693 | function THTMLTag.max( const aValue: String): THTMLTag; 1694 | begin 1695 | Fmax:= ''; 1696 | if (ValidateAttribute(['input','meter','progress']) = TRUE) 1697 | then Fmax := aValue.Trim 1698 | else raise Exception.CreateFMT('`%s` tagı, `max` özniteliği ile birlikte kullanılamaz.', [FName]); 1699 | Result := Self; 1700 | end; 1701 | 1702 | function THTMLTag.maxlength( const aValue: String): THTMLTag; 1703 | begin 1704 | Fmaxlength:= ''; 1705 | if (ValidateAttribute(['input','textarea']) = TRUE) 1706 | then Fmaxlength := aValue.Trim 1707 | else raise Exception.CreateFMT('`%s` tagı, `maxlength` özniteliği ile birlikte kullanılamaz.', [FName]); 1708 | Result := Self; 1709 | end; 1710 | 1711 | function THTMLTag.minlength( const aValue: String): THTMLTag; 1712 | begin 1713 | Fminlength:= ''; 1714 | if (ValidateAttribute(['input','textarea']) = TRUE) 1715 | then Fminlength := aValue.Trim 1716 | else raise Exception.CreateFMT('`%s` tagı, `minlength` özniteliği ile birlikte kullanılamaz.', [FName]); 1717 | Result := Self; 1718 | end; 1719 | 1720 | function THTMLTag.media( const aValue: String): THTMLTag; 1721 | begin 1722 | Fmedia:= ''; 1723 | if (ValidateAttribute(['a','area','link','source','style']) = TRUE) 1724 | then Fmedia := aValue.Trim 1725 | else raise Exception.CreateFMT('`%s` tagı, `media` özniteliği ile birlikte kullanılamaz.', [FName]); 1726 | Result := Self; 1727 | end; 1728 | 1729 | function THTMLTag.method( const aValue: String): THTMLTag; 1730 | begin 1731 | Fmethod:= ''; 1732 | if (ValidateAttribute(['form']) = TRUE) 1733 | then Fmethod := aValue.Trim 1734 | else raise Exception.CreateFMT('`%s` tagı, `method` özniteliği ile birlikte kullanılamaz.', [FName]); 1735 | Result := Self; 1736 | end; 1737 | 1738 | function THTMLTag.min( const aValue: String): THTMLTag; 1739 | begin 1740 | Fmin:= ''; 1741 | if (ValidateAttribute(['input','meter']) = TRUE) 1742 | then Fmin := aValue.Trim 1743 | else raise Exception.CreateFMT('`%s` tagı, `min` özniteliği ile birlikte kullanılamaz.', [FName]); 1744 | Result := Self; 1745 | end; 1746 | 1747 | function THTMLTag.multiple( const aValue: String): THTMLTag; 1748 | begin 1749 | Fmultiple:= ''; 1750 | if (ValidateAttribute(['input','select']) = TRUE) 1751 | then Fmultiple := aValue.Trim 1752 | else raise Exception.CreateFMT('`%s` tagı, `multiple` özniteliği ile birlikte kullanılamaz.', [FName]); 1753 | Result := Self; 1754 | end; 1755 | 1756 | function THTMLTag.muted( const aValue: String): THTMLTag; 1757 | begin 1758 | Fmuted:= ''; 1759 | if (ValidateAttribute(['audio','video']) = TRUE) 1760 | then Fmuted := aValue.Trim 1761 | else raise Exception.CreateFMT('`%s` tagı, `muted` özniteliği ile birlikte kullanılamaz.', [FName]); 1762 | Result := Self; 1763 | end; 1764 | 1765 | function THTMLTag.name( const aValue: String): THTMLTag; 1766 | begin 1767 | Fname:= ''; 1768 | if (ValidateAttribute(['button','form','fieldset','iframe','input','keygen','object','output','select','textarea','map','meta','param']) = TRUE) 1769 | then Fname := aValue.Trim 1770 | else raise Exception.CreateFMT('`%s` tagı, `name` özniteliği ile birlikte kullanılamaz.', [FName]); 1771 | Result := Self; 1772 | end; 1773 | 1774 | function THTMLTag.novalidate( const aValue: String): THTMLTag; 1775 | begin 1776 | Fnovalidate:= ''; 1777 | if (ValidateAttribute(['form']) = TRUE) 1778 | then Fnovalidate := aValue.Trim 1779 | else raise Exception.CreateFMT('`%s` tagı, `novalidate` özniteliği ile birlikte kullanılamaz.', [FName]); 1780 | Result := Self; 1781 | end; 1782 | 1783 | function THTMLTag.open( const aValue: String): THTMLTag; 1784 | begin 1785 | Fopen:= ''; 1786 | if (ValidateAttribute(['details']) = TRUE) 1787 | then Fopen := aValue.Trim 1788 | else raise Exception.CreateFMT('`%s` tagı, `open` özniteliği ile birlikte kullanılamaz.', [FName]); 1789 | Result := Self; 1790 | end; 1791 | 1792 | function THTMLTag.optimum( const aValue: String): THTMLTag; 1793 | begin 1794 | Foptimum:= ''; 1795 | if (ValidateAttribute(['meter']) = TRUE) 1796 | then Foptimum := aValue.Trim 1797 | else raise Exception.CreateFMT('`%s` tagı, `optimum` özniteliği ile birlikte kullanılamaz.', [FName]); 1798 | Result := Self; 1799 | end; 1800 | 1801 | function THTMLTag.pattern( const aValue: String): THTMLTag; 1802 | begin 1803 | Fpattern:= ''; 1804 | if (ValidateAttribute(['input']) = TRUE) 1805 | then Fpattern := aValue.Trim 1806 | else raise Exception.CreateFMT('`%s` tagı, `pattern` özniteliği ile birlikte kullanılamaz.', [FName]); 1807 | Result := Self; 1808 | end; 1809 | 1810 | function THTMLTag.ping( const aValue: String): THTMLTag; 1811 | begin 1812 | Fping:= ''; 1813 | if (ValidateAttribute(['a','area']) = TRUE) 1814 | then Fping := aValue.Trim 1815 | else raise Exception.CreateFMT('`%s` tagı, `ping` özniteliği ile birlikte kullanılamaz.', [FName]); 1816 | Result := Self; 1817 | end; 1818 | 1819 | function THTMLTag.placeholder( const aValue: String): THTMLTag; 1820 | begin 1821 | Fplaceholder:= ''; 1822 | if (ValidateAttribute(['input','textarea']) = TRUE) 1823 | then Fplaceholder := aValue.Trim 1824 | else raise Exception.CreateFMT('`%s` tagı, `placeholder` özniteliği ile birlikte kullanılamaz.', [FName]); 1825 | Result := Self; 1826 | end; 1827 | 1828 | function THTMLTag.poster( const aValue: String): THTMLTag; 1829 | begin 1830 | Fposter:= ''; 1831 | if (ValidateAttribute(['video']) = TRUE) 1832 | then Fposter := aValue.Trim 1833 | else raise Exception.CreateFMT('`%s` tagı, `poster` özniteliği ile birlikte kullanılamaz.', [FName]); 1834 | Result := Self; 1835 | end; 1836 | 1837 | function THTMLTag.preload( const aValue: String): THTMLTag; 1838 | begin 1839 | Fpreload:= ''; 1840 | if (ValidateAttribute(['audio','video']) = TRUE) 1841 | then Fpreload := aValue.Trim 1842 | else raise Exception.CreateFMT('`%s` tagı, `preload` özniteliği ile birlikte kullanılamaz.', [FName]); 1843 | Result := Self; 1844 | end; 1845 | 1846 | function THTMLTag.radiogroup( const aValue: String): THTMLTag; 1847 | begin 1848 | Fradiogroup:= ''; 1849 | if (ValidateAttribute(['command']) = TRUE) 1850 | then Fradiogroup := aValue.Trim 1851 | else raise Exception.CreateFMT('`%s` tagı, `radiogroup` özniteliği ile birlikte kullanılamaz.', [FName]); 1852 | Result := Self; 1853 | end; 1854 | 1855 | function THTMLTag.readonly( const aValue: String): THTMLTag; 1856 | begin 1857 | Freadonly:= ''; 1858 | if (ValidateAttribute(['input','textarea']) = TRUE) 1859 | then Freadonly := aValue.Trim 1860 | else raise Exception.CreateFMT('`%s` tagı, `readonly` özniteliği ile birlikte kullanılamaz.', [FName]); 1861 | Result := Self; 1862 | end; 1863 | 1864 | function THTMLTag.referrerpolicy( const aValue: String): THTMLTag; 1865 | begin 1866 | Freferrerpolicy:= ''; 1867 | if (ValidateAttribute(['a','area','iframe','img','link','script']) = TRUE) 1868 | then Freferrerpolicy := aValue.Trim 1869 | else raise Exception.CreateFMT('`%s` tagı, `referrerpolicy` özniteliği ile birlikte kullanılamaz.', [FName]); 1870 | Result := Self; 1871 | end; 1872 | 1873 | function THTMLTag.rel( const aValue: String): THTMLTag; 1874 | begin 1875 | Frel:= ''; 1876 | if (ValidateAttribute(['a','area','link']) = TRUE) 1877 | then Frel := aValue.Trim 1878 | else raise Exception.CreateFMT('`%s` tagı, `rel` özniteliği ile birlikte kullanılamaz.', [FName]); 1879 | Result := Self; 1880 | end; 1881 | 1882 | function THTMLTag.required( const aValue: String): THTMLTag; 1883 | begin 1884 | Frequired:= ''; 1885 | if (ValidateAttribute(['input','select','textarea']) = TRUE) 1886 | then Frequired := aValue.Trim 1887 | else raise Exception.CreateFMT('`%s` tagı, `required` özniteliği ile birlikte kullanılamaz.', [FName]); 1888 | Result := Self; 1889 | end; 1890 | 1891 | function THTMLTag.reversed( const aValue: String): THTMLTag; 1892 | begin 1893 | Freversed:= ''; 1894 | if (ValidateAttribute(['ol']) = TRUE) 1895 | then Freversed := aValue.Trim 1896 | else raise Exception.CreateFMT('`%s` tagı, `reversed` özniteliği ile birlikte kullanılamaz.', [FName]); 1897 | Result := Self; 1898 | end; 1899 | 1900 | function THTMLTag.rows( const aValue: String): THTMLTag; 1901 | begin 1902 | Frows:= ''; 1903 | if (ValidateAttribute(['textarea']) = TRUE) 1904 | then Frows := aValue.Trim 1905 | else raise Exception.CreateFMT('`%s` tagı, `rows` özniteliği ile birlikte kullanılamaz.', [FName]); 1906 | Result := Self; 1907 | end; 1908 | 1909 | function THTMLTag.rowspan( const aValue: String): THTMLTag; 1910 | begin 1911 | Frowspan:= ''; 1912 | if (ValidateAttribute(['td','th']) = TRUE) 1913 | then Frowspan := aValue.Trim 1914 | else raise Exception.CreateFMT('`%s` tagı, `rowspan` özniteliği ile birlikte kullanılamaz.', [FName]); 1915 | Result := Self; 1916 | end; 1917 | 1918 | function THTMLTag.sandbox( const aValue: String): THTMLTag; 1919 | begin 1920 | Fsandbox:= ''; 1921 | if (ValidateAttribute(['iframe']) = TRUE) 1922 | then Fsandbox := aValue.Trim 1923 | else raise Exception.CreateFMT('`%s` tagı, `sandbox` özniteliği ile birlikte kullanılamaz.', [FName]); 1924 | Result := Self; 1925 | end; 1926 | 1927 | function THTMLTag.scope( const aValue: String): THTMLTag; 1928 | begin 1929 | Fscope:= ''; 1930 | if (ValidateAttribute(['th']) = TRUE) 1931 | then Fscope := aValue.Trim 1932 | else raise Exception.CreateFMT('`%s` tagı, `scope` özniteliği ile birlikte kullanılamaz.', [FName]); 1933 | Result := Self; 1934 | end; 1935 | 1936 | function THTMLTag.scoped( const aValue: String): THTMLTag; 1937 | begin 1938 | Fscoped:= ''; 1939 | if (ValidateAttribute(['style']) = TRUE) 1940 | then Fscoped := aValue.Trim 1941 | else raise Exception.CreateFMT('`%s` tagı, `scoped` özniteliği ile birlikte kullanılamaz.', [FName]); 1942 | Result := Self; 1943 | end; 1944 | 1945 | function THTMLTag.selected( const aValue: String): THTMLTag; 1946 | begin 1947 | Fselected:= ''; 1948 | if (ValidateAttribute(['option']) = TRUE) 1949 | then Fselected := aValue.Trim 1950 | else raise Exception.CreateFMT('`%s` tagı, `selected` özniteliği ile birlikte kullanılamaz.', [FName]); 1951 | Result := Self; 1952 | end; 1953 | 1954 | function THTMLTag.shape( const aValue: String): THTMLTag; 1955 | begin 1956 | Fshape:= ''; 1957 | if (ValidateAttribute(['a','area']) = TRUE) 1958 | then Fshape := aValue.Trim 1959 | else raise Exception.CreateFMT('`%s` tagı, `shape` özniteliği ile birlikte kullanılamaz.', [FName]); 1960 | Result := Self; 1961 | end; 1962 | 1963 | function THTMLTag.size( const aValue: String): THTMLTag; 1964 | begin 1965 | Fsize:= ''; 1966 | if (ValidateAttribute(['input','select']) = TRUE) 1967 | then Fsize := aValue.Trim 1968 | else raise Exception.CreateFMT('`%s` tagı, `size` özniteliği ile birlikte kullanılamaz.', [FName]); 1969 | Result := Self; 1970 | end; 1971 | 1972 | function THTMLTag.sizes( const aValue: String): THTMLTag; 1973 | begin 1974 | Fsizes:= ''; 1975 | if (ValidateAttribute(['link','img','source']) = TRUE) 1976 | then Fsizes := aValue.Trim 1977 | else raise Exception.CreateFMT('`%s` tagı, `sizes` özniteliği ile birlikte kullanılamaz.', [FName]); 1978 | Result := Self; 1979 | end; 1980 | 1981 | function THTMLTag.span( const aValue: String): THTMLTag; 1982 | begin 1983 | Fspan:= ''; 1984 | if (ValidateAttribute(['col','colgroup']) = TRUE) 1985 | then Fspan := aValue.Trim 1986 | else raise Exception.CreateFMT('`%s` tagı, `span` özniteliği ile birlikte kullanılamaz.', [FName]); 1987 | Result := Self; 1988 | end; 1989 | 1990 | function THTMLTag.src( const aValue: String): THTMLTag; 1991 | begin 1992 | Fsrc:= ''; 1993 | if (ValidateAttribute(['audio','embed','iframe','img','input','script','source','track','video']) = TRUE) 1994 | then Fsrc := aValue.Trim 1995 | else raise Exception.CreateFMT('`%s` tagı, `src` özniteliği ile birlikte kullanılamaz.', [FName]); 1996 | Result := Self; 1997 | end; 1998 | 1999 | function THTMLTag.srcdoc( const aValue: String): THTMLTag; 2000 | begin 2001 | Fsrcdoc:= ''; 2002 | if (ValidateAttribute(['iframe']) = TRUE) 2003 | then Fsrcdoc := aValue.Trim 2004 | else raise Exception.CreateFMT('`%s` tagı, `srcdoc` özniteliği ile birlikte kullanılamaz.', [FName]); 2005 | Result := Self; 2006 | end; 2007 | 2008 | function THTMLTag.srclang( const aValue: String): THTMLTag; 2009 | begin 2010 | Fsrclang:= ''; 2011 | if (ValidateAttribute(['track']) = TRUE) 2012 | then Fsrclang := aValue.Trim 2013 | else raise Exception.CreateFMT('`%s` tagı, `srclang` özniteliği ile birlikte kullanılamaz.', [FName]); 2014 | Result := Self; 2015 | end; 2016 | 2017 | function THTMLTag.srcset( const aValue: String): THTMLTag; 2018 | begin 2019 | Fsrcset:= ''; 2020 | if (ValidateAttribute(['img','source']) = TRUE) 2021 | then Fsrcset := aValue.Trim 2022 | else raise Exception.CreateFMT('`%s` tagı, `srcset` özniteliği ile birlikte kullanılamaz.', [FName]); 2023 | Result := Self; 2024 | end; 2025 | 2026 | function THTMLTag.start( const aValue: String): THTMLTag; 2027 | begin 2028 | Fstart:= ''; 2029 | if (ValidateAttribute(['ol']) = TRUE) 2030 | then Fstart := aValue.Trim 2031 | else raise Exception.CreateFMT('`%s` tagı, `start` özniteliği ile birlikte kullanılamaz.', [FName]); 2032 | Result := Self; 2033 | end; 2034 | 2035 | function THTMLTag.step( const aValue: String): THTMLTag; 2036 | begin 2037 | Fstep:= ''; 2038 | if (ValidateAttribute(['input']) = TRUE) 2039 | then Fstep := aValue.Trim 2040 | else raise Exception.CreateFMT('`%s` tagı, `step` özniteliği ile birlikte kullanılamaz.', [FName]); 2041 | Result := Self; 2042 | end; 2043 | 2044 | function THTMLTag.summary( const aValue: String): THTMLTag; 2045 | begin 2046 | Fsummary:= ''; 2047 | if (ValidateAttribute(['table']) = TRUE) 2048 | then Fsummary := aValue.Trim 2049 | else raise Exception.CreateFMT('`%s` tagı, `summary` özniteliği ile birlikte kullanılamaz.', [FName]); 2050 | Result := Self; 2051 | end; 2052 | 2053 | function THTMLTag.target( const aValue: String): THTMLTag; 2054 | begin 2055 | Ftarget:= ''; 2056 | if (ValidateAttribute(['a','area','base','form']) = TRUE) 2057 | then Ftarget := aValue.Trim 2058 | else raise Exception.CreateFMT('`%s` tagı, `target` özniteliği ile birlikte kullanılamaz.', [FName]); 2059 | Result := Self; 2060 | end; 2061 | 2062 | function THTMLTag.type_( const aValue: String): THTMLTag; 2063 | begin 2064 | Ftype_:= ''; 2065 | if (ValidateAttribute(['button','input','command','embed','object','script','source','style','menu']) = TRUE) 2066 | then Ftype_ := aValue.Trim 2067 | else raise Exception.CreateFMT('`%s` tagı, `type_` özniteliği ile birlikte kullanılamaz.', [FName]); 2068 | Result := Self; 2069 | end; 2070 | 2071 | function THTMLTag.usemap( const aValue: String): THTMLTag; 2072 | begin 2073 | Fusemap:= ''; 2074 | if (ValidateAttribute(['img','input','object']) = TRUE) 2075 | then Fusemap := aValue.Trim 2076 | else raise Exception.CreateFMT('`%s` tagı, `usemap` özniteliği ile birlikte kullanılamaz.', [FName]); 2077 | Result := Self; 2078 | end; 2079 | 2080 | function THTMLTag.value( const aValue: String): THTMLTag; 2081 | begin 2082 | Fvalue:= ''; 2083 | if (ValidateAttribute(['button','data','input','li','meter','option','progress','param']) = TRUE) 2084 | then Fvalue := aValue.Trim 2085 | else raise Exception.CreateFMT('`%s` tagı, `value` özniteliği ile birlikte kullanılamaz.', [FName]); 2086 | Result := Self; 2087 | end; 2088 | 2089 | function THTMLTag.width( const aValue: String): THTMLTag; 2090 | begin 2091 | Fwidth:= ''; 2092 | if (ValidateAttribute(['canvas','embed','iframe','img','input','object','video']) = TRUE) 2093 | then Fwidth := aValue.Trim 2094 | else raise Exception.CreateFMT('`%s` tagı, `width` özniteliği ile birlikte kullanılamaz.', [FName]); 2095 | Result := Self; 2096 | end; 2097 | 2098 | function THTMLTag.wrap( const aValue: String): THTMLTag; 2099 | begin 2100 | Fwrap:= ''; 2101 | if (ValidateAttribute(['textarea']) = TRUE) 2102 | then Fwrap := aValue.Trim 2103 | else raise Exception.CreateFMT('`%s` tagı, `wrap` özniteliği ile birlikte kullanılamaz.', [FName]); 2104 | Result := Self; 2105 | end; 2106 | {$endregion} 2107 | {$region 'Events'} 2108 | {$region 'window events' } 2109 | function THTMLTag.onafterprint( const aScript: String): THTMLTag; 2110 | Begin 2111 | Fonafterprint := aScript; 2112 | Result := Self; 2113 | end; 2114 | 2115 | function THTMLTag.onbeforeprint( const aScript: String): THTMLTag; 2116 | Begin 2117 | Fonbeforeprint := aScript; 2118 | Result := Self; 2119 | end; 2120 | 2121 | function THTMLTag.onbeforeunload( const aScript: String): THTMLTag; 2122 | Begin 2123 | Fonbeforeunload := aScript; 2124 | Result := Self; 2125 | end; 2126 | 2127 | function THTMLTag.onerror( const aScript: String): THTMLTag; 2128 | Begin 2129 | Fonerror := aScript; 2130 | Result := Self; 2131 | end; 2132 | 2133 | function THTMLTag.onhashchange( const aScript: String): THTMLTag; 2134 | Begin 2135 | Fonhashchange := aScript; 2136 | Result := Self; 2137 | end; 2138 | 2139 | function THTMLTag.onload( const aScript: String): THTMLTag; 2140 | Begin 2141 | Fonload := aScript; 2142 | Result := Self; 2143 | end; 2144 | 2145 | function THTMLTag.onmessage( const aScript: String): THTMLTag; 2146 | Begin 2147 | Fonmessage := aScript; 2148 | Result := Self; 2149 | end; 2150 | 2151 | function THTMLTag.onoffline( const aScript: String): THTMLTag; 2152 | Begin 2153 | Fonoffline := aScript; 2154 | Result := Self; 2155 | end; 2156 | 2157 | function THTMLTag.ononline( const aScript: String): THTMLTag; 2158 | Begin 2159 | Fononline := aScript; 2160 | Result := Self; 2161 | end; 2162 | 2163 | function THTMLTag.onpagehide( const aScript: String): THTMLTag; 2164 | Begin 2165 | Fonpagehide := aScript; 2166 | Result := Self; 2167 | end; 2168 | 2169 | function THTMLTag.onpageshow( const aScript: String): THTMLTag; 2170 | Begin 2171 | Fonpageshow := aScript; 2172 | Result := Self; 2173 | end; 2174 | 2175 | function THTMLTag.onpopstate( const aScript: String): THTMLTag; 2176 | Begin 2177 | Fonpopstate := aScript; 2178 | Result := Self; 2179 | end; 2180 | 2181 | function THTMLTag.onresize( const aScript: String): THTMLTag; 2182 | Begin 2183 | Fonresize := aScript; 2184 | Result := Self; 2185 | end; 2186 | 2187 | function THTMLTag.onstorage( const aScript: String): THTMLTag; 2188 | Begin 2189 | Fonstorage := aScript; 2190 | Result := Self; 2191 | end; 2192 | 2193 | function THTMLTag.onunload( const aScript: String): THTMLTag; 2194 | Begin 2195 | Fonunload := aScript; 2196 | Result := Self; 2197 | end; 2198 | {$endregion} 2199 | 2200 | {$region 'form events' } 2201 | function THTMLTag.onblur( const aScript: String): THTMLTag; 2202 | Begin 2203 | Fonblur := aScript; 2204 | Result := Self; 2205 | end; 2206 | 2207 | function THTMLTag.onchange( const aScript: String): THTMLTag; 2208 | Begin 2209 | Fonchange := aScript; 2210 | Result := Self; 2211 | end; 2212 | 2213 | function THTMLTag.oncontextmenu( const aScript: String): THTMLTag; 2214 | Begin 2215 | Foncontextmenu := aScript; 2216 | Result := Self; 2217 | end; 2218 | 2219 | function THTMLTag.onfocus( const aScript: String): THTMLTag; 2220 | Begin 2221 | Fonfocus := aScript; 2222 | Result := Self; 2223 | end; 2224 | 2225 | function THTMLTag.oninput( const aScript: String): THTMLTag; 2226 | Begin 2227 | Foninput := aScript; 2228 | Result := Self; 2229 | end; 2230 | 2231 | function THTMLTag.oninvalid( const aScript: String): THTMLTag; 2232 | Begin 2233 | Foninvalid := aScript; 2234 | Result := Self; 2235 | end; 2236 | 2237 | function THTMLTag.onreset( const aScript: String): THTMLTag; 2238 | Begin 2239 | Fonreset := aScript; 2240 | Result := Self; 2241 | end; 2242 | 2243 | function THTMLTag.onsearch( const aScript: String): THTMLTag; 2244 | Begin 2245 | Fonsearch := aScript; 2246 | Result := Self; 2247 | end; 2248 | 2249 | function THTMLTag.onselect( const aScript: String): THTMLTag; 2250 | Begin 2251 | Fonselect := aScript; 2252 | Result := Self; 2253 | end; 2254 | 2255 | function THTMLTag.onsubmit( const aScript: String): THTMLTag; 2256 | Begin 2257 | Fonsubmit := aScript; 2258 | Result := Self; 2259 | end; 2260 | {$endregion} 2261 | 2262 | {$region 'keyboard events' } 2263 | function THTMLTag.onkeydown( const aScript: String): THTMLTag; 2264 | Begin 2265 | Fonkeydown := aScript; 2266 | Result := Self; 2267 | end; 2268 | 2269 | function THTMLTag.onkeypress( const aScript: String): THTMLTag; 2270 | Begin 2271 | Fonkeypress := aScript; 2272 | Result := Self; 2273 | end; 2274 | 2275 | function THTMLTag.onkeyup( const aScript: String): THTMLTag; 2276 | Begin 2277 | Fonkeyup := aScript; 2278 | Result := Self; 2279 | end; 2280 | {$endregion} 2281 | 2282 | {$region 'mouse events' } 2283 | function THTMLTag.onclick( const aScript: String): THTMLTag; 2284 | Begin 2285 | Fonclick := aScript; 2286 | Result := Self; 2287 | end; 2288 | 2289 | function THTMLTag.ondblclick( const aScript: String): THTMLTag; 2290 | Begin 2291 | Fondblclick := aScript; 2292 | Result := Self; 2293 | end; 2294 | 2295 | function THTMLTag.onmousedown( const aScript: String): THTMLTag; 2296 | Begin 2297 | Fonmousedown := aScript; 2298 | Result := Self; 2299 | end; 2300 | 2301 | function THTMLTag.onmousemove( const aScript: String): THTMLTag; 2302 | Begin 2303 | Fonmousemove := aScript; 2304 | Result := Self; 2305 | end; 2306 | 2307 | function THTMLTag.onmouseout( const aScript: String): THTMLTag; 2308 | Begin 2309 | Fonmouseout := aScript; 2310 | Result := Self; 2311 | end; 2312 | 2313 | function THTMLTag.onmouseover( const aScript: String): THTMLTag; 2314 | Begin 2315 | Fonmouseover := aScript; 2316 | Result := Self; 2317 | end; 2318 | 2319 | function THTMLTag.onmouseup( const aScript: String): THTMLTag; 2320 | Begin 2321 | Fonmouseup := aScript; 2322 | Result := Self; 2323 | end; 2324 | 2325 | function THTMLTag.onmousewheel( const aScript: String): THTMLTag; 2326 | Begin 2327 | Fonmousewheel := aScript; 2328 | Result := Self; 2329 | end; 2330 | 2331 | function THTMLTag.onwheel( const aScript: String): THTMLTag; 2332 | Begin 2333 | Fonwheel := aScript; 2334 | Result := Self; 2335 | end; 2336 | {$endregion} 2337 | 2338 | {$region 'drag events' } 2339 | function THTMLTag.ondrag( const aScript: String): THTMLTag; 2340 | Begin 2341 | Fondrag := aScript; 2342 | Result := Self; 2343 | end; 2344 | 2345 | function THTMLTag.ondragend( const aScript: String): THTMLTag; 2346 | Begin 2347 | Fondragend := aScript; 2348 | Result := Self; 2349 | end; 2350 | 2351 | function THTMLTag.ondragenter( const aScript: String): THTMLTag; 2352 | Begin 2353 | Fondragenter := aScript; 2354 | Result := Self; 2355 | end; 2356 | 2357 | function THTMLTag.ondragleave( const aScript: String): THTMLTag; 2358 | Begin 2359 | Fondragleave := aScript; 2360 | Result := Self; 2361 | end; 2362 | 2363 | function THTMLTag.ondragover( const aScript: String): THTMLTag; 2364 | Begin 2365 | Fondragover := aScript; 2366 | Result := Self; 2367 | end; 2368 | 2369 | function THTMLTag.ondragstart( const aScript: String): THTMLTag; 2370 | Begin 2371 | Fondragstart := aScript; 2372 | Result := Self; 2373 | end; 2374 | 2375 | function THTMLTag.ondrop( const aScript: String): THTMLTag; 2376 | Begin 2377 | Fondrop := aScript; 2378 | Result := Self; 2379 | end; 2380 | 2381 | function THTMLTag.onscroll( const aScript: String): THTMLTag; 2382 | Begin 2383 | Fonscroll := aScript; 2384 | Result := Self; 2385 | end; 2386 | {$endregion} 2387 | 2388 | {$region 'clipboard events' } 2389 | function THTMLTag.oncopy( const aScript: String): THTMLTag; 2390 | Begin 2391 | Foncopy := aScript; 2392 | Result := Self; 2393 | end; 2394 | 2395 | function THTMLTag.oncut( const aScript: String): THTMLTag; 2396 | Begin 2397 | Foncut := aScript; 2398 | Result := Self; 2399 | end; 2400 | 2401 | function THTMLTag.onpaste( const aScript: String): THTMLTag; 2402 | Begin 2403 | Fonpaste := aScript; 2404 | Result := Self; 2405 | end; 2406 | {$endregion} 2407 | 2408 | {$region 'media events' } 2409 | function THTMLTag.onabort( const aScript: String): THTMLTag; 2410 | Begin 2411 | Fonabort := aScript; 2412 | Result := Self; 2413 | end; 2414 | 2415 | function THTMLTag.oncanplay( const aScript: String): THTMLTag; 2416 | Begin 2417 | Foncanplay := aScript; 2418 | Result := Self; 2419 | end; 2420 | 2421 | function THTMLTag.oncanplaythrough( const aScript: String): THTMLTag; 2422 | Begin 2423 | Foncanplaythrough := aScript; 2424 | Result := Self; 2425 | end; 2426 | 2427 | function THTMLTag.oncuechange( const aScript: String): THTMLTag; 2428 | Begin 2429 | Foncuechange := aScript; 2430 | Result := Self; 2431 | end; 2432 | 2433 | function THTMLTag.ondurationchange( const aScript: String): THTMLTag; 2434 | Begin 2435 | Fondurationchange := aScript; 2436 | Result := Self; 2437 | end; 2438 | 2439 | function THTMLTag.onemptied( const aScript: String): THTMLTag; 2440 | Begin 2441 | Fonemptied := aScript; 2442 | Result := Self; 2443 | end; 2444 | 2445 | function THTMLTag.onended( const aScript: String): THTMLTag; 2446 | Begin 2447 | Fonended := aScript; 2448 | Result := Self; 2449 | end; 2450 | 2451 | function THTMLTag.onerror_( const aScript: String): THTMLTag; 2452 | Begin 2453 | Fonerror_ := aScript; 2454 | Result := Self; 2455 | end; 2456 | 2457 | function THTMLTag.onloadeddata( const aScript: String): THTMLTag; 2458 | Begin 2459 | Fonloadeddata := aScript; 2460 | Result := Self; 2461 | end; 2462 | 2463 | function THTMLTag.onloadedmetadata( const aScript: String): THTMLTag; 2464 | Begin 2465 | Fonloadedmetadata := aScript; 2466 | Result := Self; 2467 | end; 2468 | 2469 | function THTMLTag.onloadstart( const aScript: String): THTMLTag; 2470 | Begin 2471 | Fonloadstart := aScript; 2472 | Result := Self; 2473 | end; 2474 | 2475 | function THTMLTag.onpause( const aScript: String): THTMLTag; 2476 | Begin 2477 | Fonpause := aScript; 2478 | Result := Self; 2479 | end; 2480 | 2481 | function THTMLTag.onplay( const aScript: String): THTMLTag; 2482 | Begin 2483 | Fonplay := aScript; 2484 | Result := Self; 2485 | end; 2486 | 2487 | function THTMLTag.onplaying( const aScript: String): THTMLTag; 2488 | Begin 2489 | Fonplaying := aScript; 2490 | Result := Self; 2491 | end; 2492 | 2493 | function THTMLTag.onprogress( const aScript: String): THTMLTag; 2494 | Begin 2495 | Fonprogress := aScript; 2496 | Result := Self; 2497 | end; 2498 | 2499 | function THTMLTag.onratechange( const aScript: String): THTMLTag; 2500 | Begin 2501 | Fonratechange := aScript; 2502 | Result := Self; 2503 | end; 2504 | 2505 | function THTMLTag.onseeked( const aScript: String): THTMLTag; 2506 | Begin 2507 | Fonseeked := aScript; 2508 | Result := Self; 2509 | end; 2510 | 2511 | function THTMLTag.onseeking( const aScript: String): THTMLTag; 2512 | Begin 2513 | Fonseeking := aScript; 2514 | Result := Self; 2515 | end; 2516 | 2517 | function THTMLTag.onstalled( const aScript: String): THTMLTag; 2518 | Begin 2519 | Fonstalled := aScript; 2520 | Result := Self; 2521 | end; 2522 | 2523 | function THTMLTag.onsuspend( const aScript: String): THTMLTag; 2524 | Begin 2525 | Fonsuspend := aScript; 2526 | Result := Self; 2527 | end; 2528 | 2529 | function THTMLTag.ontimeupdate( const aScript: String): THTMLTag; 2530 | Begin 2531 | Fontimeupdate := aScript; 2532 | Result := Self; 2533 | end; 2534 | 2535 | function THTMLTag.onvolumechange( const aScript: String): THTMLTag; 2536 | Begin 2537 | Fonvolumechange := aScript; 2538 | Result := Self; 2539 | end; 2540 | 2541 | function THTMLTag.onwaiting( const aScript: String): THTMLTag; 2542 | Begin 2543 | Fonwaiting := aScript; 2544 | Result := Self; 2545 | end; 2546 | {$endregion} 2547 | 2548 | {$region 'misc events' } 2549 | function THTMLTag.ontoggle( const aScript: String): THTMLTag; 2550 | Begin 2551 | Fontoggle := aScript; 2552 | Result := Self; 2553 | end; 2554 | {$endregion} 2555 | {$endregion} 2556 | 2557 | end. 2558 | -------------------------------------------------------------------------------- /src/Types_HTML5_.pas: -------------------------------------------------------------------------------- 1 | /// 2 | /// HTML TAG NESNESİ ile ilgili nesne yardımcılarını ve ek veri tiplerini 3 | /// tanımlar. 4 | /// 5 | /// 6 | /// Uğur PARLAYAN 7 | /// 8 | /// 9 | /// 01.01.2019 10 | /// 11 | unit Types_HTML5_; 12 | 13 | interface 14 | 15 | {$region 'gözardı edilecek olan uyarı ve ipucu listesi'} 16 | { // Uyarı ve ipucu listesi aşağıdaki linkte yer alıyor. UP. 17 | https://marc.durdin.net/2012/05/delphi-xe2s-hidden-hints-and-warnings-options/ } 18 | {$WARN UNIT_PLATFORM OFF} // Platfown Spesifik uyarısını kapatır 19 | {$WARN SYMBOL_PLATFORM OFF} // W1002 spesifik platform, incele ( https://stackoverflow.com/questions/352479/delphi-warning-w1002-symbol-filesetdate-is-specific-to-a-platform ) 20 | {$WARN SUSPICIOUS_TYPECAST OFF} // W1044 spesifik platform, incele ( https://stackoverflow.com/questions/283759/convert-string-to-pansichar-in-delphi-2009 ) 21 | {$WARN IMPLICIT_STRING_CAST OFF} // W1057 (Örtük tip dönüştürme: String to utf8string) 22 | {$WARN IMPLICIT_STRING_CAST_LOSS OFF} // W1058 (örtük tip dönüştürme: utf8string to string) 23 | {$WARN NO_RETVAL OFF} // W1058 (örtük tip dönüştürme: utf8string to string) 24 | {$WARN HIDDEN_VIRTUAL OFF} // W1010 (Temel sınıftaki sanal yöntem gizlenmiş...) 25 | {$endregion} 26 | 27 | type 28 | THTMLItems = array of string; 29 | THTMLItems_Helper = record helper for THTMLItems 30 | public 31 | function Count: Integer; 32 | end; 33 | 34 | implementation 35 | 36 | { THTMLAttributes_Helper } 37 | 38 | function THTMLItems_Helper.Count: Integer; 39 | begin 40 | Result := High(Self); 41 | end; 42 | 43 | end. 44 | --------------------------------------------------------------------------------