DELPHI4 ¦ Webber2022Feb  Test2022Feb HELP UNIVERSUMS HISTORIA | 2022II24 | enproduktion | LastUpdatedVersion: 2022-08-13 ¦  HumanRight is a knowledge domain

 

content · webbSÖK äMNESORD på denna sida Ctrl+F

 

 

Webber2022FebHELP — manual ¦ WritingTheCode  — Webber From Delphi4 Start New Project¦ The Delphi4 HELP Book System ¦ SpecialOffLINEweb: Feb2022 ¦ SetBrowserMANUAL

 

How Web22 was developed from start ¦ TheWeb22CODE ¦ WritingTheCode ¦ WEBB22 ¦ WhatIsDELPHI4 ¦ Unit1Content ¦ TheLINK Issue ¦ IconSHOW

DELPHI4Handle: Delphi4COPYRoutines

 

 Global Overview — all users, all computers ¦ Saving A project

HOW TO HANDLE DELPHI4 Windows API Projects

 ORGANIZATION — as tested and experienced (1997+): USING DELPHI4 100% DEMANDS UNDERSTANDING ITS GENERAL BEHAVIOR:

   sharing projects ”regardless of frontiers” (A19 UDHR10Dec1948) — no profiting enterprise:

 

 

COMB: Life in universe?

 

— I have made a new Delphi4 Windows API program for Windows. I want to share it with others, the entire project, all its files, allowing anyone to make changes anyway:

   How is that realized?

   Take some time to cogitate the compiled content  below, unless already familiar.

ANSWER:

   Seal it up — the whole project catalog — in a Zip-file, make a link to that Zip-file — and present some basic info why we should bother at all looking at MY PERSONAL Crappy Delphi4 Programming Skills:

— We haven’t seen your version yet (do not underestimate your own potential ..).

 

 

 

SaveAs

 

Exported FactoryCopies — products — function as separate independent individual domains — for independent development [Principia].

COMA:

An original product — here a Fabric — entails possible COPIES Ctrl+C from the original the factory developing source.

 

   IF Delphi4 is the project factory for an Original Fabric, the Original Fabric has a Delphi4 incorporated DirectorySource in its .dsk-file:

   Copying that means copying the soruce-path — so : opening the copy itself from Delphi4 entails hazard IF tampering with Unit code:

   Writing new code in the copy will only transfer to the Original Fabric, not the copy, and nothing of that is seen from the opened copy.

   Do not write/add/insert new code in a Delphi4 opened copy of an Original Fabric — it can crash the original (surprise) when opened.

— See Simple Testing Tutorial on a WatchTest.

 

   A copy has no DEVELOPING connectivity to the fabricated original: the copy only function as a regular BackUp.

 

   A BackUpCopy can establish status as a brand new code-independent developing OriginalFabric

   IF the Copy is renamed in its own copied catalog/directory/folder (Menu: File, Save Project As .. ¦ Project name: seven project file extension types become duplicates, the old project name and the new one: Delphi4 has no here known dialog to remove/delete the old ones, those must be deleted manually — but if kept, they have no longer a meaning for developing on the new project’s name), or

   IF the Copy is renamed into a new catalog/directory/folder (Menu: File, Save Project As .. ¦ Project name ¦ Project directory) with an additional re-save to that location of all the project’s Unit .pas files (Menu: File, Save As .. — must be repeated for each one of the Unit files: open all Units, and select one at a time with an additional Save As opening dialog — examples will follow ..), or:

 

ReMa: Renaming manual

 

ONLY IF the renaming process entails association ON a regular COPY of an Original Fabric, also the actual copy catalog location must save the Original Fabric’s Unit files on the Copy’s location, one by one; yes to all. The only exception is: When renaming an Original Fabric as such: its Unit files are already there.

 

ProjectFact: ProjectFactory

 

   An Original Fabric once opened in Delphi4 can be duplicated as one or several new independent Delphi4 and mutually disconnected, self independent self sustaining projects — no internal Delphi4 dependent copy or connectivity status —

 

   IF the Original Fabric is FileExplorer moved out of its directory (D) — certifying a broken Delphi source reference —

EITHER directly into another (new) directory, certifying the previous empty content has broken all previous Delphi connectivity,

OR so in different (multiple) steps

into a (reserved by us) Delphi4 ”ProjectFactory” directory, then the project

opened from there in Delphi4which cuts all source references to the now empty Dand then Delphi4 is closed (Alt+F,X), and then that Delphi4ProjectFactory’s content, all of it, the Original Fabric, is FileExplorer MOVED back to its original directory (D)certifying D has no source connectivity to the now empty Delphi4ProjectFactory — with an additional option to copy The Original Fabric — now back in D, liberated from any Delphi source connectivity — to any number of other Brand New Original Fabric Directories — with no need for changing the project name, just securing new isolated locations of original directories (NewA, NewB, ..) — as tested (13Apr2022) with excellent result:

no need for renaming project or re-saving Units.

   All Original Fabric are now/then holding the same project name but in different locations — as if copied from another computer (or Internet) to any number of different catalogs. All these work as a new independent project with no mutual or internal code connectivity when opened for the first and n:th time in Delphi4 (Ctrl+F12, open Unit1/Form1, F12, Run[F9]).

 

THESE WERE SOME OF THE TRICKY PARTS THAT DELPHI4 HELP ONLY — HERE KNOWN — WAS PARTIALLY HINTING AT BUT NOT REALLY EXPLAINING IN DETAIL: The details have here Jan2022+ been thoroughly tested as described.

 

OriginalFactory: ReMa ¦ COMA ¦ COMB

 

— What means ”Trafficking Humanity”? Test answer: Using humanity and its need for life and development — for profit: slavery, slave trade.

— ”Dolan’s Cadillac” [Movie 2009].

 

 

Consult these simple overview blocks if in any doubt on how to handle the (otherwise) maybe tricky project complexity (sharing) from DELPHI4. Further examples will be given below — with some quotes from Delphi4Help.

 

   See also WHERE ARE WE ProjectSelfCleaningProgram in explicit: CopyDELPHI4Projects ¦ Savning A Project. See also

   A Simple Delphi4 Testing Tutorial:

   simple — fast — programming proof of (some of) the above stated

— with only one code command: halt.

 

 

— How do we know if a certain catalog’s unit file is a genuine Original Fabric or belong to a parent Original Fabric somewhere on the computer?

— Open the location from Delphi4 and read the windows header of (say) Unit1 (open with Ctrl+F12): IF it has an Original Fabric parent somewhere, Delphi4 writes its full path in the Unit’s window header. If not, a simple ”Unit1.pas” is displayed there.

 

 

 

 

WEB22:

Describing The Project

WEB22 is: An organized TICKET — for starting/calling/focusing all the available computer’s web browsing programs.

   And some additional examples: how Delph4 programming Windows code works. No more. No less.

Windows API programming on DELPHI4 needs a DELPHI4 installation

— THAT DELPHI4 (Mar2022) needs its own classic HELP file system archive

— THAT classic HELP file system Archive needs a Delphi4Test20xx download — or a free Super Finder XT

— as an effective and reliable search engine for accessing the single help book system’s key words. Why?

— BECAUSE New Microsoft did ban and stop all further access to SUCH (2015+ ¦ see BasicDelphi4Help):

   Windows 10, tested Jan2022+ cannot handle IT at all: not one word. No connection: Cannot search in hlp-files. These very fine classic archive basic Windows programming knowledge basics has apparently been refuted by The New Upstanding Microsoft Enterprise:

— No HumanRight privacy. Not one word. Never Microsoft or Google mentioned. Not a sound. Not a hint. Not a spell.

   Microsoft&Google are earning a steady growing fantastic credibility in a steadily more enlightened humanity. Very reliable. MustBuyBook.

   See also: The Microsoft LIST.

 

 

With Web22: no matter the number of opened Windows programs:

   calling W and selecting any of the NumPad 1 2 3 4 with a following Ctrl+Enter

  always brings the selected Browser window up to top

— provided the Web22 window Focus is on Form1: use TAB after start with NumpadMinus and Enter to return to this visual condition:

   Full Upstart Webb22: (MouseLeftClick DeskIcon, Enter): NumpadMinus, Enter:

 

 

When Memo1 has focus — blinking text caret — the only way to return focus to Form1 — for Webbers selection — is

   TAB, TAB — or if Button1 has focus [dotted rectangle]

   ArrowDown — an ArrowDownNo3 returns focus to Memo1 again:

   Further ArrowKeys will return focus back to Memo1 — from which only a TAB can defocus.

 

WhatIsWebber22: OffLine

Webber22Feb:

What is Webber22?

— THE new beginner’s programming code RESULT  in DELPHI4  from reading the MANUAL.

   See also directly from WRITING THE CODE

 

   Web22 — A New Beginners DELPHI4 Classic Windows API Programming Example (»ANBeD4CWAPE»)

— exposing as many basic code editing details as possible on a practical example’s credit.

   Comparing Web22 between different Windows machines — here from (Windows 95 up to) Windows XP, and further (through Windows Vista) to Windows 7, 8 and 10 — exposes less pleasant details in New Microsoft Corporation Business Enterprise: Windows 10 — banning the extensive original DELPHI4 Help Communicating System, among other observed classic Windows API mutilations.

   See also WhatDo.

 

 

 

Microsoft Enterprise Corporation after Windows 7: very high Windows API programming insights — like caring more about the ashes than the gold.

 

 

   The instance (2010¦15+) cannot handle Windows API, or deliberately mutilates parts of it to ban original Windows.

HowListIn: — SetBrowser:  WhatWebber

SetBrowserMANUAL

How to import the Webber List

Webber|exeFile|ClassName — see The Code in Timer1.2  

 

 

— How is the list of Webbers inserted — and from where is the info extracted?

— See:

 

 

THE NEUTRAL MIDDLE GRAY OFFERS THE GREATEST ASSOCIATIVE visual SPACE FOR EVERYTHING ELSE — PERFECT FOR FRAMING PROGRAM CONTENT. + a TRANQUIL :BLUE.

— Nothing beats that. Have your say. Anything else is a functional degradation. Tranquility — peace of mind — determines the property.

 

First: The Delphi4 code that makes it happen:

— A Timer is added to the project from Delphi4:s tools deposit:

 

procedure TForm1.Timer1Timer(Sender: TObject);

var

  C: TColor;

  P: PChar;

  begin

C:= RGB(245,245,245);

P:=StrAlloc(50+1);

try

 GetClassName(GetForegroundWindow,P,50);

 Label1.Caption:= StrPas(P);

 if GetAsyncKeyState(VK_SHIFT)=-32767

 then

 ClipBoard.AsText:= Label1.Caption;

 if

 Label1.Color=C then

 Label1.Color:=RGB(240,220,200) else

 Label1.Color:=C;

finally

 StrDispose(P);

end;

  end;

 

Then:

How The Webber Import works

— We borrow Label1 for A The Visually Certifying Instance of information — on Timer1: 1 second intervals:

   Ctrl+Shift+T (on FormKeyUp) toggles Timer1 OnOff:

 

 

 

Start — Ctrl+Shift+T — Focus — Shift — Ctrl+V. Collect active Web Browser’s Windows ClassNames.

 

 

   Timer1 ON twinkles Label1 (½ second intervals) between white and bright orange:

 

Right: Label1 displays

”TForm1” as the Window’s Class Name of Web22 as long as it has focus.

Left: Label1 displays

”{1C03B488-D53B-4a81-97F8-754559640193}” as the Window’s Class Name of Web Browser Safari

— as long as it has focus. And same on other Windows focus.

 

   A Shift key press/lift forces (–32767) the captured ClassName A ClipBoard Export:

   We open NotePad and Ctrl+V import the exported ClassName.

 

 

   Additional WebberInfo — here  Safari (its exe-file name) is displayed in Safari’s catalog/directory:

 

 

— RightClick (its window’s desk top icon — the whole exe file name may or may not be seen there, the directory path should though be seen: take/Explorer browse it from there).

 

   Make a list of the installed Web Browser on that method (vertical separation sign RightAlt+ ><[KeyBoardBottomLeft])

 

Webber|exeFile|ClassName .....................    WB1

Webber|exeFile|ClassName .....................    WB2

Webber|exeFile|ClassName .....................    WB3

Webber|exeFile|ClassName .....................    WB4

..

and write/export it into the text file

 

 

   Finished.

 

Continue on What Does Web22 Do?

 

 

 

WhatDELPHI4: hLISTin ¦ ComparingExample

 

What is ”Delphi4”?

 

 

 

— What is ”DELPHI4”?

Author’s Reference:

   DELPHI4 is the (very with a capital v, what is known here) fastest, most powerful and crazy effective and precise logic direct CPU accessible computer/microprocessor program language that ever was made

— inside the known history of humanity (Borland’s Turbo Pascal Assembler, Borland’s Pascal).

— DELPHI4 was distributed (1997) as a free-ware program by that time’s PC Worlds magazines — for personal, non commercial use only.

 

 

 

 

   It took the world by storm: its (very) fast, logic and effective feature: direct compiling CPU code. Crazy fast..

   Testing a 100% effective 12of12 in 1.5 seconds contrary to a 67% 8of12 in 15 minutes: that sucks. Windows 10.

   New Microsoft Corporation Business Enterprise rules the computer world (4Nov2020+) on:

   Human Trafficking: hampering humanity on pushing darkness and provable incompetence over its head.

   Windows (10 and all the others after Windows 95) has no selection for a search on a specific file type: »Windows searches everywhere for everything»: zero computer knowledge. No HumanRight mentioning.

 

 

ComparingEX: D4    THROW NEW MICROSOFT CORPORATION BUSINESS ENTERPRISE OUT OF THIS UNIVERSE: WINDOWS 10 TRAFFICKING HUMANITY — NOW. Say it: You’re wrong. Say again. Come again.

HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve · HaveToSeeToBelieve ·

Jan2022: KeyWord:  madness — whole humanity — .. millions .. under development  dictatorship — copyright on knowledge development — from the least of all intelligible sources in human history .. : business: ”we own you”. Come again.

 

 

   Addressing the person without mentioning the recognition of its ”inherent dignity” HumanRight as ”the foundation of freedom, justice and peace in the world” is know throughout history without exception to be the definition of excercising oppression: Human Trafficking: cookies: slave trade: slavery. The per definition of a person’s lack of personal — HumanRight — freedom. Not one word Human Right. Not a spell. 0 word.

— Claim whatever you want: HumanRight is a knowledge domain — under attack by DRIFT. Not plan.

— That is how it works: just »give a shit» and the rest takes care of itself. No proclamation needed:

 

 

 

There is also another Windows [NT] API free program Super Finder XT ¦ TestD2 — much faster and [super] more effective as a search engine for Windows operating system in general. But [TestD2] ¦ [Win10] Windows 10 has strange ways in treating The Guest: Windows 10 abandons — frankly mutilates — its classic Windows HELP system search — of which Windows 10s own capability is: zero. None. Test examples from Feb2022 are given in detail in DELPHI4HelpManualFeb2022. A general MicrosoftLIST collecting examples describe some of the observed issues in »The New World Wide Microsoft Business Enterprise» during the developing years/decades.

 

WhatINFO: comEX

   Why haven’t we heard of that?

— Why haven’t we heard of that?

— Test this answer:

 

   THE NEW BORN DATA COMPUTER TECHNOLOGY CULTURE —  Microsoft (Bill Gates) Windows [Windows 3.1+] — presented a (very) high potential power

for personal development in programming and developing Windows Programs

— apparently SO much potential that it was »locked down and forbidden».

  A POTENTIAL THREAT TO BUSINESS MARKET.

   Personal development — don’t sell.

   IF »everyone is a god» profit is DEAD.

   No direct CPU access for private use: »ports closed».

— Strong capital Buyers »bought the rights up» — and began a Human Trafficking

   ON what humanity had developed though all its collected sum of all its work:

   the computer. Business — on the agenda of a wild free sucking profit — began »taking control over knowledge»:

   The computer tool as an advanced pen and rubber became a powerful Copyright Enslavment Instrument for the rich to dictate ”using license for Powerful pen and rubber” to the poor.  Say it: You’re wrong. Come again.

   The potential of humanity’s own free human right knowledge development was hampered

— now ruled and dictated by business.

   Trafficking. Have your say. Greed.

— If you are going to continue on looking at me, I want extra pay. Trafficking Humanity. Women Trading.

— Come again?

 

 

WhatDo: HowListIN ¦ wINFO

What does Webber22 do?

— You mean: Apart from Examplifying New Microsoft?

 

   Web22 is the end product of a first (new beginner’s) acquaintance with DELPHI4 programming technique — based on this author’s rough 25 year DELPHI4 programming Windows Program tools experience — for personal use only. HumanRight.

— I hear you keep saying that. But question was: What does it do — Is there an answer in there?

 

 

 

Webber22 Opens/Calls/Focuses on one specific Web Browser of all the available on ones computer. No more. No less.

 

— Why would such a tool be useful?

At first: not at all — because it is ”just” a beginners example in how to write effecrive and powerful visual DELPHI4 code in creating a personal Windows program — from the classic Windows API functions and commands — the raw base in the Windows operating system (from Windows 3.1) — you know »the one that took the world with storm».

   At second: Evaluating a possible practical usefulness for Webber22 revealed some interesting — quite unique — features: »advanced Organization — for 1 person at a time: featuring 4 .. [enhanced BrainActivity .. maybe ..]»

WebberAlternative: WhatWebberDo

   The alternative is to Alt+TAB through the already opened Browsers:

 

 

 

 

   Alt+ .. ta(pp)B .. ta(pp)B .. ta(pp)B .. ta(pp)B .. [.. Martha .. we have leprechauns in house again ..]

   on the (much more simpler) alternative

 

 

 

   .. Martha ... I’m busy Henry ..

 

WebberExample1 ¦ WebberExample2

One person features a whole group of people — as many as there are available (usable) Browsers. Each B is assigned a specific — well restrained — duty in collecting, analyzing and compiling a set of data related information with a specific scientific or general branch of interest — with some incorporated eventual developing aspects, if at all — including discussions and consultations between the members on the different issues and progress aspirations.

   We COULD do it with only one B — type 50 tabs as we browse in the world along with us. But more conveniently a few more B:s would be appreciated, dividing the tabs into more meaningful and overviewable working slot ditches.

   Because Henry is especially obsessed by »naturally friendly communications», he has requested a slot of his own for collecting more scientific aspects on the activities. We are waiting with great interest, aw and wonder for his results. Mary also announced her assisting interest.

   IF we have several computer stations (I have 7), the group work can be extended and organized in further deep.

 

 

WebMARKET: WAlt

BE CAREFUL WHEN DOWNLOADING AND TESTING WEB BROWSERS — SOME OF THEM SNEAK IN — opera IS THE LATEST EXAMPLE — AND OVERRUN ONE’S ALREADY SET STANDARD htm(l)BROWSER — WHICH SUDDENLY COMES AS A SUDDEN SURPRISE — WHEN LEAST EXPECTED. INSTANCES NOT RESPECTING THE PRIVACY ARE OF NO HUMAN GENERAL CIVILIZED INTEREST. NO MATTER THEIR FANCY DESIGN. HumanRight — it is.

 

 

— Takes 3 •:s ¦ Firefox3Mar2022v97.01.1 has regained internal linkage acceptances [Swedish version] of ÅÄÖåäö, tested 3Mar2022 on Windows 10.

— As compared with the below ÅÄÖåäö Firefox History: maybe the Firefox Programming Crew just forgot to turn it off this time @3Mar2022 .. new odds ..

— Maybe it is The New Company’s Owner who decides what counts .. majority decisions — outside HumanRight: functionality — rule the world .. Trafficking ..

   In a world where nobody mentions HumanRight — universal knowledge: life — what did you expect: charity, or perhaps even friendship .. ? Tell me about it. »KillTheFuckUp».

—————————————————————————————————————————————————————————————————————————————————————————————————————————

 WB Version: SafariMar2018 ¦ FirefoxNov2017 ¦ OperaFeb2022 ¦ ChromeDec2021 ¦ iEDec2019 ¦ EdgeNov2020 ¦

—————————————————————————————————————————————————————————————————————————————————————————————————————————

 

— How are we supposed to recognize the one from the other — visually, by the eye? Somehow, they all look the same in .. Windows 10.

 

Web Browser WB [»weBe»] Linkage Conflicts — Example with Mozilla Firefox

1 •   General Internet linkage convention: no ÅÄÖåäö in the actual directory-document address [Global classic ASCII convention]:

http:/www.universumshistoria.se/SolfysikenSolflckarnasUppkomst.htm

2 •   But very well in the acual internal documemt’s reference — beginning from Internet Explorer [Windows 95+: by that time »The One and Only available» Web Browser] on Microsoft’s WORD 2000 and its automated [Swedish version] LINKAGE addition where ÅÄÖåäö is allowed, as in

#Solfläckens_uppkomst_main

3 •   So that the total

http:/www.universumshistoria.se/SolfysikenSolflckarnasUppkomst.htm#Solfläckens_uppkomst_main

4 •   very well is OK — but not automatically also so in all Web Browsers:

   Mozilla Firefox had 3 • — up to 2016. From 2017 [also checked on a later 2018 version on another computer] it vas excluded: No more 3 •:s in Firefox.

— Internet Explorer and Google Chrome still has the 3 • [as of Jan2022 — versions of ChromeDec2021 and iEDec2019].

   And the creepy thing is: ONCE Having Found a specific WB to take 3 •:s we naturally avoid risking losing it on an Update version:

   we never know — by the Mozilla example — what new inducements the The Business Enterprise has come up with:

   preserved functionality is apparently not Global General Internet’s — most — foremost interest.

   The general Web Brower programming Enterprise is NOT for personal knowledge development — but apparently »for other». No Care.

Proof: Market

   Compare [3Mar2022] InternetExplorer version iEDec2015  • with [Windows 10] iEDec2019:

 

   From  visual excellence — middle neutral gray: visually associative functionality + tranquil blue —  to »There is more cheer in a graveyard»: .. bones .. skulls .. ribs ..

   Right part: Microsoft Edge, Google Chrome and Opera as tested Feb2022 in Windows 10 are practically identical copies: fuzzy/vandalized text, heavily disordered tabs:

— Only Safari and Mozilla Firefox still Feb2022 show the left below:

 

 

— What is wrong with these people — visually »rotting brains»? No HumanRight fathom: »Brain begins to rot» — because usage ceases: Trafficking Humanity has »taken over»: Natural Reflexion — functionality, personal development — is put on hold. Humanity Enters Its Darkest Period — ever. Say it: you’re wrong. Show us. Give examples: if a muscle is NOT used, it vanishes, diminishes, disappears. Come again.

   NATURE: if a muscle is NOT used, it vanishes: diminishes, disappears. Come again.

IT SEEMS HARD TO UNDERSTAND WHY ASHES IS MORE IMPORTANT THAN GOLD IS TO SOME LEADING EMINENT UP STANDING ASSHOLES.

— It seems hard to understand why ashes is more important than gold is to some leading eminent up standing assholes. OPEN OFFICE SPELL CHECK DOES NOT CHECK ON CAPITALS. Come again.

 

— Something apparently happened (2015+) in The Worlds ProgramDesign Establishment:

   »HideBrains» important NOT to use brains — »NewHideView». MustBuyBook.High iQ brain development. FreshStart.

— HollyWoodInvention: readTheBookCLOSED. VeryThrilling: The more DARK, the Better Content. High iQ is on the move.

— Be awake ¦ BUT DON’T SEE ANY. Very popular movement. MustBuyBook: »BuyMeMore».

   Safari is (yet) »the best scientific» — but it removes certain worked out design features — enhanced text with lines — that would make Safari excellent With.

   Some [2015+] Web Programmers seem to have forgotten the simple visual ICONIC reference to a specific [web] Browser.

— Selecting/identifying a species among them has become a fuzzy issue. THAT especially if we designate them to specific jobs: branching data collection.

 

 

 

Organized Example — for test, investigation, analyze — not aiming on any direct result ..

— just visiting the store .. evaluating eventual onsets ..

 

TheOrganizer: Proof

1  2  3  4 .. No need for Alt+TAB to »makeSEARCHesInOurMemoryfor”browsers”»:

   1. MathCollector; 2. PhotoReferencesCollector; 4. QuotesCollector  .. 3. GeneralSubjectIndex ..

— I use a NoteBook beside my KeyBoard, having planned and evaluated TheMission of each NumberCollector:

— Very StrongMemoryAffection.

— Along with a word processor and some ImageHandling Programs, Editions appear.

 

 

   No need to LookForWhereToFind »click Browser» in selecting ”that one”. No sir. Just call:

— 1collectMath, 2Nature, 3Quotes, 4SpecialReferences ..

   Compare the alternative: 40 TABS on a specific browser. That mission IS — apparently — impossible.

— We don’t really have to PRODUCE a document, or any TEXT at all — only INVESTIGATE — mind — the possible onset for, maybe, a such: »check the (re)sources», »see if we can get anything out of them» ..  »and to what extent we can organize a meaningful result» ..

 

 

The Associative Aspect:

 

Test it:

— PROVIDED we have DIFFERENT BOOKS FOR DIFFERENT SUBJECTS it becomes EASY to BROWSE INSIDE for (further) data collection:

   TYPEBookA .. TYPEBookB .. TYPEBookC .. TYPEBookD .. TYPEBookE ..

   Each type consolidates — certifies — its own branch — no mingling in explicit.

— Collecting NatureViews in (1), and other types in (.. 2 .. 3 ..) certifies EASE.

   And we ALWAYS know where to look for the Type — as Planned from the start (1  2  3 ..).

— The TERM ”browser” does not exist — in such an expedition. IT just exists.

 

Important Pausing:

   There are (short) pauses between selections/evaluations on an AgentCollector:

1.   Recall focus on the central HUBCenter: »TheProjectOrganizer»:

2.   Memorize — REFRESH — the entire expedition complex:

— what are we doing here: we are looking for .. what?

   What have we collected.

     And:

   what (is the reason for a further) selecting/sampling on a specific Collecting Agent?

 

WebberExample1: Organizer

 

When the amount of data — collecting, analyzing and sorting — passes a certain threshold —

our capacity for »associative — memory — coupling» between the different branches of data —

it is like trying to have a growing number of balls in the air, keeping track of them all:

   Sooner or later the growing number of balls forces us to a drop — of them all. We have limits. But we can push these limits to the extreme by some ordered organization — whereof the computer is the natural central choice. Mathematics for example: Analyzing natural processes is, what we know, impossible in any deeper sense without a calculating electronic device: fast and exact error free results.

   But if there are specific eminent assholes on this planet making restrictions in what manner Henry and Mary can use the computer’s innate power, to what extent, when and how, humanity is apparently enslaved, held in darkness and forced NOT to »develop more than the authorities allow». Fascism.

   It is the person itself who decides how Pen and Rubber — computer — should be used: when, to what extent, how and where. Other is oppression. Slavery.

 

 

Safari is an excellent example: We can EXPAND PRESENT SELECTIONS by repeating/»copying» present site to a new Tab by Ctrl+T: As we browse through a specific document, looking for type NaturePicture references, we have — of course — specific LINKS to that At Site — which we secure to be associated with the Selected Post before jumping to the next Tab — continuing searching through that document — or others associated.

 

Collecting a STREAM of data in a certain branch of interest — like reading a book using bookmarks — demand a MARKER, a TAB, in some a specific section:

   Continuing from there — = aNext Tab Beginning from there having the previous marker secured, the BookMark — secures an effective further collection and steaming of data. by continuity context. Safari has that feature: Ctrl+T makes a new tab — exactly on the previous tab’s contextual place. That is exactly how we associate — learn — in scientific research, as experienced and noted: step by step. Bit by bit. Never on jumps. It is called: care — of continuity. M a r y.

   Compare OpenOffice: It allows only bookmarking Ahead. Never back: OpenOffice has no concept of a basic library study: how and why bookmarks are used:

   OpenOffice cannot — so observed and experienced — be used in any deeper sense of scientific development — only at best as a simpler notebook (that also has a rare tendency of tampering away imported pictures between the text lines .. as the text grows .. and other strange things .. SpellCheck does NOT include capitals; it so says it can, but it doesn’t ..  SPEXLL no reaction .. but SPExLL does .. strange days

   A later checkTest shows that OpenOffice — now, suddenly — do react also on WholeCapitalWords (Finally some good news ..)

.. and in OpenOffice’s SpredSheet cells one and the same color in selected different cells and blocks must be made over and over again each time from the whole color chart: there is no LastColorSelection in OpenOffice SpreadSheet program, but very well so in the text/wordprocessor section .. the developers are not really awake .. and so the examples compete ..).

 

 

There are hundreds of (thousands of) posts, issues, references to chose and select from.

   On What motivation? Dazzle me.

— The Collecting Agent has Potential to Give Arguments — maybe: what do we have here?

— I do not think it would be easy to handle that type

— on only one browser

   type 38 tabs .. losing count .. where were we .. I’m hungry ...

 

 

 

Every time a number is entered — NumPadNumbers only — followed by a Ctrl+Enter — the CollectingAgent receives WindowsFocus —

   except Google Chrome:

   its window comes up as the topmost, yes — but without receiving type scrolling focus. Only — tested — way for ChromeBrowser with Web22 is to give Chrome an additional MouseClick. Neither a TAB nor a key F6 gives reaction on Chrome. With F6 — or TAB — on the others, the URL-inbox becomes selected. Tested so to be [Feb2022] on the machines Windows 7, 8 and 10: »GoogleChrome seems not fully Windows API consolidated». Or other ..

WebEX2: Wex1

 

EACH AgentCollector functions as a — veritable — »basic encyclopedia one Subject collector» Instance — here exemplifying a collection of NatureFrames in UH.

   Not all web browsers [Feb2022] has the feature of a Ctrl+T RepeatSame site in New Tab — but the SHOULD for supporting a Knowledge Tool.

   A second Agent should collect some other imperative subject. And so on. As much as we can organize — on a maximum FAST access.

  No delays. No interrupts. No breaks — except for Brakes: when WE — not Microsoft Business Enterprise decides. That IS a heaven in itself.

— The central INVESTIGATING part of the mission is: FAST sampling of already existent data.

— Because: the longer TIME i takes to collect, the less real time focusing power remains to consult.

— That is why SORTED BY TYPE is the mostMemoryEffective — because each specific type CAN have same names on multiple locations — while the reverse makes chaos:

   Quality first. Not quantity. Say. Tell me I’m wrong. Show. Give examples.

 

WebEX3: Wex2

CHECK OUT GOOGLE CHROME — DELPHI4 Webber22CodeTest

Test on Windows 7 — also further down test on Windows 10

 

   Always — no exception — when selecting W Web22 back to focus from the Windows Alt+TAB menu,

 

 

 

 

Windows 10 has not this fine tight context conceptual overview.

Windows 10 takes windows snap shots of the actual opened window program, and presents it in a tivoli of Big or Small Flashing Holly Wood Productions depending on Number of opened Windows.

— That is just Another example of Microsoft’s outstanding innovative Human Help for Developing Knowledge on a PersoAnal Basis — a waste of maximum everything. MustBuyBook.

 

 

the marked rectangle envelops Web22. It makes no difference if the last focused window belonged to Safari, InternetExlorer or MozillaFirefox: always the same result

 

   Except on GoogleChrome:

 

 

 

 

The menu rectangle is enveloping GoogleChrome

   and/But the last focused — keyboard accessible — window was NOT GoogleChrome. In fact:

   After calling up GoogleChrome window as the top front of all windows:

   all keyboard response is OFF.

 

GoogleExam: Wex3

Examining GoogleChrome’s strange behavior by DELPHI4 Windows API code:

All tests here from a Windows 7 machine 4Mar2022

 

 

   Testing all the Windows API ”window receives input keyboard focus” as above

— from the DELPHI4 Windows API Windows 32 Programmer’s Reference

— it is perfectly clear that Google Chrome does not apply to these — while all te other tested do:

   Safari, InternetExlorer, Firefox.

   The Windows Handle Identifiers (H&G) and their proven identities certify that the result is a genuine and attested Windows API proof.

   We don’t know (yet) the reason for this (slight) depressing inconvenience:

   Giving KeyboardFocus to a front brought GoogleChrome can — apparently — only be made either directly with a MouseButtonClick — or

 

 

»the regular Call W-backThumbForefinger» press — it sets W-focus from all the other browser’s windows, but in this rebellious GoogleChrome case, the maneuver shifts the keyboard focusing response to — GoogleChrome.

   Oh mama. I must say.

   Retrieving W, another Forefinger Push is needed — in the GoogleChrome case only.

 

 

The thing is with Web22: no matter the number of opened Windows programs:

   calling W and selecting any of the NumPad 1 2 3 4 with a following Ctrl+Enter

   always brings the selected Browser window up to top.

— It is as such only a »magic shortcut» to the regular Windows Alt+TAB menu selector — with some original GoogleChrome manners.

The Magic in it: a sequestered — isolated, protected — WindowsMenu for BringingUpBrowsersOnly (»a second Windows»): we don’t have to browse the regular Windows Alt+TAB menus (possible consisting of Many type icons and their iconic windows associated texts). That is a relief (»a gate to heaven»).

— Is GoogleChrome behaving the same if tested (4Mar2022) on a Windows 10 machine?

 

   Using The Windows Alt+TAB menu in Windows 10 shows an apparent flickering/flashing tivoli — perhaps deliberately so programmed: no smoothness.

   No. GoogleChrome versionDec2021 now also shows the same manner as the other W tested. Meaning:

   Earlier GoogleChrome(Sep2016)WindowsAPIproblemNow(Mar2022)Solved.

— That was positive. Thank you very much for that one (They are still human .. but lookProof at the horrible hideos text and tab represenation for small fonts).

 

 

In general the overall simple KeyBoard TwoHand key maneuvers in handling the Web22 details can be illustrated as below.

 

 

Ctrl+ENTER: LeftThumb — RightPinkie. NoMove.

 

 

   Properly organized:

— One hardly needs to move hands at all, only (slightly) the fingers (»basic piano overture» ..) on an already fixed hands position.

 

Web22StartUp—ExtraFeature

— open all the Browsers directly from keyboard only, one by one, or as selected only — without any W-focusing in between.

Ctrl+Shift + KeyBoartdLeftTop number keys 1 .. 4. Set/Toggle Timer1OnOff by Ctrl+Shift + T must be ON for this opurpose, Label3 shows light orange:

   Also (oldSep2016) GoogleChrome opens on the first call — fully focused.

 

Further ..

(Author’s Strategy .. example)

   I work on a The selected NUMBER — on my noted paper 1 2 3 4 .. what each one of them should collect — for the collecting work. I have absolutely no interest — wasting BrowserName searchMyMemoryTime — on what browser does what (except the introducing Planning: selecting which one [number] is better suited for a specific job).

 

Webber22Feb:

What does Webber22? — exemplifying beginner’s programming code in DELPHI4

— Just an organized TICKET (»SecondWindowsMenu») for Starting/Calling/Focusing EACH of all the available computer’s Web Browers.

No more. No less.

 

   Example 1

   Example 2

   Example 3

 

   Web22 is the end product of a first (new beginner’s) acquaintance with DELPHI4 programming technique — based on this author’s rough 25 year DELPHI4 programming Windows Program tools experience — for personal use only.

 

   Web22 works as a HUB — activation central  — for all available web browsers on ones computer — for offLINE works only: Internet is NOT connected in this complex:

— Or rather: THAT is not the intention — although  the reader in person decides how to use the tool in whatever way (for personal use).

 

   Web22 calls and opens listed web browsers in Web22s own Delphi4 project’s Webber.txt file.

The purpose behind:

   1. sharing the very powerful basics in DELPHI4 programming, exposing what it can do:

   2. taking the opportunity to compare — and expose — different machines and versions in Windows, mainly because Windows 10 shows several (many) examples of directly mutilated functionality compared with the original Windows API functions as described in the extensive DELPHI4 help file Windows API system — all up to Windows 7.

 

 

 

 

 

   3. Getting acquainted with Windows 10 — The New Microsoft World Computer Design Standard

BEHIND THE CURTAINS ..

 

 

 

WritingTheCode:  Web22Manual

 

The WEB22 PROGRAM CODE

WRITING THE CODE

Beginning from scratch

 

— It’ all mathematics. Related in to the last The F Word Atom.

 

The Delphi4 HELP Book System

 

F12 toggles TopMost Form1/Unit1.

F11 toggles ObjectInspector(/Form1/ObjectInstector/Unit1. On ObjectInspector: Ctrl+TAB toggles Properties/Events.

   Select Components [Delphi automates/writes basic procedural code] — write Code, and RUN [F9 — Compile Ctrl+F9: Reset Ctrl+F2 if Delphi halts on our coding errors]. Use any already given Delphi[4] reference project code to build further on — or develop on your own to get experience. Delphi4 has a [very sophisticated] debugger system that helps with hints and messages if our code is not accepted. So: test and run, and grow.

 

Delphi4DTI: TheCode

How Web22 developed from start

   After a successful DELPHI4 installation — and a created desk top icon (DTI):

 Delphi4 DTI desk top icon

THERE ARE TWO POSSIBILITIES — Windows operating systems (All from Windows XP, +):

With/Without UserAccountON:

WITH:

1. 

 Run all programs from the computer’s present User Account settings:

   Use of DELPHI4 to run/compile — demands checking the Run-as-administrator checkbox:

:

   Right click Delphi's DTI, select Properties,Compatibility,

   Check: Drive this program as an Administrator.

 

OTHERWISE DELPHI4 WILL NOT COMPILE — AND NOTHING AT ALL WILL HAPPEN OR RUN.

Start Delphi from DTI (Windows Dimmed prompted User Account Control: “Yes”) — and

——————————————————————————————————————

DELPHI4 WILL COMPILE AND RUN — ANYWAY. No restrictions.

Close windows and doors,

unplug Internet

keep distance from intruders ..

— ».. and just let ME be me ..»

WITHOUT:

2.  

Run all programs with present User Account settings disabled:

— DO NOT HAVE INTERNET CONNECTED. IF so: Computer Crashes within 2 sec. My estimate.

   Select START and Control Panel, select System and security, Change User Account settings:

   Push the bar Button to its bottom (User account off),

   Restart computer (Not a Windows 10 option IF avoiding Microsoft’s New Products ..).

StartDELPHI4: Desk top icon

Start Delphi from DTI with a single MouseLeftClick.

-------------------------------------------------------------------------------------------------------------------

 

All windows picture copies here are from the Windows 7 edition of the original 1997+  DELPHI4  freeware CD-installtion PC Magazines —  unless otherwise specified

 

 

Object Inspector [left down, not included in this dump] in a separate windows column. Code editing window to the right and its Visual Form where the componets will be set.

 

 

   From DELPHI4s Tool menu:

 

 

Environment Options, Preferences:

 

 

AutoSaveOFF: AutoSaveON

   Make sure — to begin with — that the check boxes on Autosave are clean (not checked).

 

 

 

— OTHERWISE DELPHI4 will PROMPT FOR A DIRECTORY AND NAME FOR THE PROJECT.

— To begin with: That is hieroglyphs for the beginner. We will come to that later.

   We save that part until later, when we have become more acquainted.

 

 

 

 

   First some Delphi4 RealSteel.

— For now we will just test DELPHI4 and see »what it can do» — without any obligations from our side.

(Where are these types of See detailed BeforeBuy on the Internet programProgramming Menus? I don’t see any).

(These are like: Well, let’s take a look in the gas tank, ..). [Investigations in The Dark].

 

OnOff: StartDelphi4

TEST first HOW TO TURN DELPHI4 OFF, an on again — familiarize the basics:

Alt + X — Close DELPHI4 (Archive: Exit).

Click DTI — open DELPHI4.

Ctrl + F2 — IF our code »hangs Delphi4»: restart — and try again. TRY: correct code errors.

IF THAT never happens to YOU, you are unnaturally gifted. Absolutely.

Open Task Manager — and end the program from there IF a certain grave Hanging shows up:

   In some cases — especially dealing with TStringList Coding — ”list index out of bounds” — Delphi4 might not be able to reset = turn the project running program off into code mode again. Then use Windows Task Manager [MouseRightClick on Windows bottom task bar], select the actual running program and quit it from there.

 

— Delphi4 has (sophisticated) debugging/Windows operating system protecting properties. These can guide us — very well — if we make mistakes — WHICH IS EXACTLY WHAT WE DO AS BEGINNERS; the pages we learn from and get experience. Don’t be afraid to experiment. That is part of the point in Delphi4: »the deeper suck the higher well».

 

(Trying to to get Delphi4 to »HANG THE COMPUTER» is, what is known here: never happened in my 25y history

— except once: on the Mean Set Error Issue — my bad: a CD drive crashed — with a sound of squeezing a pile off egg shells in ones hand: PluggOut. See CaseHistory — and InternetObservations — in  SetErrorModeSyndrom).

 

— Soon enough ONE will be an advanced computer programming engineer. Forget I sad that — and test the future.

TakingAcomponent: OnOff

   Place the cursor over the Button component, LeftCklick it:

 

 

— Remove the pointer and place IT on Form1:

   LeftClick — itON — on Form1:

— The »a Button1» appears:

(same click itON with all other Delphi4 installed components).

— move (»MouseDrag») Button1 freely with MouseLeft, or

Ctrl+Shift + ARROWS in 8 pixel steps, or

Ctrl+Arrows in 1 pixel steps.

ObjectInspector: TakeAComponent

 

And — where RealSteel?

— Try to get to the point.

   Key F11 shifts focus to the Object Inspector windows column:

— As the Button1 is marked/focused on Form1, it has automatically an Object Inspector focus:

 

 

— Select the Events tab if not already selected

(click or toggle with Ctrl+ Tab between the tabs).

 

   Scroll to (or click directly on) the OnClick selection:

 

 

   Press Ctrl+ENTER:

 

 

Code: ObjectInspector

— DELPHI4 shifts to Code Editor (Unit1)

   with an automatically added/inserted Procedure for the OnClick event:,

Part A:

Selecting a new unit in Delphi4

   File, New, Unit

generates an automatically prepared code unit of type

 

unit Unit2;

 

interface

 

implementation

 

end.

 

It has inner parts more detailed in Delphi4 Help (Delphi4.hlp) section Unit structure and syntax: Overview.

 

 

   The parts below are compiled as ”typical” from this author’s different Delphi4 projects.

   The purpose of this listing is only to introduce the beginner for ”the typical” onset of a project’s code view — as it develops »as we go along».

   Black is Delphi4:s automated inserts:

   Orange and Blue also so, partly, depending on the components we select from the tools menu, and partly our own written procedures (and functions).

   {$R *.DFM} is (sometimes) Delphi4:s own automated special program marker: »don’t touch me».

   We can freely add comments by {comment} or //comment or  (*comment*). Delphi4 makes these dark blue cursive (italic) — and ignores them completely on the end compiled (Ctrl+F9 ¦ F9) exe-file product.

   Imperative is the WAY units are referred to each other — to eliminate the so called ”circular reference”: Delphi4 debugger informs on that, if it happens, so we can adjust:

   Below it is Unit1 who is ”The Master Unit” (With its Form1), having all other units as ”SlaveUnits”:

   These ”SlaveUnits” can use Unit1 variables and functions — provided they declare a uses Unit 1 in their implementation section. If Unit2 below would declare a such in its interface section, a ”circular reference” would appear, and Delphi4 refuses to compile. Test that, and see how Delphi4 verifies and informs.

   Good planning is to have separate Units for Separate Tasks — easier after 12 years to make changes.

   Always — did I forget to mention Always — give short descriptive info on »what is going on here»: Coming back after thousands of code lines it is (quite) impossible to lure out the CONTEXT meaning of a greater scope without a former (short) overview. That is (highly) appreciated:

   WARNING: Delphi4 is highly ADDICTIVE: hours is ”nothing” with Delphi(4). Even Days, and WEEKS — sometimes even Months — IF one has such possible daily availability. It should be every person’s right:

— Daily Body training, Kitchen stuff (Farming) — and lots of Delphi(4). —»I refuse to go to sleep».

 

 

THE GENERAL SCOPE OF COMMUNICATING UNITS in Delphi4

 

 

 

 

 

   A — The code editor desk working window with the Delphi4 autoInserted OnClick procedure.

Part B:

   Between begin  and end (fatStyle marks Delphi4s own reserved words for code only):

   write

 

halt;

 

  Key F9 launches the now fully coded Windows Program — F9 every time to test on new code, and

   Key Alt+F4 closes the Windows Program — every time.

 

Run: Code

   Press key F9 — or first Ctrl+F9: Delphi4 compiles The CodeProject for a coming F9 (included Ctrl+F9) run:

— Mostly the Ctrl+F9 is used for checking new written code — certifying there are no errors.

Then the actual program is run directly with a F9, automatically preceded by an automated Delphi4 code compilation procedure (Ctrl+F9) — the final program’s executable file product.

Part C:

— The Windows program is now running in full pace — with a default Icon added by DELPHI4.

 

 

   Only plane RealSteel difference between this simple Button1 program and any most sophisticated other Windows API constructed program is:

— »more buttons and more code». Nothing else. Plain fact. There is our Real Steel: Text and Picture. Graphics.

 

EXAMPLES FROM DELPHI4 WINDOWS API DEVELOPED WINDOWS PROGRAMS — crazy fine photographic— elementary — handling

 

 

 

— In the Windows 95 era, there were also (parallel ports) options for controlling/manipulating machinery — and building (high effective signal processing) Type oscilloscopes .. and other things.

   Now we know why these personal opportunities were »taken down» by Microsoft (and others): too much work for entertaining the personal individual, less over for commerce.

   Trafficking.

— Taking advantage of Human Developing Interest — for profit:

   Selling and buying human populated Customer Ships: individuality ceases. Scientific development begins crawling backwards: against nature, not with.

   HumanRight. Not one word. Not a sound. Not a spell. Not a hint. Slavery reinstated in its most Modern form: cookies. Not one word HumanRight. Zero.

 

 

   The LID was laid on The Bucket for humanity to develop on a personal basis. Very much business potential: Utilizing humanity for Trafficking. »They took his clothes and divided them among them». HumanRight on its DOWN. Instead of sharing the progress of knowledge — cooperation and friendship — it is Trafficking humanity: locks, bars, codes, keys, permits, surveillance. Science [Principia] does not work that way — except in a fascism: »zero safe in 100 bar».

 

Stop and Restart

Stop: Run

 

   LeftClick the button — or just hit ENTER (because Button1 is already Focused)

— and the program stops, ends, terminates.

The program can also be terminated by the usual Alt+F4 — or if “it hangs” with Delphi’s

   Restart: Ctrl+ F2.

   Also sometimes when we continue writing code — having not terminated the running program

— Delphi4 informs that ”cannot compile” — as long as the program is already running:

   Terminate with Ctrl+ F2 — or shift window focus and terminate as usual with Alt+F4.

Finalize: Stop

ONLY DIFFERENCE WITH A FULL TRIMMED WINDOWS PROGRAM IS THAT

   A “halt” command would not (normally) be used in the code unless intentionally to stop the program fore some reason (often for testing purpose at critical points of code).

   MORE CODE and MORE COMPONENTS are added for the actual program function:

BeginFinished:

Freely terminate DELPHI4 on this example with a Alt+F,X — and try again with other components.

   Gain experience and programming skill through the DELPHI4 tutorials and examples (..Borland\Delphi4\Demos\) — or other references where code already is written.

   TESTING is our only way.

   Exactly like building Electronics:

— We will KNOW the moment the PowerOnButton is pushed — if we calculated everyting in order.

   TESTING is our only way. Experimental (Very) HighTech Physics.

 

SavingAproject: Finalize ¦ SaveAs

 

Fundamental Basics in DELPHI4Handle

HOW TO SAVE THE PROJECT

 

SAVING A PROJECT — can be a tricky experience at first (or later) unless familiar

IN THE SENSE OF RETRIEVING IT BACK — ORDERLY:

• Familiarize with CopyDELPHI4Projects unless already acquainted.

 

DELPHI(4) has a (strong) tendency of being able to

»openEverything» — which is good: as long as there is a PLAN behind.

 

   If saving the changes is imperative (as they normally are):

   Make sure that the AutoSaving boxes are checked:

AutoSaveON: AutoSaveOFF ¦ Finalize

 

 

 

   Save Project first time — DEPHI4 has also some text help on this issue:

 

 

 

BasicDelphi4Help; SavingAproject

— Much of the Beginners Delphi4 Help Basics is collected in the basic Delphi4 help:

 

The complete Delphi4 help file list is given in

http://www.universumshistoria.se/AAALib/DELPHI4/HTM/AD4aBegin.htm#TheHELPfileList

 

 

It is located in the help file list (DELPHI4Help as collected in this presentation) on the form

 

SavingProjectDelphi4help: BasicHelp

  The Search button leads to an INDEX tab (also in Delphi4 original help) from where the word ”save ..” responds to the different articles.

TheSEARCHtab:

 

The Search tab is only available in Deplhi4 original with the [corresponding] original winhelp32.exe 278 KB file [all the way from Windows 95]:

Here on the 2009 special Hewlett Packard Windows 7 Dual Core 64 bit version machine [it has »a special edition» of the winhelp32.exe file in] a 290 KB version — which will NOT work as a replacement of the original 278 KB exe file on later Windows 7 machines — as tested [it just shows a small dialog with info: ”9009”].

 

This 290 KB substitute winhlp32.exe file also crashes SEARCH in this Windows 7 version

— along with the entire MicrosoftHELP book system — after several search sessions:

 

 

 

 

   Suddenly, after some following SEARCH consultation — Delphi4HELP opened with F1 from within DELPHI4 — the whole search book system crashed — and then repeatedly: for every new attempt to click on the Search tab: ”Microsoft® Help has stopped working”.

   The SEARCH tab can no longer be consulted FROM WITHIN THE DELPHI4 program (»restartComputer»).

  Substitute 290 KB winhlp32.exe file tampers on Windows API?

   Apparently so (but we KNOW that THAT type of sudden conclusion MAY have tricky inside resolutions ..):

   Collecting all the DELPHI4 help files in one and the same catalog WITH the original 278 KB winhelp32.exe file, calling it from a desk top icon, selecting DELPHI4.HLP for a starter, and then further:

   No problemo. It Starts — and restarts — and re-compiles the Search library every time. While TheSearchCrashIINFO from inside Delphi4 continues to break our hearts.

— But again: only from this (latest) Windows 7 version. Same winhlp32.exe 278 KG pack exported to a later Windows 7 Version (or other computer fabricator) has excluded the third Search tab: it never shows.

   To compensate for its loss we need a word searching device: Delphi4Test20xx, as it has shown.

   Windows 10 supports it not — and neither does any other Windows machine — after Windows 95.

— This is a picture of The HOW inside the Business World — when the Thing no longer has attraction, it splits, and is soon »forgotten».

   The Business World — again — takes no care for Knowledge: »THE COSTS ARE TOO HIGH». No profit. Tell me I’m wrong.

 

Not Windows XP .. Not Windows 7 .. 8 .. 10 .. can handle the word search in the classic Windows HELP files.

 

Windows 7 File Explorer Search — Inga object matchar sökningen: ”DIN” sökning?

 

Microsoft — APPARENTLY — abandoned it — starting somewhere after Windows 95 .. No more free open knowledge in private for personal purpose. New Microsoft began killing Humanity’s potential. for Knowledge. Say it: You’re wrong.

— Result above (20Feb2022) on this (2009) Windows 7 Hewlett Packard machine. Zero Knowledge. 0 HumanRight.

   Only so far (Feb2022) two known Windows API programs can handle that expedition:

   Super Finder XT — but see TestD2 how bad it is treated by Windows 10 — and Delphi4Test20xx: the only one classic Windows API left to kill by New Microsoft.

   The public in general »feels nothing of what is going on» (The PC Magazines have long ago became Microsoft World Emperor Bitches: Must Sell is the most important: Don’t question) — as The New Microsoft keeps pushing out its own inventions to: Computer Interested Humanity; We see a denial and exclusion of all classic Windows API functioning — Any way it can be done to secure the owners own interests — as it appears by example.

   »Dangerous Knowledge».

 

 

 

 

CopyDELPHI4Project: Delphi4COPYRoutines ¦ DELPHI4Handle

 

— OK. So now I have made a final Delphi4 Windows program:

   How do I make copies of that for a continued development

— without connections to the original — as in Sharing Projects?

 

CopyingProjects: 7Apr2022

It works like the ordinary fabrication of a BookPrint:

 

It works like the ordinary fabrication of a BookPrint:

— Why do you have to repeat the header several times, all the time?

— Is that quest carried by some scientific fact? Please share.

 

   FABRIC produces the Print:

   The Print is distributed to any available amount of Copies:

   Anyone can Read the Print, but

   No one can alter — edit or change — The Factory Print:

   To do so, a New Edition — PrintA — ReNaming — has to be fabricated.

 

TheOriginal: fabricDELPHI4Project (faDiP) → ProjectCatalog/Directory/Folder:

— Create a personal editable copy as a new fabric:

  Create a NewDirectory/Catalog/Folder (P1):

   Copy faDiP to P1 — all appended faDiP files with all its subdirectories if any:

   Open the original faDiP — now in P1 — by Delphi4:

   ReName faDiP (to P1faDiP):

   ReSave (File, Save as: Delphi4Dialog) all original faDiP UnitFiles into P1faDiP:

   Delete all original faDiP files from P1faDiP.

   A new independent self sustaining Delphi4Project has now been launched.

 

— Why cannot DELPHI4 itself do all this on one single command? See SaveAll.

   Presumably (no direct explanation known here) because DELPHI(4) was not intended to be organized in such a manner:

 

DelphiQuoteBackup: WHERE WE ARE ¦ SaveAll 

 Delphi’s Project Manager mentioned in the text: Menu: View, Project Manager ¦ Ctrl+Alt+F11

That is well said [red marked]. But Delphi4Help mentions not the bottleneck: See SaveSeparateCopy.

 

— Opening The Backup Folder and running The Project file from Delphi4 there, entails this (mean) hidden feature:

The Catalog’s Unit coding files in the backup are ”dead” — to the visual exe-program running:

   The exe-Program very well DOES run from the opened Backup Folder.

   But writing code in the copied unit reflects nothing at all on THAT running exe-Program:

   Writing code and running the program TRANSFERS THE WRITTEN CODE INTO THE ORIGINAL FABRIC’S Unit

  Which is never seen UNTIL the Original Fabric is opened and the program is run from there.

 

   The Program does NOT EVEN EXIST AS SUCH from the opened Backup Folder AT AL.

   We have to develop a ProjectWatchProgram — displaying the Original Fabric Unit part — in order to prove these in plain writ statements, showing the parallels in real time code writing.

 

  It will be ”dangerous” to (even imagine) that the Unit files in the BackUp folder has ANY EDITABLE connection to

   ANY IDEA OF »the actual project»:

   Any DIRECT ASSOCIATIVE connectivity is broken.

PROOF Part 1:

We copy the (Pro1) content of Webber22 (any DelphiProject) from the Borland Projects catalog to a user catalog Pro1Copy higher up in the computer’s node tree — wherein we have a previous added FormClick process:

  We open Webber22 from the copied Pro1Copy folder, enter FormClick and ADD a writ on the OnClick event:

 

halt;

 

A halt command terminates a Delphi program — same as Alt+F4.

 

Then we run F9 (”and the project will compile”) Webber22 in Delphi4 from the copied Pro1Copy folder and click on Form1.

   Result:

  Not a sign of life. No reaction. Why?

   Because the compiling of the added halt part in the copied Pro1Copy folder has no DIRECT PRESENT VISUAL editing project connection;

 

— The added halt part is INSTEAD incorporated — hidden — into the original Fabric Domain — while the actual TestRunF9 answers to the BackUp folder’s copied — not compiling — exe-file.

   That IS (mildly spoken) confusing — IF intentions are to »Connect Associations».

   Very frustrating experience.

   Further clarifying examples with mor clear tests will follow.

 

But as apparently the Delphi4 Help aims at nothing else than a compiling access to a copy of an original project, the proof aspect partly falls outside the Delphi Help text scope:

— The Delphi(4) intention is NOT to Project FROM the BackUp. But to have the BackUp ready If the original is lost.

— On the other hand: In CopyingProjects we MUST know these details — if not ending up in a really bad Delphi4 code trap — when CopyingProjects.

 

 

— DELPHI4 has (namely advanced) capabilities in producing

   ”Project Groups”.

   So:

   Avoid all these (•) nine alternatives (With Kingdom Power Strength)

 

 

EXAMPLIFIED ACTUAL PENDING SINGLE PROJECT’S NAME: Web22

 

 

See WindowsDelphiHELP: For some it seems important to kill those previous species

   that does not supply the present most popular type of socio-mental inducement: New Microsoft Enterprise Corporation. Very HighIQ. MustBuyBook.

— Are you telling me it is impossible to create a technology on which humanity can read and study previous past archive content details as fabricated?

Please do share. New Microsoft features such a shameful appearance and attitude, it is associated on parallels to fascistic inducements; »joy to rule».

   See also Quote on the HLP-file issue in TrishTechComRef.

 

 

if full knowledge of what is going on is NOT on the menu,

 

— type 34 persons trying to produce one single end product, without descending to civil war ..

(The Classic Enterprise Model: »Profiting on Slave Trade» ..)

— spanning over several (many) directories, (And) assuming that all appending files type text files and bitmap files and other have subdirectories on their own — not explicitly in the project’s own root catalog.

 

In this — UniverseHistory — organizing manner ONLY discrete copies are made from reached results

   in STEPS:

(The Fabric allows Humanity to Share the intermediate Results ..)

— We do not develop ”everything everywhere”. But try to delimit development to domains of type »CaseClosed» — whether really so or not. Then we continue from there — on a new project having its former result (parent) as a foundation. By this way, the risk of ”contamination” from ”crappy associations” will have a very small representation, if at all — on the most developed end product. (Joy all the way ..).

 

So: (CopyingProjects) We need to make BeginNew-copies from FinalizedOldies, from time to time. DELPHI4 was not intended for such inducement, as it is apprehended here: There is no Delphi(4) command, type ”MakeNewOfOld” — although Nature is built on that type of performance: no exceptions. Not one. Have your say.

 

 

 

 

Delphi4COPYRoutines: 12Apr2022 ¦

DelphiQuoteBackup ¦ DELPHI4Handle ¦ COMB ¦ ReMa ¦ OriginalFactory ¦ CopyDELPHI4Project ¦ SavingAproject ¦ SaveALL ¦ SaveAs ¦ SaveSeparateCopy ¦ WHEREareWE ¦ ProjectStructure

 

Delphi4 COPY Routines — Testing Examples

 ADDITIONAL DELPHI4 HELP INFO

 

 

Exemplified TEST CONDITIONS (fully tested 12Apr2022)

 

 

Given an Original Fabric (Project1) in Catalog/Directory P1:

 

Copy/Move with FileExplorer has no affection or connection to Delphi4. We can freely move/copy project catalogs and/or their content without hazard on their Delphi4 coding and connectvity — as long as we avoid opening any of these in Delphi4: IF we open, Delphi establishes a local path reference locking further previoulsly free Delphi code independent moving/copying. This example (trivial at first) illustrates.

 

Genuine Project Copy:

   Select all P1 project catalog content and copy it to P6.

   Provided P6 stays unchanged — do not open the project, neither from P6 nor from Delphi — this Original Fabric BECOMES guaranteed GENUINE in to the last atom

   (Test) by removing all P1 project catalog content — as if »it crashed»: all gone, not one atom left — then copyBack its untouched — don’t even think of a slightest possibility — content from P6

— and Project1 in P1 now opens and works exactly as was from the point it was originally copied to P6.

 

Same route — but now with a Delphi opening in-between:

 

Compromised Project Copy:

   Select all P1 project catalog content and copy it to P5 and P6.

   Test by removing all P1 project catalog content — as if »it crashed»: all gone, not one atom left — then copyBack to P1 the Touched — Open Project1 directly from FileExplorer P5, or (Open Project, Ctrl+F11 from Delphi4) in P5, Project1.dpr, from Delphi4 — content from the previous recently project opened P5:

   Project1 now re-opened in P1 opens — and works as A PARTIAL COPY OF Project1 in P5.

   Extended Delphi proceedings must be accomplished if the original Project1 in P1 shall show up AsWas:

1.   Save Project As (Menu: File, Save ..) — same name but now in the P1 catalog:

2.   Save As — re-saving back the unit files: Open all Unit file tabs, then have each of them opened, then activate a Save as: Delphi opens a dialog with the unit file selected:

3.  Press Save (Enter) [and a following Yes, if demanded] — and do so for each of the unit files.

   That finalizes the restoration of the P1 Project 1 original — provided nothing new was written — the unit files — from the P5 opening occasion (with an empty P1).

 

 

Delphi(4) — on each new first opened project — stores the original full path project in some of its project files. Some of these are fully or partly encrypted. The files with extensions .pas, .dof and .dsk are regular text files: Project.dsk can be opened and inspected (in NotePad or WordPad). And we see it contains a full path directory string certifying the original location of the project file catalog on this computer — and some computer model info.

 

Delphi4 does not SPY on where we put its project copies — but reacts immediately if a Delphi project file is opened — which can be done ONLY from Delphi.

 

   That is why it is imperative NOT to open — not from Delphi4, not from P6 — the copied genuine P6 Project1 if the aim is to have a genuine copy of the original project

— but we can read the content though of its project files.

   IF — with an emptied P1 — we open the copied genuine P6 Project1 — from Delphi4, or directly from P6 — Delphi senses a new location and inserts that in the project — exactly as in the P5 example above;

   And then the status of a full original fabric copy at the time of the original copy is lost.

   It can — with some extra effort — be retrieved though as through steps 1-3 above.

Genuine New Original Fabric from Original Parent:

Exactly as in the above example with P1 to P5

   EITHER directly from Delphi4 — Save project As (Ctrl+F11), selecting the new Catalog, and a new Project Name, same dialog, and then re-saving all the unit files as advised above in the 1-3 steps

   OR with a direct File Explorer copy of the P1 content to a new location (P5) — with addition:

0.   Open Project in P5.

1.   Save Project As (Menu: File, Save ..) in a new name — Original Project1-files remain, plus ditto on the new project name — these duplicate files have the 7 file extensions

 

.~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .exe ¦ .res

 

The duplicates with the original project name have no meaning with the new project name: the duplicates can be deleted (directly from File Explorer) — or left as put (»with advanced Inner functionality»).

2.   Exactly as above from point 2.

   That finalizes the making of a new self sustained parent independent Original Fabric:

— in general (here) INTENDED AS a proceeding sequence on a number of »family projects», each building on a parent original, independent from the parent as a new independent individual original fabric:

   »evolution of projects with safe archive references»:

 

 

Artist’s view of Evolution.  All DELPHI4 creations.

 

BOTTOM LINE (as experienced)

— Do NOT throw away original NOTES — »because NEW ones appear under different conditions»

   Unless »it is obvious at the present» that these »have no value».

— Could be painful in the future when need be to re-analyze details of the past.

   The »general rule», AS EXPERIENCED, for »best performance»:

— WAIT — let time pass — to throw Notes, until TIME (association) proves the »recursed visits» never happened:

— We get credit for trying (we are guests in Life, not emperors over IT).

 

 

 

ProjectStructure: Delphi4AttractsDevelopment: Saving

 

 PROJECT STRUCTURE

DEVELOPING DELPHI4 WINDOWS PROGRAM PROJECTS

 Developing projects in DELPHI4 — Exit/Close a Delphi4 session with Alt+F,X (Menu: File, Exit).

  Try as much as possible to open projects — not directly from the Delphi.exe file icon in a project’s catalog — but directly from Delphi’s own directory Ctrl+F11 dialog.

— It namely happens — when we change directories, rename them, move and copy project files, that

   EITHER it is »Delphi does not catch» — IF opening from File Explorer,

   OR »such mean unintended changes» has been made THAT a (small) error has sneaked in — forcing us to start searching for »a flawless update»:

   Of course the project must open without error dialogs also from File Explorer. If not, something is missing.

 

 

   Delphi4 has a strong tendency of attracting multiple project developments

ExperiencedRecommendation :

   DELPHI4 has also advanced capabilities in saving different project parts in different folders — when attempting to Save in a different folder than the actual project’s.

   THAT might — indeed — produce »Project Identification Problems», even to an experienced Delphi4 programmer.

 

Saving, re-saving and copying projects in Delphi4

 

This is the experienced and well tested (exemplified) way how to — safely — eliminate ALL potential negative DELPHI4 experienced bottlenecks in the art of saving and copying a Delphi4 project:

 

Starting new from a first Delphi4 project

1.   Define/make/create a unique (P1) Folder/catalog/directory for a (very first) new project

before even starting up DELPHI4.

   Placing/making P1 as a subdirectory in Borland’s own (Project) directory will do fine for this purpose:

 

ProjectCatalogs: Delphi4Attracts

 

— When Delphi4 begins prompting dialogs for a Save, The P1 catalog/Folder should show up as one of the most  near for making selections among — so it will be easy to find.

2.   Save all and everything in that (P1) directory on the first (or a new) project.

   Do not bother on the naming — it will be (relatively) easy to (re) name both the project — and another project catalog/folder with some more meaningful — for copies or further (archive) developments PROVIDED it is done so, as tested by experience;

 

 

Say (namely) this: Our first (P1) project will (no doubt) serve as a reference project: We (soon) discover the possibility of using parts of P1 for further/other project development — without tampering on/being registered by THOSE original parts

— or the present In Use having references TO these — OTHER than our own notes:

   establishing sequestered independent individual species, so to speak.

   IF We need to preserve these on their rightfully earned archive crowning dignity, these will also »become Gold» for all other coming projects.

 

 

How do we realize that?

 

Creating New Independent Projects from a pending

3.   Turn Delphi4 off after having made the basic coding and Saving in P1 — eliminating all possible tempting sophisticated Delphi Save options (these are vast — and can kill any enthusiast unless familiar).

— When becoming more familiar, this step is not necessary.

 

 

Note the Delphi4 AutoSave Options (Tools, Environment Options, Preferences; AutoSave Options; Editor files, Desktop):

   Having these checked, Delphi4 automatically saves/updates any last changes made in the pending project (Units and Forms) when compiling/running (Ctrl+F9 or directly Run F9).

 

4.   Make a new Catalog/Directory/Folder — apart from P1: say ResP1;

5.   Copy all the files in P1 to ResP1.

 

 

We can copy the content of P1 to as as many ResP1¦2¦3.. as we want. But Delphi(4) has several different ways in reacting on how these Res-copies take a Project STATUS:

 

Genuine Original Fabric Copies:

DO UNDER NO CIRCUMSTANCES OPEN DELPHI ON A RES-COPY

   Provided so attained, a direct wipe out of the project files in the original P1-catalog can be directly 100% repaired and re-inserted AsWas from the Res catalog. Delphi then continues »undisturbed» from its original P1-location.

   If not:

 

Compromised (»Hi-Jacked») Original Fabric Copy

— Delphi4 always stores the full directory path (and some computer model data) in a new at first opened project — writing over the previous one. MEANING:

   The status of The Original Fabric Copy is lost. IF opened, no matter from where, IT responds no longer as an Original Fabric from its original location, but from its copied. And several additional maneuvers are needed to restore a genuine fair picture of the original, if so needed

— see Delphi4COPYRoutines, Compromised Project Copy.

 

Creating a New Independent Original Fabric from its previous original Parent

FROM THIS COMPUTER COMA

   A deliberate copy of the original fabric intended as a new independent sustained start Original Fabric needs anyway some form of a first copy: either directly from Delphi and its directory save dialog. Or (more directly) more freely from File Explorer into a corresponding separate Res-catalog.

   In any of these ways, additional Delphi dialog exercises are necessary to finalize the mission

— see Delphi4COPYRoutines, Genuine New Original Fabric from Original Parent.

FROM THIS COMPUTER COMA EXPORTED TO ANOTHER COMPUTER COMB

   No Problemo. Just export the copy, and start directly as new on COMB: same project name, other site.

— Delphi’s project model notifications only apply to the computer where the project was launched or last opened.

— Delphi4 has no internal registering feature preventing sharing between computers (or directories or drives).

   There is neither any such feature in this DELPHI4 production of Windows API Windows programs.

   IF such features exist, they must be accounted for openly, making it possible for the user to decline and disclaim

— or if not: the program attacks HumanRight: it should be deleted, and banned.

 

 

6.   Open Delphi4 — (Ctrl+F11) on the actual catalog ResP¦n’s Delphi-icon dpr-file

 

IfInDoubtWHERE:

Open Project: Ctrl+F11 ¦ Menu: File, Open Project

 

 

If confused or in doubt: Use FileExplorer besides Delphi to observe and certify that the actual catalog and project are the ones actually opened in Delphi — because Delphi[4] itself does NOT directly display full PENDING path project names

— only this type [mildly confusing on alike projects]:

 

 

It apparently  means in general that

   Delphi4 was developed for advanced Fast Memory Training.

   Thank you very much — it is highly appreciated: so that we can stay sharp.

 

 

7.   RENAME (Alt+F, Save Projects As) the original P1

 

 

Save Project As — RENAME: Menu: File, Save Project As .. (Alt+F,E)

 

 

 

Se further all the details (again) in Delphi4COPYRoutines.

 

 

8.   CONTINUE the project’s development on this basis — collecting a growing archive of Classic Windows API Programming Examples: use every available source.

 

 

Delphi4Help itself describes all (help available) Save Project details in the DELPHI.HLP file:

 

DELPHI4 Help on Saving projects:

 

ProjectManager:

Delphi4 help mentions a ”Program Manager”:

 

 

   Ctrl+Alt+F11 (Menu: View, Project Manager) always views a specific unit list of an open project.

   Archive, Open (left above) gives direct access to further opening of Delphi4 help files.  

— See Delphi4 HELP file BOOK SYSTEM.

 

 

The Project Catalog as such

In this production (UniverseHistory) each developed Windows API program is preserved in its total original PROJECT form:

   all additional images used, additional separate catalogs with eventual complementary content, such as a particular HelpFile for the actual program (basic htm or txt manual) — are included.

   DELPHI4 in itself was/is (apparently) aimed for a much more condensed and comprised end product of a project:

   the actual exe-file only (with some dll-file accessories — hence: never used in UniverseHistory).

   DLL: Dynamic Link Library — holds specific program routines in a separate file.

   Here in this production — aiming at leaving all sources 100% open — especially on purpose of using them as references for new projects/catalogs for further —  the term ”Windows program”

   contains the complete DELPHI4 original project catalog’s all files and eventual subdirectories.

   Then, IF there is any need to use any of these, it will be easy to implement (copy) new directories for further development — to any desired location under any different namings, whatever serves the purpose.

   See details from Project Structure.

 

 

Delphi4 works on projects in any (available) place in the computer’s available directory complex. Where is not important to Delphi4.

   Besides: Outside the Program Files (x86) directory, we can (even in Windows 10 ¦ 12Apr2022) make changes (more) freely without dealing with the Windows User Account — MeSLAVE User Account issue (dimming the entire screen and waiting for a special access command).

 

SaveAs: ProjectCatalogs ¦ SavingAProject ¦ CopyDELPHI4Projects

 

 

Information on Save All not found in this Delphi Help .. Wait .. OhYes .. I found it:

SaveALL: SaveAs

   A final Search with Delphi4Test20xx however gave a response in  : — Seems that all LINKED PHRASES — several words — can be search for in the Classic Windows New Microsoft Forbidden and Excluded Help System with Delphi4Test20xx [and the alternative free version of Super Finder XT]: Windows own search machine — after Windows 95 — has no such feature. See Windows 10 example in WindowsHELP.

 

 

   Does this procedure apply in saving OriginalFabric Unit files to a new ProgramNameLocation — making a new isolated Fabric?

— No — as tested:  . The Save All alternative is dimmed.

   See collected Illustration — and method — in WHERE ARE WE.

SaveSeparateCopy:

SaveAll

BELOW: the decisive information in Delphi4 on Project Handling — Copying:

   Delphi Help — Index: ¦ saving projects ¦ Saving Projects ¦ See Also → Saving a Separate Version of the Project: ¦ CopyDELPHI4Projects ¦ Delphi4Handle 

 

    ProjectManager

SavingDialogs:

IMPORTANT — imperative — to know especially if Project Handling is on the Menu

THE DELPHI4 SAVING DIALOGS

 

SAVING AN INDIVIDUAL UNIT

— is made most simple with Ctrl+S when having the actual Unit opened.

OTHER:

   On the tools menu, select File: Save as ..

 

 

Unless Delphi4 itself make prompts (beginner’s first opened project), we can always open a SaveUnitDialog for saving a unit to any place using the Delphi4 Save As dialog on Menu: File, Save As ..

   Select (Pro1 — or other by browsing Delphi’s directory tree box)

 

 

 

Be careful in Delphi’s Save Dialog: Catalog/Directories [often a The Project¦s] have similar/identical names at different locations. If in doubt — see IfInDoubtWHERE.

   Delphi4 itself — whereas same project names with same directory names in different locations is viewed identical by Delphi in its program header, and Delphi’s own directory tree box is NOT updated on an actually opened site IF SO OPENED FROM FILE EXPLORER to mention, just the last Delphi opened Dialog Box used — does not UNCONDITIONALLY display the pending project’s directory path.

 

 

   and then Save (Delphi prompts a first project launch to be saved).

— Attempting to Finish DELPHI4 at ANY FULL already PROJECT SAVED stage, results in this dialog:

 

 

Delphi4 prompts us to save The Project — if changed ..

 

“Save changes to project Project1?”

— implied together with the recently saved (New project’s first) Unit1 in the Pro1 catalog:

 

Unit1file: SaveAs

The Unit1.pas file is the (first) text file where all the written and composed program code resides. Personal remarks are allowed — Delphi4 skips these at compilation, caring only for the raw code. As programmers we (deeply) depend on notes, explanations and other:

 

How Delphi4 treats allowed comments (cursive/italic in dark blue):

{here we can write personal matters, or suspend or inhibit code parts ..} 

//and also here ..

(*and also inside here ..*)

 

 

   In BasicDelphi4Help (INDEX search: Delphi help) we find the explaining articles on allowing personal writ character conventions in ”comments”.

— These comments are automatically made dark blue Cursive (italic) by Delphi4.

 

  Press Yes.

AFTER THAT:

— A second dialog opens in this Delphi beginner’s first opened project with automated Delphi prompts:

“Save Project1 As” FileName “Project1.dpr” — the actual Delphi Program file (.DPR):

 

 

   Press Save.

— NOW FIRST the entire DELPHI4 was finished and was turned off.

   SaveChanges dialog always appears [AutoSave options checked] when we have made ANY change in The Project, code or whatever

— not finishing with a final Run F9 or Compile Ctrl+F9

— and we attempt to finish Delphi4 by Alt+F,X: ”Save .. ?”.

 

 

All the above (demanding) details only pertain to a first save on a new project. After that:

— StartDelphi4, write code, compile, run .. and analyze ..

— and finish with Alt+F,X. The rest is taken care of by Delphi4.

SeeChange: Unit1FILE

 

SEE THE CHANGES

 

   Look in the File Explorer’s Catalog/directory Pro1:

— DELPHI4 has now created 8 first files making up the basic of the project:

 

   6 Project files with file extensions

.~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .res

   2 Unit1 files with file extensions

.dfm ¦ .pas

 

 

Unit1.pas is our central interest — and all other following .pas files:

   all the code we write resides in Unit.pas files. These are all simple text files:

   code, plus our own remarks and notes. These can be read and inspected separately in NoteBook: Open with — or copy to.

— On Delphi4 Compilation (Ctrl+F9) and program Run (F9), our text notations are skipped and only the raw code is compiled into an actual exe-file.

 

 

Our NoteBook DeskTopIcon

 

 

THE Unit1.pas FILE IS THE ACTUAL (first) CODE FILE OF THE PROJECT. DELPHI4 gives it the default named Unit1 with following others Unit2  Unit3 etc. — but these can be given other names:

   preferentially from their first creation moment — I personally prefer the Delphi4 default UnitN name convention — simple number convention with the least of changes gives most reference power .. with few exceptions .. (Unit1A ..)

OurProjectCatalogDirectory: SeeChange

 

HOW THE PROJECT CATALOG DEVELOPS WITH ADDITIONAL FILES

 

   4 more files will be added (B) automatically

Unit.~df ¦ Unit.~pa ¦ Unit.dcu ¦ Project1.exe ¦

by DELPHI4 (after a first close) (from next time) the project is opened and run — completing the Project1 program computing frame:

 

 

 

How Delphi4 automates the complete file system in a project — serving the actual exe-file only:

——————————————————————————————————————

A — After a first project SaveSession in Delphi4.

B — After first project start — after A — Delphi4 has added the actual exe-file plus 3 other:

— Unit1             .~df  .~pa  .dcu

After renaming the project in the same catalog

C — After a Save Projects AS — project renamed for specific purposes — when we MANUALLY because Delphi4 does not care about these anymore have removed the old Project1 files — which we no longer will have any sort or kind of interest in ..

D — The 7 actual ProjectNamed Files of concern that remains

 

.~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .exe ¦ .res ¦

 

— IF we [also] want to make further renaming: being careful enough to remove the right issues from our agenda [otherwise we’re smoked by Delphi4].

 

 

   The program can now be run directly from clicking the exe-file.

   Close it with Alt+F4 — or the ClickButton1 code (original first test: halt;) programmed function in our first code testing example: Halt.

 

Continuing:

CONTINUING

 

For any further progress and tests:

 

 

 

 

   Before becoming more acquainted:

   Make sure that the checkbox on the Tools menu Debugger Options, General

   Integrated debugging is checked:

 

— Errors we make — from where our experience will grow when we know how to handle them — are the fundamental base in all education. DELPHI4 has advanced debugging info on such occasions, guiding us (at best) to fix all kinds of eventual problems — provided access to the extensive DEPLHI4 Help.

 

   Turn the debugger check box off only when more experienced

— sometimes program checking becomes easier without »disturbing interruptions».

 

 

What limitation has Delphi4 in Windows API programming?

— What we know: none.

 

What are the limitations?

   None — except our own imagination: anything that can be made with pen and paper — on a computerized foundation: math especially (type: high speed effective numerical integrals solutions).

   Delphi4 Windows API programs are (2000+) more than anything: fast. Very. BUT so:

♦ completely corrupted in: Windows 10 — the »WindowsKiller».

   not seldom reduced in speed by a factor 10, as tested — not to say 110.

 

Windows 7 Machinery excerpt:

 

 

 

— You mean we can’t do such things in Windows 10?

— Absolutely. Yes. Very friendly and attractive place to be stimulated — on personal work. Very fast, and so .. gone with the wind. MustBuyBook. Zero mentioning of HumanRight. No hlp archive HELP word search.

— Yes. But the result compared with a Windows 7 machine is like comparing walk race with Formula 1.

— Windows 10: — »New Windows 95». New Microsoft 2015+ Enterprise Corporation. MustBuyBook.

 

TApplication.Icon: TheWicon ¦ ProjectDirectory

 

Selecting a personal Project Icon (IconSHOW):

 

   Copy any available ICON into the project (best and safest reference container) — or as below, browseUp the ICON directory (or create one by collecting available icons from Internet):

   Select  (Browse/Open/Load) Icon and press OK.

— That Icon will now show up LeftTop on the Project’s application window.

 

 

In this example we have added a few icons — black-chess and CS2-Premium — into our project catalog, making it easier (and faster) to test different icons with some best visual properties:

 

 

We adopted the CS2 icon — View in live:

— After a first OK and then (RunProject) F9 the actually selected icon shows LeftTop on our program window.

 

 

Another way to load a program window icon is on run time:

 

   S:= ExtractFilePath(Application.ExeName);

   T:= S + 'ICON\Icon1.ico';

   {ShowTheActualIcon:}

   if FileExists(T) then

   begin

   Application.Icon.LoadFromFile(T);

 

Assuming that there is an ico-file in the program’s subdirectory ICON with name Icon1.ico, Delphi4 loads that icon from the string (S, T) into the program’s window left top on the application command.

— See further code examples in IconSHOW.

 

 

Other following parts in this DELPHI4 beginners manual in UH Jan2022+:

————————————————————————————————————————————————

Project TITLE ¦ Window Header ¦ Program TITLE ¦ DialogsShort ¦

Delphi4MarginMarkings ¦ BookMarks ¦ Indents ¦ FromHereAndFurther ¦ MoreBeginnersCodeEX ¦ BasicButtonTextOut ¦ MultipleProgramWindows ¦

————————————————————————————————————————————————

We continue to fill the Exemplified Test2022Feb program with some further DELPHI4 explaining details.

— See further from ProjectTitle.

 

 

 

WHERE ARE WE: SaveAs

WHERE on our computer ARE WE — writing code in Delphi4?

   DELPHI4 HAS NO DIRECT DISPLAY ON THAT ONE

 

IT IS LIKE The NEW VOLVO GPS MAP:

— No way we can get a VIEW of our actual COUNTRY with a Blinking DOT showing where the F Word we ARE.

— We have to go outside the Car and ask the Population — if found at all.

   Very High Educated Volvo Engineers — educating the Driver how to keep Panel Contact WHILE driving, Listening to Volvo Warning Sounds — having found the Coordinates of Truth, guaranteeing Engineer Is A Flawless Master Over Driver. Jepp. MustBuyBook. Extremely HighIQ. Absolutely No Exceptions.

— We wonder HOW these computer aces even find their way to the parking. Come again:

— WHEN VolvoDriver finally steps out of his New Volvo car, shuts the door and stands with his feet on Earth: what is left in the universe of that Human Being? UtellMe. A VolvoPuppet. Pling. eLP:

— WHERE are my wheels? Zero socio-mental responsibility: tampering on the Human Mind: for profit.

— Because: intelligent it is NOT — for an already sober and awake Driver with 100% focus on Drive.

   No Panel Spotting — except on The Parking. Just Drive. Volvo had that — once upon a time.

   100% focus.

 

 

 

 

Delphi4 has a Reopen feature on its File menu:

    But the Delphi4 directory dialog box does not update on (such) a reopening, giving us the safe acknowledge WHERE we DID open. Neither so from opening on a Delphi4 dpr file from File Explorer (if Delphi4 opens at all from there — sometimes an opening error message appears, and Delphi instead opens on the last opened project).

   Delphi4 program window header never informs of the directory path of the opened project:

   we must open complementary windows/boxes to lure out the exact of that acknowledgment.

   We should have such a project path in direct view during the Delphi4 program coding and testing.

— There are other more important thing on the menu than searching for The Lost Origin ..

   The situation even worsens if we open a COPY, and »opens its unit files» .. Compare TestingExample.

 

 

Delphi4 — seems bad on showing WHERE we are on the Computer.

Delphi4’s Directory dialog is NOT updated when and if Delphi4 is started from a dpr-file from File Explorer — if opening at all from there.

   IT DOES — IF the project program has been opened from Delphi the first project opening time (after an import or some renaming or catalog moving changes), and then consecutively from File Explorer’s Delphi dpr file.

 

 

Artist’s view of Evolution. THAT is guaranteed HighIQ.

— It seems — apparently, but not explicitly found on quote — that Delphi programming from the start was intended for WORKING GROUPS — with Delphi’s capability of Project Groups. That is a different approach from constructing individual ARCHIVE copies — from where further development is reached. All Windows API productions.

 

Compare downloading a Delphi(4) project from a Zip-file:

  IT has absolutely no connectivity to its origin (because now hosted on a computer with no connections to the original source) OTHER than as

  a completely new Free isolated Private New Original Fabric:

   A new Do Whatever You Want With IT DELPHI project.

   All original bonds are broken.

   No surveillance — zero fascistic inducements: zero Human Trafficking. Freedom 100%. No slavery.

— See also CreatingOriginalFabricFROMCopy and a SimpleTestingTutorial.

 

Final Question:

— Does Delphi4 »sense Originals» over different Drive units on the same computer?

— Yes. Tested so (9Apr2022) on a separate HD drive.

 

 

 

 

SimpleTestingTutorial: Apr2022 — WHERE WE ARE ¦ TimerWatchGuard ¦ DelphiQuoteBackup ¦ SaveSeparateCopy ¦ ProofResult

TheBasicCopyTest ¦ TheMemo1Proof ¦ TheMproof ¦ ProofResult ¦ TwoComputersTEST ¦ CreatingOriginalFabricFROMCopy ¦ ProofResult ¦ ProofResult ¦

 

DELPHI STORES a project’s ORIGINAL FIRST OPENED PATH — FOR BACKUP AND COPY PURPOSES. But ..

Implications — from already well acquainted

— A Manual’s worst nightmare

 

After a round 25 years of using Delphi4 — in this author’s reference, and in ways never pertaining to this actual test — something extraordinary was discovered — as yet with no direct mentioning in the (otherwise vast) Delphi4 Help Book System:

 

The only found hinting help connection is mentioned in Delphi’s

SaveSeparateCopy

”.. you can run into problems later ..”.

 

Opening a File Explorer manually copied copy of a Delphi4 Original Fabric project from Delphi4 (Open Project ¦ Ctrl+F11; Menu: File Open Project) — on the implication of being »AUTHORIZED AND ENTITLED IN» writing new code in the copy’s Unit1.pas file, then running (F9) the program to test and see the change — this happens:

 

  Not the slightest spot of a life sign. Nothing happens

    ON THE SPOTTED SITE — but very well in the hidden Original Fabric — not obvious until opened.

 

Is that a BUG in Delphi4?

— I would say: NO. Definitely not. But a true detailed explanation is missing:

   it IS logic, but needs clarification. See some starting points from COMB.

 

Over and over again it was tested. Same result — until we found a way to TRAP and CATCH »the villain»:

   The Timer Watch Project Assistant.

   What we write in code — of an opened copy — in a Unit-pas-file of a last Delphi4 compiled project’s Original Delphi4 Fabric has

 

   absolutely no connection at all between writ and THAT visually run program window we see from Running (F9) the project at site.

 

   The code we write in the copy’s Unit-pas-file is — however, and completely beyond the beginners awareness, unless we have missed some vital Delphi4 Help Explaining part

   transfers to: the Original Fabric.

   THAT IS OBVIOUSLY HAZARDOUS to the beginner, unaware of the trap (causing a possible crash — later on, surprised when suddenly Delphi4-opening the original for further development).

 

— We COULD say — as a Delphi4 defending argument — THAT, really, the Header of the copy’s Unit-pas-file DO display the Original Fabric directory path. NOT the copy’s. And as such ”telling the user” that

   »what is actually written is NOT in the writing place». (The Delphi constructors were psychic .. way over our present pay-grade ..).

— But THAT would also be »a hell of a way» to put it:

   The Computer’s directory tree node system is mildly spoken vast. And none of us, as know here, has any the slightest idea of where — after TIME — a document, file, project or other is DISTRIBUTED — only by consulting ones own memory. That is excluded. We need at least a complete DirectoryFileList to search in for such a mission ( .. I think it was in some of the ICON directories .. ).

TheBasicCopyTest:

What does it mean? Don’t make changes in a Delphi4 project’s Copy’s appended project files (whole catalog File Explorer copied). That Copy has only a perfect meaning as an ordinary BackUp.

 

This is the accounted proving test results.

 

 

The TimerWatchGuard program which helped resolve and prove the issue.

 

 

THIS compilation IS

Proving that writing code from Delphi(4) in opening a COPY of an The Original Fabric Project

   has absolutely no connectivity to the original — at the spotting Delphi4 F9 exe-program running moment — on the Delphi4 opened copy.

   BUT THAT — a NO direct response between visually running project program and written Delphi code —

   was exactly what the beginner implied NOT was the case from a Delphi Start.

— »I wanted to continue NEW from a copy of the Old ..», the beginner (loudly) exclaimed ..

TheMemo1Proof:

A Simple Delphi4 Testing Tutorial

— We take it from a Delphi4 Start Scratch

 

   New Delphi4 Project from Scratch — Delphi’s own Standard New ”Project 1” Default .

   We introduce two new project file directories/folders

   P1 and P2 where

   Delphi’s Default project 1 is directed for saving in P1:

   AutoSave is on: Menu ¦ Environment Options, Autosave options

— so we will be prompted directly by Delphi4 to make an initial SAVE on trying to RUN (F9).

   We adjust proper sizes (Alt+Space, select Size, Arrows, Enter) of the component Form1 and Unit1.pas code Windows:

 

DELPHI’S own default — after proper resizing.

 

 

 

From this situation we press on

   Key F9:

 

 

 

 

 

BEFORE the program starts running, Delphi4 will prompt us (AutoSaveON) to save. In following those prompts, the above becomes the result:

   Have the project’s File Explorer directory open (above right) to see how Delphi4 adds the new project files when pressing the Save button (or Enter key).

   The Delphi4 project program now runs and exposes the blank Form1 Window.

 

Alt+F4 halts the program. And we make a Form1 adoption size to minimize the presenting space, type

 

 

 

 

In the Delphi4 Object Inspector (F11, Alt+TAB, Events) we select OnClick:

   Ctrl+Enter causes Delphi4 to add a FormClick stub procedure on which we will proceed with a simple first testing ”halt:” command between begin and end.

 

 

 

 

Do test this halt-command by running (F9) and terminating (Alt+F4) the program in alternatively allowing the halt-command (halt;) and inhibiting it with two additional front slashes (//halt;)

   Just to prove that Delphi4 — and the program — works and behaves correct.

 

Next:

— We add some more meaningful displaying program result by this following Delphi Pascal code:

 

 

procedure TForm1.FormClick(Sender: TObject);

begin

   //halt;

   with Form1.Canvas do

   begin

    Brush.Color:= clBtnFace;

    TextOut(

    5,5,

    ExtractFilePath(Application.ExeName)

    +

    ExtractFileName(Application.ExeName)   

    )

   end;{endWithForm1}

end;{endFormClick}

 

 

 

Running (F9) the program with a MouseLeftClick on Form1 exposes the project program’s full directory path — never a doubt where we are on/in our computer.

TheMproof:

TheProof — THE COPY: the plot thickens ..

 

Next: We File-Explorer-copy — just the files (Ctrl+A, C) — this Original Fabric project files to our  P2P1 location,

 

 

Next; We Delphi4 (Ctrl+F11 ¦ Menu: File, Open Project) open That P1-to-P2-Copied Project1 in Delphi4, where we

   remove the previous inhibiting back slashes in front of the leading ”halt;” command.

 

 

We SEE the Unit1 header .. BUT WE HAVE NO DIRECT INFORMATION OTHER THAN OUR OWN IMPLICATION ..

.. telling us that we are working in a code sensitive Delphi4 project environment ..

 

 

 

ThePROOF

Logically — and normally — we would THINK that — naturally, of course — Our Program clear as the sun on a bright blue sky — WILL halt when we make the MouseLeftClick on Form1. Absolutely no doubt. It would be ridiculous to even THINK anything else;

 

 

In THEORY — in our dreams ..

.. program terminates on click ..

 

 

So — confident and full of self trust, with a slight small onset of a tiny smile on our lips — We run (F9) and Make The Click:

 

 

 

 

Absolutely no halt reaction. No halt response. Dead meat.

— What the ..

 

 

The Original Fabric at P1 when we left it had

 

 

procedure TForm1.FormClick(Sender: TObject);

begin

   //halt;

   with Form1.Canvas do

   begin

..

 

The COPY of Original Fabric at P2 with our Confident recent change However had

 

procedure TForm1.FormClick(Sender: TObject);

begin

   halt;

   with Form1.Canvas do

   begin

..

 

In THEORY — in our dreams ..

.. program terminates on click ..

 

 

Halt. Terminate. Stop. End. Finish. Don’t. We wrote that.

   It didn’t.

 

Going back to P1, opening (the text file) Uni1.pas we — to our unfeigned surprise — find:

 

procedure TForm1.FormClick(Sender: TObject);

begin

   halt;

   with Form1.Canvas do

   begin

..

 

— It has apparently changed. It is what we wrote in The Copy:

  The Copy’s recently Uni1.pas writ.

— How the he.. did that one come?

 

 

We SEE the Unit1 header .. BUT WE HAVE NO DIRECT INFORMATION OTHER THAN OUR OWN IMPLICATION ..

.. telling us that we are working in a code sensitive Delphi4 project environment ..

 

The Delphi4 Opened P2 COPY of the Original Fabric.

— How the hell would we be supposed to .. P1?

 

 

Answer (chocking, as it may seem to the surprised unfamiliar beginner):

 

The Writ in the Copy we made — from a Delphi4 opening of the project’s copy (P2) — is NOT a writ in the copy. It is TRANSFERED or »SMUGGLED» — out of our sight, with absolutely no sign of an Acknowledge — to the Original Fabric »on a subversive foundation».

— What about the Copy’s writ then, what is That? Apparently JUST A sophisticated compromised WRIT IN A DEAD TEXT FILE — with apparent capabilities of »communicating with the already dead».

 

ProofResult:

— Why would Delphi4 even ALLOW such a hidden act — »blind code writing»?

   The answer to that question is not known here.

   How would we have solved the issue with present knowledge?

   With a Dialog referring to an explaining help section:

 

 

— The Copy’s Unit files are NOT intended for writing code.

The Copy is intended only as a code-safe BackUp — or a such potentially new Fabric if handled properly. See COMB ¦ ReMa.

WITH ADDITIONS. IF THERE WAS SOMETHING WE MISSED.

 

 

THAT »subversive activity» WAS A NEW ONE EXPERIENCE IN DELPHI 4

— discovered after some round 25 years daily usage:

— we never used Delphi4 programs on Copies. Not once. Did never happen.

— See further proof below: copying between separate computers.

   What we write in The Copy of the Original, reflects on the original — AFTER our writ  — a following Delphi4 closure — AND which does not show on Run where we DID do write the Code. (The Delphi Creators we psychic — above our present level).

   »Tampering with Code from opening a Copy of The Original Fabric» KILLS THE ORIGINAL — its Code Status before The Copy process is KILLED:

   Do not write new code into an opened copy of an original project — if the original before the copying process is expected to be preserved.

   Delphi4 also tells it — now that we know — in the Unit1 header that shows up in an opened copy of the original, saying:

 

 

— »This Unit belongs to the Original — and changes WILL reflect There — AFTER this Delphi Session has terminated And Original is DelphiOpened»:

   But THAT will NOT be seen — acknowledged — in the copied part:

   the copied part will have »ITS Unit code As IS» (read: non, at all):

»a dead text file — no project connectivity at all» when copied from the Original Fabric:

   no trace of any ”halt”:

   File Explorer in explicit can be used similar to the TimerWatchGuard program, in manually opening the actual Unit1 text file (open by NotePad) and see for ourselves that it is as here described.

 

 

 

 

TheFinalCountDown: — TwoComputersTEST:  11Apr2022 — SimpleTestingTutorial

 

TEST BETWEEN TWO SEPARATE COMPUTERS

  Affirming isolated end New Original Fabrics

 

This test may seem trivial. But it is imperative to really have some proof that the function is as logic and sane as we normally THINK it would be. That makes it more fun to use, so to speak.

 

 

TESTING BETWEEN TWO COMPUTERS — this COM¦A and another COM¦B — to prove isolated end New Original Fabrics — Delphi4 installed on both COMA and COMB.

 

CatalogP3: Project P3

— We prepare a Catalog P3 in this COMA by FileExplorer copying the Original Fabric Project1 to P3,

as these codings were left in their recent above example (SimpleTEST) — here P1 to P3:

 

procedure TForm1.FormClick(Sender: TObject);

begin

   halt;

 

Then (FlashCopy)

   taking P3 to COMB, opening its Project1 in Delphi4 there, Renaming to ProjectP3, closing Delphi, and importing back here to this COMA:s P3 — we keep same directory and delete only its original files and import the ones from COMB

   then making the same supported Memol1Test as above in SimpleTEST

   proving that this new ProjectP3 now is functioning as a stand alone isolated new original fabric:

   NOTHING CHANGES in The TimerWatchingGuard on P1:s Original Fabric as we write new code in ProjectP3 and Run it in Delphi4.

 

 

 

 

 

We repeat the same type of Memo test in Testing Project1 Isolation

CatalogP4: ProjectP4

— Same as above with only difference, as last kept above in SimpleTEST — P2 to P4:

 

procedure TForm1.FormClick(Sender: TObject);

begin

   //halt;

 

COMA:s P4 is a copy of this COMA:s P2 (copy of the original fabric).

RESULT:

ReRUN here in COMA

AFTER IMPORTED BACK HERE TO COMA FROM changes made in COMB:

 

   New: ProjectP3 — From Original Fabric Project1

 

we simply and ”trivially” certify that NOTHING we write into these (Renamed) P3 and P4 reflects on or in the original Fabric’s P1 Unit1.pas file. PROVING THAT

 

   Transfer of Delphi4 projects between computers with opening the Delphi4 projects in-between the transfers preserve and certify isolated original Fabrics with no inner interference.

 

 

Unit1.pas code in Project1 is not affected. PerfectAssembly.

 

New: ProjectP3 — From Original Fabric Project1:

 

Unit1.pas code in Project1 is not affected. PerfectAssembly.

 

 

These ExportedToCOMB Project1 / ImportedBackToCOMA ProjectP3P4 projects

   apparently as proved and certified now work as individual self sustained projects

   with a guaranteed zero connectivity to their origin in Project1.

 

NewOrigins:

Because Delphi4 on every new first opening of a project includes its actual project directory (in the .dsk file) with some additional computer model info, it is only by that part clear that exporting that project to another computer breaks the Delphi inserted local computer reference. Delphi4 Project copies between different computers are hence automatically certified as Original Fabrics in the receiving computer’s Delphi4 program.

 

We can copy originals between different computers (from COMA to COMB) — and also retrieve them back — as new originals, same original content — provided we have different catalogs for the occasion that the project names (by chance, or purpose) are identical.

 

Artist’s view of Evolution. Guaranteed HighIQ: what we FIND on Research: »the morphological matrix of nature». — »The evolution of Species» — in collected unique archived catalogs. The Real Steel.

 

 

 

 

CreatingOriginalFabricFROMCopy: Apr2022 — SimpleTestingTutorial

 

DELPHI4 PROJECT STRUCTURE AND HANDLING — what we know, this type info is not included in the Delphi4 HelpBook System

Creating OriginalFabric FROM Copy

— How is that possible in Delphi4 — without renaming or resaving?

RunClose2:

RunClose2

—————————————————————————————————

   1. Create, Run, Close        ¦ additional

   2. Open, Run, Close          ¦ additional

----------------------------------------------------------

   3. Open, Run, Close          ¦ no additional

 

Testing a Delphi4 project file creation — have File Explorer opened beside Delphi4 — from a brand new project follows the above observed and tested order:

1. After a first Create, Run and Close, Delphi has added N new files to the project catalog:

2. After a following re-Delphi4 opening — Delphi4 opens on last closed — with a run (F9) and a Delphi4 closure (Alt+F,X), Delphi4 has added the final basic N+n project files:

3. An open Delphi4 No3 session shows that no more File Explorer changes occur in the project catalog.

   We refer this basic Delphi4ProjectWorksSafe routine — apparently imperative for a zero reported Delphi project start error free run — as »a RunClose2 Delphi OK Status Report».

   We must adopt the RunClose2 discipline in order to safely know — have proof — that Delphi4 compiles with no reported error on closing and opening a (newly prepared) Windows API project.

 

Creating Original Fabrics from a Copy

— local on this computer, or imported from another computer (or an Internet download)

ProjectFactory:

   Make (in Borlands Delphi4 catalog) a new reserved directory named

ProjectFactory

   It will receive »product mass», and return a finished product through machinery.

— It will have the same function as a traditional industrial building where Products are produced, packed and shipped/exported.

   As long as A product is produced, IT takes machine energy, and That factory floor is So occupied;

   When the product is finished, the machining for THAT individual product has also finished:

   The factory floor Empties — in the same individual sense as The Product leaves its parent floor.

   The factory stands empty when there is no production.

   The factory is full when there is a production.

 

 

 

 

Handling Delphi4 Connectivity Status

When Delphi4 opens a project for the first time, Delphi4 writes in (in the .dsk file) the full directory path of the opened project’s catalog site, plus some additional computer model info. See proof in SimpleTest.

   A File Explorer MOVE (1) of such a catalog’s all (pending) project files (PTI) to a type ProjectFactory catalog breaches — disconnects — the Delphi4 chain connectivity and orientation onto the PTI:

   We could stay there, moving (3) — emptying the ProjectFactory floor out of — the PTI back to its original catalog, thereby having acquired a PTI status of a Delphi4 now independent Original Fabric program:

— it has so been tested to work;

♦ Neither IT nor Delphi4 has no idea of any kind of (meaningful) connectivity:

   If we open that »BackPacked» PTI from Delphi4 (Ctrl+F11¦Menu: File, Open Project), Delphi4 answers as it does when a completely new not before sensed Delphi4 project is opened for the first time:

 

 

How DELPHI4 opens on an already Delphi4 identified Delphi4 project for the VERY first time:

 

 

 

Only Object Inspector and the top DELPHI4 stripe shows up:

   Making the Unit1 code window show, we must call Ctrl+F12, select Unit1, Enter;

   Making also the project’s component (Form1) appear, a second simple Key F12 makes it

 

   The PTI has gained status of an Original Fabric in being moved from its original catalog to the ProjectFactory, opened from there = oldConnection disconnected — and then moved back = ProjectFactory floor emptied — to its original catalog: connectivity to ProjectFactory also erased.

   »Perfectly liberated». No ReNaming or ReSaving. Same preserved private project files.

 

Multiple Same Original Fabric COPIES

However allowing multiple SUCH 100% INDEPENDENT Original Fabrics — even having the same project names, only differing on their directory locations — is also excellently realized

   by an additional Steps 4+:

 

 

 

 

 

   Whereas the (3) BackPackMoved PTI now has 100% Original Fabric status — as long as NOT opened by Delphi4 in any kind or sort of way — IT can be COPIED 456 .. N freely in any amount to any catalog place with the same project name — as a veritable Global Internet Download on ones personal computer. Only provided with different catalog names:

   No need for renaming or re-saving the Unit files — they are certified as a Property of the Original Fabric in its original Catalog.

 

If such a project needs a unique name, type PTIa, PTIb, PTIc .., it is realized from opening it in Delphi4 and adopting the Save Project dialog (Menu: File, Save project As):

   There will be program name duplicates (previous, new) of seven file extension types

 

.~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .exe ¦ .res

 

from the renaming process. The old program name files have no meaning in the new program file project coding. So these can be deleted: they have no (here known) Delphi4 New program connection

   Delphi4 has neither any known internal dialog to remove the redundant old program name files.

   The deletion process must be made manually in File Explorer — or a separate local actual program name program routine can be developed for the purpose (Automated Self File CleanUp).

 

 

This check list was made synchronous with the executing commands on the different catalogs:

IMPORTED BasicTextIm/PlainTextIm 13Apr2022

from a COMB Windows 7 hpComputer to a COMA Windows 7 compaqComputer in

C:\Users\Compaq\Documents\BasicTextIm\PlainTextIm

checked

1 ....................     PlainTextIm  OPENED¦DELPHI4¦ in BorlandDelphi4 ¦RunClose2

Testing INDEPENDENT Original Fabric Copies:

  PlainTextIm — only the internal files, not the whole Folder:

————————————————————————————————

2.1...................    PlainTextIm MOVED¦FileExplorer¦ to BorlandDelphi4¦ProjectFactory

2.2...................    PlainTextIm OPENED¦DELPHI4¦ in BorlandDelphi4 ¦RunClose2

2.3...................    BorlandDelphi4¦DELPHI4 CLOSED — after 2(RunClose) as tested.

2.3...................    PlainTextIm ¦FileExplorer¦ MOVEDcopied ................................................ Empty Project Factory

--------------------------------------------------

MOVED(FileExplorer Ctrl+X) to original, then copied (Ctrl+C) from there

--------------------------------------------------

 

 

   ProjectFactory 100% EMPTIED. No traces ...............................................  Empty Project Factory

3 ....................  PlainTextIm — back to original catalog

4 ....................  PlainTextIm1 — new

5 ....................  PlainTextIm2 — new

6 ....................  PlainTextIm3 — new

   PlainTextIm¦123 OPENED ¦FileExplorer¦ in BorlandDelphi4¦DELPHI4    

— as brand new first Delphi4 never before opened new projects

Ctrl+F12, Unit1; F12 (F12, F9: Close Alt+F4, Alt+F,X)

StartSizeUnit1Window: Alt+Space, Size, ArrowRight(locksSize),

RepeatArrowLeft, FinalizeEnter.

RunClose2: 1:st from FileExplorer, then from Delphi4, no errors reported¦

— for testing an EACH individual Certified Original Fabric.

   No project connectivity, not mutual/internal, not to previous:

   ProjectFactory 100% EMPTIED. No traces ...............................................  Empty Project Factory

   PlainTextIm¦123 OPENED¦DELPHI4¦ in BorlandDelphi4 ¦RunClose2:

3.1...................   PlainTextIm — original catalog

4.1...................   PlainTextIm1 — new

5.1...................   PlainTextIm2 — new

6.1...................   PlainTextIm3 — new

 

CreatingOriginalFabricFROMCopy. No need for Delphi4 renaming or re-saving.

 

 

 

TimerWatchGuard: TheFinalCountDown ¦ SimpleTestingTutorial ¦ SelfCleaningProgram

 

WatchPROJECT

Watch And Display Changes — proving Delphi4 behavior

Program used for proving that an OriginalFabric takes writing code from a Copy — that does not expose the behavior of the actual running program

 

 

   The program below WATCHES what — if any — is happening on the  selected text block in a specified UnitN Delphi4 code file — for proof and analysis of complex Delphi4 behavior as in TheFinalCountDown.

 

C:\OriginalFabric\Local\StartDelphi\Project\P1

The Delphi4 TimerGuardingUnitTest Program

CAN BE INCORPORATED IN ANY PROCESS — HERE A FormClick + a Timer1Timer procedure + a Memo1 Component (appropriately sized)

   The WatchPart’s FullPath is blinking WhiteBlack each second from the moment the Program’s Form is clicked on. Close program with Alt+F4.

   Set Timer1 property ”Enabled” to False on Object Inspector’s Events tab.

 

 

WatchPROJECT

   Add an OnClick event from Delphi4:s Object Inspector by selecting OnClick and pressing Ctrl+Enter. Then write the following additional Delphi4 Pascal code:

 

procedure TForm1.FormClick(Sender: TObject);

var

  S:   string;

  A,B: Integer;

  TS:  TStringList;

begin

   Timer1.Enabled:= True;

   B:= 0;

   {C:\OriginalFabric\Local\SimpleTutorial\P1\Unit1.pas}

   S:= 'C:\OriginalFabric\Local\SimpleTutorial\P1\Unit1.pas';

   Form1.Caption:= 'Form1 — Checking on ' + S;

   Memo1.Clear;

   with Form1.Canvas do

   begin

     Brush.Color:= clBtnFace;

     if

     Font.Color = 0 then

     Font.Color:= clWhite else

     Font.Color:= 0;

     TextOut(5,5,S);

     if FileExists(S) then

     begin

       TS:= TStringList.Create;

       try

         TS.LoadFromFile(S);

         for A:= 0 to TS.Count do

         begin

           Inc(B);

           if Pos('procedure TForm1.FormClick',TS[A])>0 then Break;

         end;

         Memo1.Lines.Insert(0,'');

         for B:= B to TS.Count do

         Memo1.Lines.Add(TS[B-1]);

       finally

         TS.Free;

       end;

     end

     else

     begin

       TextOut(5,5,'Memo1.text ¦ fileNotFound');

     end;{ifFileExists}

   end;{endWithForm1Canvas}

exit;

..

end;{endFormClick}

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

   FormClick(Self);

end;

 

 

 

SelfCleaningProgram: Apr2022 — TimerWatchGuard

 

CLEANThe7cred

Delphi4 Project — Self-Cleaning-File Program

Program used for deleting internal Delphi4 project files duplicates of the seven central program file extension type:

   Without this, we have to delete the redundant files manually — unless accepted as put.

.~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .exe ¦ .res

 

C:\OriginalFabric\Local\StartDelphi\Project\P1

 

Only the ActualProgram’s  .~ds ¦ .cfg ¦ .dpr ¦ .dof ¦ .dsk ¦ .exe ¦ .res  extension files remain.

 

Delphi4 Pascal code:

 

procedure TForm1.FormClick(Sender: TObject);

var

  S,T,U,V,W,X,Y: string;

  A,B,C,L:       Integer;

  SR:            TSearchRec;

  TS:            TStringList;

begin

    A:= 0; L:= 15;

    S:= ExtractFilePath(Application.ExeName);

    W:= S + 'Files\';

    if not DirectoryExists(W) then exit;

    V:= '.~ds¦.cfg¦.dpr¦.dof¦.dsk¦.exe¦.res¦';

    T:= ExtractFileName(Application.ExeName);

    U:= T;

    B:= Length(U);

    Delete(U,B-3,B-3);

    TS:= TStringList.Create;

    try

      TS.Add('ProgramFileName: ' + U);

      TS.Add('DelphiProgramFiles: 7¦V = ');

      TS.Add('.~ds¦.cfg¦.dpr¦.dof¦.dsk¦.exe¦.res¦');

      TS.Add('All V files:');

 

      if(FindFirst('*.*',faAnyFile,SR)=0)then

      while FindNext(SR)=0 do

      begin

      {CollectFileList:}

        X:= SR.Name;//RootFiles¦Note.

        B:= Length(X);

        Delete(X,B-3,B-3);

        Y:= ExtractFileExt(SR.Name);

        if(Pos(Y,V)>0)and(Length(Y)=4)then

        begin

          Inc(A);

          TS.Add(SR.Name);

        end;

      end;{endWhile1}

      TS.Add(IntToStr(A) + ';');

      C:= A;

      A:= 0;

      FindClose(SR);

      {Delete¦ReportNonProgramFiles:}

      if(FindFirst(

      //W + '*.*',faAnyFile,SR)=0)

            '*.*',faAnyFile,SR)=0)

      then

      while FindNext(SR)=0 do

      begin

        X:= SR.Name;//RootFiles¦Note.

        B:= Length(X);

        Delete(X,B-3,B-3);

        Y:= ExtractFileExt(SR.Name);

        if (Pos(Y,V)>0)and(Length(Y)=4)then

        begin

          Inc(A);

          if X<>U then

          begin

           {InFilesDirectory:}

           if DeleteFile(W + SR.Name)

           {InRootDirectory:}

           //if DeleteFile(SR.Name)

           then

           begin

            Dec(A);

            TS.Add(SR.Name + #9 + ' ¦ Deleted.');

           end;

          end;{endIfXU}

        end;{endIfPos}

      end;{endWhile2}

      TS.Add(IntToStr(C-A) + '.');

    finally

      FindClose(SR);

      ClipBoard.AsText:= TS.Text;

      {OpenInNotePad:}

      S:= ExtractFilePath(Application.ExeName) + 'Clip.txt';

      TS.SaveToFile(S);

         ShellExecute(

         0,

         nil,

         PChar(S),

         nil,

         PChar(S),

         SW_SHOWNORMAL

         );

      TS.Free;

    end;{endTry}

    with Form1.Canvas do

    begin

      Brush.Color:= clBtnFace;

      TextOut(5,5 + 0*L,'OK');

      TextOut(5,5 + 1*L,S);

      TextOut(5,5 + 2*L,T);

      TextOut(5,5 + 3*L,U);

      TextOut(5,5 + 4*L,IntToStr(A));

    end;

exit;

..

end;{endFormClick}

 

 

 

IconSHOW: Apr2022

 

IconSHOW (Webber)

ICON SHOW

 

 

EXEMPLIFIED Extractions from some of the Author’s icon production Apr2022 — Butterfly forms from coloring Polar Graph drawing shapes, Nuclear models from Simply 3D in Windows 95. The final ICO-file status has been realized by using

   Delphi4Test20xx programs

 

 

Delphi4Test20xx (Toning, Merging, Framing) ¦ Basic2D3D (Coloring, Sharpening, PhotoHandling) ¦ BasicTextZoom (MatrixZoom, Blurring)

for matrix zooming and coloring to the final icon image metrics pixel squares 16, 32, 48, 64, and 128 — Delphi4 takes no larger originals for transferring the ico-file picture to the standard displaying 16pixel square Windows program icon area — and

   two free icon edit programs on Internet: Junior Icon Edit (most simple) and GIMP (Gnu Image Manipulating Program, more demanding):

   Just (simplest): The zoomed pixel square picture is copied to the icon transfer program, here Junior Icon Edit or GIMP, and then saved from there in the ico-file format in a reserved ICON directory — all proceeds in (very) fast short routines. From there: see further below.

 

 

Basic Butterfly Wing Polar Equation — as discovered by math observations

Delphi4Test20xx series Windows API Programs — BellDHARMA UniversumsHistoria @Internet 2008+

 

Consecutive drawing with different values on Size, delimits coloring portions. Additional toning — framing — and coloring manipulations do the rest.

 

Evaluating an appropriate PROGRAM ICON may be a demanding project

— unless we have some simple IconSHOW process to consult, now and then, for a testing help.

   How it looks at practical work.

 

 

With todays Apr2022 free personal use icon maker and edit programs

Icon Edit Junior ¦ less demanding — GIMP ¦ more demanding — and Delphi4Test20xx programs

we can construct our own Windows program icons with fair results from personal drawings, photos and simpler image handling resources. It is fun, and time tends to »stand still» — type having produced 50 icons in a few hours »when we get the hang of it» (maybe 5 will survive as potential candidates for further). Right figure below rotated 180° of the left.

 

Author’sDrawing and photos only .. Use them if you want. Only restriction: HumanRight. No Trafficking.

 

Slightly more complicated is to organize the (growing) amount of icon images — in a growing amount of catalogs, directories and folders by Type and Selection — for a meaningful study, »getting the feeling of it», testing and choosing during the ordinary computer work — deciding and classifying, if at all.

 

 

Icons CAN be very powerful Markers to/for meaningful branches — types of Engagement. The stronger and clearer in picture — »morphological association»: the figure, shape, formation — the more MEMORY powerful.

 

The following Delphi4 Windows API Pascal coded IconSHOW program can be incorporated in any other program on the following discipline.

 

   The IconSHOW is run from a FormKeyDown procedure with two inner nested procedures: Read IconList and Browse Icons.

   Add these constants (depending on the icon directories, below are the author’s example) and variables as global (in Unit1):

 

const

  Ic1 = 'ICON\';

  Ic2 = 'ICON\IcoA\';

  Ic3 = 'ICON\IcoBuf\';

  Ic4 = 'ICON\IcoBuf\IcoA\';

  Ic5 = 'ICON\IcoNuc\';

  Ic6 = 'ICON\IcoNuc\IcoA\';

  IcNUM = 6; {Ico array on GlobVar¦SetLength(Ico,IcNUM)OnFormCreate¦15Apr2022.}

var

  Ico: array of         Integer;      {IcoSHOW¦FormKeyDown}

  Ics: array of         string;       {IcoSHOW¦FormKeyDown}

  OrdK:                 Integer;      {IcoSHOW¦FormKeyDown}

  GlobIco,IconCount:    Integer;      {ViewIcons¦FormKeyDown}

  CanViewIcon:          Boolean;      {ViewIcons¦FormKeyDown}

  TS:                   TStringList;  {ViewIcons¦FormKeyDown}

 

with an initial creation process in FormCreate of type

 

procedure TForm1.FormCreate(Sender: TObject);

var

  A:    Integer;

begin

       SetLength(Ico,IcNUM+1);{IcNUM=6¦Indexed 0..6 = 7.}

       SetLength(Ics,IcNUM+1);

       Ics[1]:= Ic1; {'ICON\'}

       Ics[2]:= Ic2;

       Ics[3]:= Ic3;

       Ics[4]:= Ic4;

       Ics[5]:= Ic5;

       Ics[6]:= Ic6;

       OrdK  :=   1; {FormKeyDown¦IcoSHOW.}

       for A:= 1 to IcNUM do Ico[A]:= 1;

       TS:= TStringList.Create;

..

 

And for TS in explicit on FormClose

 

       TS.Free;

 

Then write the rest of the IconSHOW Delphi4 code in the FormKeyDown procedure as follows:

 

procedure TForm1.FormKeyDown(Sender: TObject;

var Key: Word; Shift: TShiftState);

var

  S,T: string;

  SR:  TSearchRec;

{ViewIcons¦5Apr2022¦TSglobalUnit1FormCreate:}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·:}

  Procedure ReadIcons;

  begin

   {ProducingTheActualIconList:}

    S:= ExtractFilePath(Application.ExeName);

    T:= S + Ics[OrdK];{IcDir Default=1¦Ics[1]='ICON\'}

    if DirectoryExists(T)

    then

    begin

     TS.Clear;

     try

       if(FindFirst(

       T

       +'*.ico',faAnyFile,SR)=0)

       then TS.Add(SR.Name) else exit;

       while FindNext(SR)=0 do TS.Add(SR.Name);

     finally

       FindClose(SR);{Alt.: FindClose(SR.Size)}

       TS.SaveToFile(S + 'ICON.txt');{JustForCheck}

       IconCount:= TS.Count;

     end;{endTry}

    end;{endIfDirExists}

  end;{endReadIcons}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·.}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·:}

  Procedure BrowseIcons(var Key: Word);

  var A: Integer;

  begin

   case Key of

     VK_ADD:

     begin

       Inc(GlobIco);

       if GlobIco > IconCount then GlobIco:= 1;

     end;

     VK_SUBTRACT:

     begin

       Dec(GlobIco);

       if GlobIco <= 0 then GlobIco:= IconCount;

     end;

   end;{endCase}

     if Char(Key) in ['A'..'Z'] then

     begin

       for A:= 1 to TS.Count do

       begin

         if Pos(Char(Key),TS[A-1])=1 then

         begin

            GlobIco:= A;

            Break;

         end;

       end;

     end;{endIfAtoZ¦Added14Apr2022}

   S:= ExtractFilePath(Application.ExeName);

   if GlobIco = 0  then  GlobIco:= 1;

   T:= S + Ics[OrdK] + TS[GlobIco-1];

   {ShowTheActualIcon:}

   if FileExists(T) then

   begin

   Application.Icon.LoadFromFile(T);

   Label1.Caption:=

   IntToStr(OrdK)+'¦'+IntToStr(IcNUM)+'¦IcoDIR='+Ics[OrdK]+' '+

   IntToStr(GlobIco) +

   '¦' +

   IntToStr(IconCount) +

   ' ¦ ' +

   TS[GlobIco-1];

   end;

  {Undefined CPU-interrupted program stop with Integrated Debugger IDE ON:}

  {Delphi4 MARKS no code of line error, only shows the CPU-info.}

  {It appears when pressing VK-ADD key from IcoNoumber 99 to 100 (?!)

   — but not from the max 186 down to 100 and to 99 .. and some other peculiar.}

  {WithDelphi4IntegratedDebuggingON¦cat1¦ICO-No99-100: ProgramCPU-Stop:

  "access violation at 0x77522372: write of address 0x425e

  F0 0F BA 30 00 0F 83 6E 03 01 00 64"¦SelfProgramRun-OutSideDELPHI4-NoBreak.}

  {A possible »silent error» — makes no harm if no program stop:}

  {SetIntegratedDebuggerOFF — Menu,Tools,Debugger Options.}

  {See Delphi Help: debugger - About the integrated debugger — but there is

  no particular lead on this type of CPU-advertised Debugger program stop.}

  end;{endBrowseIcons}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·.}

begin {FormKeyDown}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·:}

   {Label1.Caption:= IntToStr(Ord(Char(Key)));

   exit;{TestingKeys}

{o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·o·.°·:}

   {ViewIconsBlock¦5Apr2022:}

    if(Shift=[ssCtrl])and(Key=VK_MULTIPLY)then

    begin

     Label1.Caption:= 'UpdateIconList ¦ Ctrl+ NumpadMultiply';

     if not CanViewIcon then CanViewIcon:=True else CanViewIcon:=False;

     if CanViewIcon then

     begin

        ReadIcons;

        Label1.Caption:=

        IntToStr(OrdK)+'¦'+IntToStr(IcNUM)+'¦IcoDIR='+Ics[OrdK]+' '+

        '¦ IconFileListLoaded ¦ ' + IntToStr(TS.Count);

        CanViewIcon:= True;

        exit;

     end;{endIfCanView}

    end;{endIfViewIcons¦Ctrl+NumpadMultiply}

    {SelectAvailableIconDirectory:}

    if(CanViewIcon)and(Key in

    [VK_NUMPAD1..VK_NUMPAD6, VK_SUBTRACT,VK_ADD, Ord('A')..Ord('Z')])

    then

    begin

     if Key in [VK_NUMPAD1..VK_NUMPAD6] then

     begin

      Ico[OrdK]:= GlobIco;{SaveLastIcoNumberINLastIcoDir;}

      if not(OrdK in [1..IcNUM])then exit;

      OrdK:= Ord(Char(Key))- 96;

      GlobIco:= Ico[OrdK];

      ReadIcons;

      CanViewIcon:= True;

     end;

     Label1.Caption:=

     IntToStr(OrdK)+'¦'+IntToStr(IcNUM)+'¦IcoDIR='+Ics[OrdK]+' '+

     '¦ IconFileListLoaded ¦ ' + IntToStr(TS.Count);

     BrowseIcons(Key);

     exit;

    end;{endSelectDirectory}

..

end;{endFormKeyDown}

 

Function:

   The Icon Directories are stored in the program’s Project file as sub directories.

   Ctrl+NumpadMultiply toggles the IconSHOW onOff — all other KeyDown commands are shut off if IcoSHOW is on.

   Browse the selected IconList with Numpad± — PlusUP, MinusDown.

   The actual Icon shows LeftTop in the program’s program window.

   The IconSHOW-status is (here) displayed in (the regular) program window’s bottom status Label as

 

 

ActualIconDirectory¦NumberOfDirectories¦ActualDirectoryName\  IconNumber¦NumberOfIcons ¦ IconName

 

  The IconPicture also shows enlarged in Windows Open program bar (Windows 7) when the Alt+TAB keys are pressed.

   SELECTION STANDARD:

   Full selection capability:

   Press Key A .. Z for jumping directly to an icon group with that first letter (the icon list is sorted);

   Press Numpad 1 .. IcNUM (here IcNUM = max 6) for selecting the different IconCatalogs:

— View File Explorer as a stand by Window to browse its actual icon catalogs for more orientation.

 

Delphi4Test2022 have [Apr2022+] a standard FormClick routine displaying the program’s full directory path in Label1 at the bottom of the program window: Activates on MouseLeftClick on the Form’s panel. AND a

   Ctrl + MouseLeftClick for opening a separate File Explorer window on the program’s Delphi4 project’s computer location where the ICON directories reside. See StandardShowPath.

 

   Leaving one IconCatalog for another stores the Icon Number at leave — so we can »toggle exact» between the different catalogs LastLeft only by selecting a catalog number (1-6), always with a direct view of the icon we selected last in its catalog. But this memory is erased when the program is terminated. If so wished, an additional text file could be made for storing such data for a read-back on next start. That is not imperative in this presentation.

 

Source:

The smallest beautifulest flowers grow between the hardest of stones. Spring 2012 Mid Sweden. Perfect beauty.

 

StandardShowPath:

The standard ShowPath and Open Project’s File Explorer on FormClick ¦ Ctrl + FormClick,

Delphi4 Pascal code — here on procedure FormClick: variable S declared as string:

 

     {RegularMouseLeftClick:}

{.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0:}

     S:= ExtractFilePath(Application.ExeName);

     Label1.Caption:= S;

{.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.}

     {OnKeySHIFT+MouseLeft:}

     {Form1Click|Regular¦ProgramFilePath¦OpenFileExplorer:}

     if GetKeyState(VK_CONTROL) <= -127 then

{.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0:}

     begin

     {OpenFileExplorer¦ProgramCatalog:}

     ShellExecute(

     0,

     nil,

     PChar(S),

     nil,

     PChar(S),

     SW_SHOWNORMAL

     );

     exit;

     end;{endIfShift+Click}

{.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.·°ºOo0.}

 

 

 

ProjectTitle: ICON

DELPHI4 WINDOWS API WINDOWS PROGRAMMING

Program TITLE — and a Window Header

WindowHeader:

Write a Window Header

 

 

Author’s example: write code in Delphi’s FormCreate selection:

   1. Add a CONSTANT parameter (in a Constant section) under the uses section:

— Write it as shown in 1 above.

 

   A CONSTANTS section (Delphi4s reserved word const) can always be manually inserted after the Uses section — guaranteeing that the constants in that list are seen as globals to Unit1 (and all other eventually created Units).

 

const

  ProNAME = 'eb22  |  — ';

  {ProNAME = 'Test2022Feb'¦Previous.}

  Fhtm    = 'DELPHI4Webber22HELP.htm';

  DefLink = 'Help\HTM\' + Fhtm;

  {DefLink = 'Help\HTM\DELPHI4Webber22HELP.htm'.}

  BH      = 40;

  iW      = 720;

 

— ProNAME (or other) as a constant in Delphi needs only the equal sign between parameter and content:

   two single quotation characters (  '   ' ) define a type string;

   a whole number defines a type Integer, and so on (see DelphiHelp on constants).

 

 

— Where/How do I find this Delphi4 Help? See The original Delphi4 help book file system [D4HBSorigin].

 

 

description continued:

   ACTIVATE (show) the Proname by including it in a general FormCreate process (Caption:= ProNAME):

   2. First: Launch a FormCreate procedure by a Click on Form1 — browse to OnCreate and

   Press Ctrl+Enter:

— Delphi4 now automatically writes/inserts the main code for an OnCreate procedure:

   3. Between begin and end, write ’ SPACE  ’ +ProNAME+ ’ »SOME EXTRA » ’;

   4. Run project  with F9 — the Proname + »some extra» now appears as a window header.

 

— The number 1 after Proname  is (here)

   a (simple) substitute for a more advanced possible Integer value:

   we can possibly program our Windows Program so it can be opened and used on several occasions — each with its own unique shipping number — so we easier can identify which one we want to call — however ALL sharing the same program project files.

— Another possibility is to have the exact same program on different directories/catalogs — allowing specific parametric settings/savings for each individual A B C .. — including type A1 A2 .. C4 .. The possibilities are by principle »unlimited».

   THE NUMERATION PART needs a deeper acquaintance with how to handle ALL present open Windows programs.

   We leave that for now — but as the code is not to complex, we include it here in a detailed later description.

   See further below in Allow MultipleProgramWindows.

 

ProgramTITLE:

Program TITLE

   JUST SOME INTERNAL NOT DIRECTLY VISIBLE DETAILS .. Program TITLE ..

   After our first Save Project As .. DELPHI4 has added that naming in its basic program file (DPR) unit, appearing as its header:

 

 

 

   It is not imperative for the actual program function to (manually) include a TApplication.Title in explicit.

 

 

 

 

 

— However if we want to include a specific (program/application) TITLE, we can study how DELPHI4 handles the details:

 

 

 

 

   On the DELPHI4 Tools menu, select Project, Options, the Application tab:

   We write in a Title (here same as the project name):

  After OK — if we have the DPR-unit page open (open it with Ctrl+F12 — View Unit) — we see how DELPHI4 adds a forth line ” Application.Title := ’Title’ ”:

 

The sequence from start (after a first project save) up to writing an ApplicationTitle and then deleting it, is as follows — how DELPHI4 adds and removes the details:

 

 

   1. From start — after our first Save Project ..

   2. After we have manually written in the project name as the program title.

   3. After deleting that:

— DELPHI4 does not remove the Application.Title line, only leaves it with an empty string.

 

DialogsShort: ProgramTITLE

 

Calling the different project dialogs in DELPHI4

 

   Ctrl+F12 — View Units

   Ctrl+F11 — OpenProject

   Shift+F11 — Add to Project

   Shift+F12 — View Forms — the actual Project’s window component appearing form.

 

 

   Key F11 — toggles/focuses Code window / Object Inspector / Form.

   Key F12 — toggles Code window / Form.

   Ctrl+Enter on Object Inspector — jumps to the actual (Delphi) inserted procedure, or creates the basic Delphi4 code for it inside (bottom) the code window:

— If everything between begin—end (and eventual variables) are manually removed from such an (inserted) procedure, Delphi4 just removes it from the project on the next compilation (Ctrl+F9) or direct run (F9).

 

Delphi4MarginMarkings: DialogsShort

 

MarginMarkings

   THERE ARE BLUE DOTS appearing in the left margin of the code window. Those are Delphi4s own markings of »already approved compiled written/checked code».

 

BookMarks: ProjectTitle ¦ Delphi4MarginMarkings

Delphi4 also has special BookMarks (sadly with poor visual clarity)

 

 .. would have been clearer with ..

 

By keys — 0..9 left keyboard side, top keys:

   Add a bookmark with Ctrl+K+ 0-9 (or take 0-9 to another location)

   Remove bookm. with Ctrl+Q+ 0-9.

Or select the menuKey — on the left side of the right keyboard Ctrl key — or rightClick on the edit desk —

 

 

 

and select whatever from there.

  Select present bookmarks also directly by keys:

   Ctrl+ 0..9 left keyboard side, top keys.

Indents: BookMarks

CodeWriteEdit;

INDENTATIONS for convenience:

 

 

   On Tools, Environment Options, Editor tab we can select ”Block indent”:

   Keys Ctrl+Shift+i pushes all selected text BlockIndentValue text steps to the right.

   Keys Ctrl+Shift+u pushes the selected text same step back.

— Very useful stuff — when code reaches thousands of rows with internal blocks.

 

 

 

 

FromHereAndFurther: Indents

NEXT TIME DELPHI4 IS STARTED — provided the last project had AutoSave selections checked (AutoSaveON) — the same project opens for further development:

 

   Just add code and components — and test (compile Ctrtl+F9, run direct with a leading auto compile with F9) — and DELPHI4 auto saves all changes without any further prompts:

 

   Start/continue project with Click the Delphi4 DTI, compile during the work, and run, with (Ctrl+) F9

— and finish with Alt+F,X.

   That is all.

 

 

 

MoreBeginnersCodeEX:

 

SOME MORE BEGINNERS CODE ..

 

BasicButtonTextOut:

BasicButtonTextOut

 

 

 

We started with (1) adding a Button1 to Form1 — with a simple code written OnClick event (on key Enter or a MouseLeftClick on Button 1) resulting in a program halt: program closes: terminates. Stops. Ends.

   Alternating the SIZE of components in DELPHI4 programming mode is performed either directly with the Mouse (hold LeftButton down from any windows/component edge and Draw). Or with Keys: Shift+ARROWS.

   Examplifying by Button1, we enlarge it as above (2) and adjust the Form1 plate accordingly.

   Examplifying how the Button1’s LABEL TEXT (its Caption property) can be modified, DELPHI4 allows us to write some DELPHI4 code as exemplified below. We will get acquainted with some basic FONT — the text type; name, size, style, color .. — and (soon) CANVAS — the general text up-taking surface (forms, images, labels, but not panels and buttons):

   On procedure FormCreate we add

 

..

with Button1 do

begin

Font.Name:= 'Times New Roman':

Font.Size:= 25:

Caption:= 'Welcome';

end;

 

This code has the same effect as the more complex

 

Button1.Font.Name:= 'Times New Roman':

Button1.Font.Size:= 25:

Button1.Caption:= 'Welcome';

 

Many examples in (more extensive) DELPHI4 code proves (great) simplification using this with DELPHI4 reserved word — so we won’t have to code-write the same phrases repeatedly.

 

   BUT A SINGLE FORM BUTTON WILL NOT LET GO OF ITS FOCUSING (dotted) RECTANGLE

— That is IRRITATING: There is only ONE focused selectable item to chose on (»KillTheFuckUps» ..).

   We (CopyRight Grouping ..) would rather have it this way:

 

 

 

So:  How do we do that — what DEPLHI4 cannot (directly) do — ?

 

   We come back to that — issue — soon. First we see how the same type of TextOut can be written directly ON the actual Form1 surface — it need to be directed/addressed — as a Canvas.

   We do that directly on the previous OnButton1Click event: we skip the previous ”halt” statement (we write an ”exit ;” above it) and add the following

 

 

 

 

   DELPHI4 Help has extensive information on Colors (Properties), Font and all the other key words. We use these here (based on experience) and leave (most of) the rest to the readers own investigating experience — unless further taken up in this short manual.

   When we run (F9) this code and press Enter (or a Button1Click), the program window changes as below from 2 to 2.1:

 

 

 

 

So, again:  How do we do that — what DEPLHI4 cannot (directly) do:

   get rid of the dotted focus rectangle — ?

 

DELPHI4 help has detailed information on this issue on ENTER:

 

 

 

   There is apparently NOT any direct »unfocusing CODE» that can remove the dotted rectangle from our Button1 — as long as Form1 has only ONE (focusable) component to chose on.

— So: how to we solve the riddle?

— »PeaceOfCake (by steps ..)»:

 

 

 

 

   We add and extra Button2:

   We run (F9) and check (arrowsLeRi) that the dotted focus rectangle switches between Button1 and Button2;

   We use DELPHI4 component Organizer, rightBottom above, for a push on Button2 under/below Button1: Button2 can still receive captive focus — but not to the direct eye.

   We add the simple ”Button2.SetFocus” Delphi4 code after the Click/Enter action.

   And — voila: there it came:

 

 

   DELPHI4 Real Steel.

(The Wordl’s best and fastest computer program — with direct CPU access through Borland’s Turbo Pascal Assembler: nothing can beat that: talking directly to the CPU: »crazy fast math» ..).

 

MultipleProgramWindows:

MultipleProgramWindows

 

 

 

   With MANY (image/picture) tools we — preferentially — select different desk tops (1  2  3  ..  N) for different Quests;

   The EXPERIENCE — as it has been observed — synthesizes GROUPS of specific ISSUES — »canalizing themselves» into different working branches — as a house with a Kitchen, a Garage, a Bedroom, and so on. These are the corresponding Windows Desk Top Working Image areas: each one of them needs — in principle — ALL the others tools:

 

   We need

zooming, coloring, texting (writing text), composing, cutting, preparing, copying .. UnameIt, We’veGotIt (sometimes 10 open ..).

   But making all these in or on one and the same window working desk top would resemble collecting the house’s all rooms into the bathroom:

   possibly with some effort things could be done there too. But more likely with some unbearable experienced pain.

   So: With many ME of the same character, we CAN improvise what programNumber (today) shall Command Which working area (zooming, coloring, texting, composing, cutting, preparing, copying .. UnameIt, We’veGotIt).

 

So: How do we organize such a numbering — any of them still capable in storing the basic information on Closing — without interfering with or on other Windows programs?

 

The solution in Delphi4Test20xx is this one — tested now during some 20 years while composing and editing UniverseHistory — never a reported failure (yet, Feb2022):

 

MultiWin

A MultiWIN-flag is first made — checking the status ..

 

 

 

 

An additional FormClose finalizes the count:

 

 

 

 

   The ”Webber” term connects to [Delphi4Test2011, Archive: SetPersonalBrowser] a possible Delphi4Test20xx reserved WebReader for the Delphi4Test help files and associated (special instructions ar given how to set its call by Delphi4Test):

— These are merely hints to the many possible applications where a last data saving session is needed.

   After (F9) running the program, the project catalog/directory in our new beginners manual looks like this:

 

 

 

A new DATA.txt-file has appeared WITH THE ACTUALLY WRITTEN DATA — as it always is WHEN a code written DELPHI4 ”SaveToFile” command is given:

   If the file already exists, it is first deleted and then recreated.

 

Further developments — The Webber Feb2022

AdDATA:

Storing and recalling project site data safely:

— adding a DATA.txt file

 

Example With our Webber project in catalog Pro1:

On procedure TForm1.FormKeyUp with S declared as a string type, and code

 

S:= ExtractFilePath(Application.ExeName);

Label1.Caption:= S;

ClipBoard.AsText:= S;

 

Label1 writes, and ClipBoard contains (Ctrl+V):

 

C:\Program Files (x86)\Borland\Delphi4\Projects\Pro1\

 

 

We take advantage of that Type call-of-path — always, no exceptions — when calling internal project file stored — or recalling such — data:

   It certifies that the catalog/directory host — among all the possible DRIVE units (C, D, E .. — and other) — is the one and only ONE associated with the actual now real time working calling/executing present Delphi4 programmed Project (Web22) — and nothing else.

   It will be impossible to miss that one.

— The usability connects to the following typical code for external data handling:

 

We create, or already have a (Unit1 global) reserved general purpose (TS) TStringList (declared as a variable in the implementation section)

 

var

  Form1: TForm1;

implementation

{$R *.DFM}

{GLOBAL TO Unit1:}

var

  TS: TStringList;

 

We can use it in any process or function by a FormCreate initializing code as

 

TS:= TStringList.Create;

 

securing it finalization in the corresponding FormClose procedure

 

TS.Free;

 

AND use it anywhere in the (Unit1 scope) by code (Clearing it first, if not already cleared)

 

TS.Clear;

if FileExists(S + 'DATA.txt')then

TS.LoadFromFile;

 

with additional code handling of the content.

   And same way in saving;

 

if FileExists(S + 'DATA.txt')then

TS.SaveToFile;

 

(And, if it didn’t, appropriate code situation handling decided by »The Code Captain»: us)

where our data (typically) is added (first) to TS (for imminent storage) on a line basis as

 

TS.Add('Data A');

 

or checked by content through TS by code (testing session only)

 

for A:= 0 to TS.Count - 1 do

if TS[A] = '' then halt;

 

where A is declared as a local (must be local in the actual local procedure, Delphi accepts nothing else) integer and A in TS[A] is addressing the TS lines as 0 as the first and TS.Count —1 as the last line in TS.

number of lines:         1          2          3          4          5          .. TS[index +1] ¦ to TS.Count

TS Callingindex:         0          1          2          3          4          .. TS[A]

 

TheChall:

The Challenge here — maybe as a beginner — is: FUCK: I wrote .text instead of .txt — and now ALL MY NOVEL writ in Memo1 has GONE. FuckTheFuck.

   Of course there is no ”.text” TEXT files. ”.txt” it is.

— See MemoEx below: TEDIOUS as it MAY seem: consider a (first) basic BackUp — in a .txt file NOT connected to any other Program than: ME. Just a simple NotePad added for personal Log. THAT may be demanding — we don’t normally LOG the day as we go along — but sometimes in

Computer Handling details, we dearly wish we would have. Author’s recommendation: Use Natural Instinct: Reflect (a short while) before Action.

   See Alternative — a possible gallant (dynamic) MemoBackUp solution.

 

 

   The different (calling) methods complex of the TS type is described in Delphi4 help on the section TStringlist in Delphi Help

 

 

MemoEX: AdDATA

Memo1 Example:

 

 

Web22 ¦ 15Mar2022

Our Webber project with its manually added 8 components on Form1:

 

type

  TForm1 = class(TForm)

    Button1: TButton; //Visible

    Button2: TButton; //notVisible¦hiddenUnderButton1

    Label1:  TLabel;  //Visible

    Label2:  TLabel;  //Visible

    Label3:  TLabel;  //Visible

    Image1:  TImage; //Visible/hidden¦dependingOnExample

    Timer1:  TTimer; //neverVisible¦worksOnlyInBackground¦SystemTAB

    Memo1:   TMemo;   //Visible

 

 

   The same type order of AdDATA-call apply in using a (typical) Memo component:

   A Delphi(4) Memo component is the same as an internal NotePad:

   A TextIn-Box with a specific chosen Font/Size/Color(Background where we can

   make notes, write minor novels and take basic logs

   with all the basic text handling functions already integrated;

 

Loading/Recalling:

 

S:= ExtractFilePath(Application.ExeName) + 'Memo1.txt';

if FileExists(S)

then

Memo1.Lines.LoadFromFile(S)

else

Label1.Caption:= 'Memo1.txt ¦ fileNotFound';

 

Storing/Creating:

 

S:= ExtractFilePath(Application.ExeName);

Memo1.Lines.SaveToFile(S + 'Memo1.txt');

 

If the Memo1.txt file not already exists, Delphi creates one and stores the content of Memo1.

 

Alternative: MemoEX 

SimpleBackUpProgrammingTutorial

Consider the Delphi4 alternative:

SetCurrentDirectory('C:\');

Memo1.Lines.SaveToFile('Memo1.txt');

Have FileExplorer up on Catalog/Directory C and see — typically by Delphi code:

 

procedure TForm1.FormKeyUp(Sender: TObject;

var Key: Word;

  Shift: TShiftState);

begin

  if Memo1.Focused then exit;{KeyUpInhibitedOnForm1}

  if Key = Ord('C') then

  begin

   SetCurrentDirectory('C:\');

   Memo1.Lines.SaveToFile('Memo1.txt');

   exit;

  end;

end;{endFormKeyUp}

 

”If the function succeeds, the return value is nonzero.”.

 

Pressing the C key result in this:

 

 

We see that a ”Memo1.txt” suddenly pops in — in the C-directory_

   Apparently a nice (gallant) way for (The) US to secure a General Place for BackUp Memos in the C-directory’s domain container

   BUT — type Windows 10: User Account Control IF NOT POSSIBLE TO TURN OFF ¦ and if so: secure that all Internet connectivity is in The Universal Mode: unplugged — IT demands an in-between ”ClickAdminButton” before accessing copy to the C-directory — and so also for removing any part from the C-directory.

 

  IF for example a FlashMemory is connected (Drive F:)

— and the code would look like

 

  if Memo1.Focused then exit;{KeyUpInhibitedOnForm1}

  if Key = Ord('C') then

  begin

   SetCurrentDirectory('F:\');

   Memo1.Lines.SaveToFile('Memo1.txt');

   exit;

  end;

 

exactly the same happens — on Drive F, if on:

 

 

 

 

So — aiming at accidental prevention:

 

   IF further PRECISE calls are imperative to/for the computer’s DriveUnit C

   it is most safe to reset that condition after (each) SetOtherDriveChange by a Standard

 

SetCurrentDirectory('C:\');

so that we won’t end up in a previous ”F” .. or other ..

 

and practice the general

 

S:= ExtractFilePath(Application.ExeName;

 

+ actual file  ’name.txt’ 

   when SavingLoading data inside the project’s own file container.

   Always StaySafe and »test before do».

— Exactly the same rout is practiced inside practical electronics: never one itty bitty tiny DOUBT.

— IF such appear: pass it over — ones LIFE, and others, may hang on that wise decision:

   Wait — make minor experimentation — until .. aha .. That’s how it works .. Prove it. Show. Exemplify.

 

 

OR — even more advanced — if working on different drive units (the new solid silicon hard drives offer many such possibilities) — resetting on the actual System Drive.

— As we see: there are — sooner or later — »huge» organization issues in HOW to »make all these possibilities co-working».

— You are the engineer here. Delphi4 definitely has the capacity to bring the physical result. Just a matter of Code (Lots of Fruit-Veg-Juice .. ).

 

HighGroundExperimentalPhysics: Alternative

— What happens IF the FlashDrive is not connected?

    We »buckleUp», remove our FlashDrive, and see how Delphi reacts on

 

procedure TForm1.FormKeyUp(Sender: TObject;

var Key: Word;

  Shift: TShiftState);

  var

  B: LongBool; {can also be Boolean¦FalseTrue}

  S: string;

begin

  if Memo1.Focused then exit;{KeyUpInhibitedOnForm1}

  if Key = Ord('C') then

  begin

   B:= SetCurrentDirectory('F:\');

   Memo1.Lines.SaveToFile('Memo1.txt');

   if B=False then

   Label1.Caption:= 'DriveNotFound. ';

   exit;

  end;

end;{endFormKeyUp}

 

 

   NoProblemo: Delphi4 just informs the plain: NotFound.

(So we can CodeStart with .. if SetCurrentDirectory('F:\') then .. else .. exit;).

 

 

— Can Delphi4 copy a complete directory WITH its content on a single command?

— No. Thank You Very Much. That Delphi4 cannot do. But close to: Delphi4 can create any given directory path, if not already existent. But its content on individual files — and subdirectories — with individual files, and so on — needs some extra planning. For the moment, we have to pass that further on to the section »more advanced» (Delphi4Test20xx — CleanUpBefore[Re]Copy), unless already acquainted.

 

EnhancedMemo: HiGEP

Enhanced more general BackUpMemoCode

 

The previous Delphi4 Code can be made more ”tutorial” as follows — »try to keep up»:

 

”SaveMemo” ..

Function: IF Yes THEN: press DriveLetter A..Z. IF No: turn CapsKeyOff.

 

 

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

var

  B: Boolean;

  A: Integer;

  S: string;

  C: Char;

begin

  Button1.Caption:= 'Welcome';

  Label1.Caption:= 'StatusINFO1';

  if Memo1.Focused then exit;

  if GetKeyState(VK_CAPITAL) <= 0 then exit;

  Button1.Caption:= '$Memo?';

  Label1.Caption:= 'Y_saveMemo1¦DriveLetter ¦ N_CapsOFF ';

  if Key in [Ord('A')..Ord('Z')] then

  begin

   C:= Char(Key);

   S:= C + ':\';

{°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°:}

   B:= SetCurrentDirectory(PChar(S));

{°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°:}

   Memo1.Lines.SaveToFile('Memo1.txt');

{°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°.}

   if B=False then

   Label1.Caption:= 'Drive ' + C + ' NotFound. ' else

   Label1.Caption:= 'Drive ' + C + ' Found. ';

   Button1.Caption:= 'Welcome¦' + C;

   exit;

  end;

end;

 

In the actual FormUpKey block — after the extracted part above, key tests continue on NumPadMinus and others. Allowing also these to act, an addition is imperative in the code above;

 

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

var

  B: Boolean;

  A: Integer;

  S: string;

  C: Char;

  label Over;

begin

  ..

  if GetKeyState(VK_CAPITAL) <= 0 then goto Over;

  ..

  exit;

  end;

Over:

  ..

end;

 

Otherwise we won’t arrive at »the purple state» ¦ FormImFunction.

 

EnhacedMemoFunction: EnhancedMemo

MemoEnhancedFunction:

Starting up Web22

 

 

with a following CapsLOCK

 

 

introduces a selection choice:

   Back to normal with CapsLOCK off

— or preparing for a BackUp of Memo1 on any available DRIVE’s root directory:

   Select a DRIVE letter unit — test one that is not (yet) connected first — any in A .. Z:

   We test K:

 

 

As expected: there is no drive K in (yet).

   We test our ordinary C:

 

 

 

And as we see: A Memo1.txt file copy arrives at root directory C.

   We turn the CapsLOCK off (again) — and arrive at ”normal speed”:

 

 

   Finished.

 

TheWicon:

The W icon

   A W-icon was produced — with Delphi4:s simple 16-bit color Icon/Image tool;

 

 

   ProgramTitle: The title/Project/Program name was changed to: [W]eb22,

 

 

 

 

   along with the (15Mar2022) present project file content (catalog Pro1)

— which will be discussed more detailed in the following;

 

 

   TApplication.Icon: Some different color alternatives of the W-icon was made/included for testing purposes.

— The Delphi 16-color Icon-tool is a (very) simplified version of some later (256+)-color icon tools.

— And there is still no (found) free icon tool on Internet — for making — type — letter A B C .. icons:

— Trying to search THAT at Internet results in LETTER propositions: envelopes:

— the actual concept seems not familiar.. . Trying on ”character” is ever worse.

   Internet Feb2022 has transformed to an Icon Show — for three year old babies. Cute.

 

The general Delphi4 project aim is a single exe.file containing all necessary parts in it. As this production concentrates on programming development, this author treats every Delphi project so: On its Project Catalog/directory content. All files included and fully open for inspection. That so, that anybody if so wishes freely Can use the content for test or even further development — as Delphi4 self is doing it in its demo projects (catalog Demos).

   There are no ”copyright” restrictions here. Only one: HumanRight.

 

 

The Webber Project:

   A DATA.txt was added — showing how to save run time values for use on next program run.

   A Webber.txt was added — showing how advanced such data collection can be realized.

   A Memo1.txt was added — showing how to manually keep NOTES on »TheTracks»

— independent of any runtime status.

 

DATA.txt ....................   General DataSaver (for type selective run time colors or other)

Memo1.txt ...............   Note for the below ¦ adopted for 4 posts

Webber.txt ...............   The collected available Web Browser’s Windows Class names         

zSTUB.txt .................   Personal notes as the work continues (some log’s).

 

   A Timer1 was added — partly for collecting other active program window’s class name

— and partly for starting up the different Web Browsers — »independent».

   Further details below in Unit1 Content.

 

 

 

Unit1CONTENT:

 

UNIT1 CONTENT

PROCEDURES ADDED

from coding a program handler

Procedure LinkDelphiHelpHtm(Link: string);

LinkDelphiHELP ¦

Procedure DisplayWEBS;

DisplayWEBS ¦ TextOnFormIm ¦ FormImFunction ¦ TheWEBScode ¦ KeyExeFormIm ¦ EnterWEBS ¦ WorstCase ¦

Procedure OpenHelp(hLIN: string = '');

OpenHELP ¦

from tools menu/Object Inspector

procedure FormCreate(Sender: TObject);

FormCreate ¦

procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

FormKeyUp ¦

procedure FormClose(Sender: TObject; var Action: TCloseAction);

FormClose ¦

procedure Button1Click(Sender: TObject);

EnterWEBS ¦ Memo1Activation ¦ Memo1Purpose ¦ MemoEX ¦ Alternative ¦ HighGroundExperimentalPhysics ¦ EnhancedMemo ¦ EnhacedMemoFunction ¦

procedure Timer1Timer(Sender: TObject);

Timer1 ¦ Timer1.2 ¦ HowListIn ¦

 

 

OpenHELP: ProcOpenHelp

OpenHelp — beginners code examples

 

var

    hS: string;

Procedure TForm1.OpenHelp(hLIN: string);

  var

    S: string;

    I: Integer;

    A: Integer;

begin

    {AlwaysAutoOpensByDefaultWebBrowser — directly orNewTab:}

    S:= ExtractFilePath(Application.ExeName);

    for I:= 1 to Length(S) do

    if S[I]='\' then S[I]:= '/';

    S:= 'file:///' + S + 'Help/HTM/DELPHI4Webber22HELP.htm';

    hS:= S;

    A:= ShellExecute(

    0,

    'open',

    PChar(S),

    nil,

    nil,

    SW_SHOW);

    if A>32

    {ShellExecuteFunctionSucceded:}

    then

    begin

    Label1.Caption:= 'Found';

    if Pos('#',hLIN)= 1 then

    ClipBoard.AsText:= S + hLIN else

    ClipBoard.AsText:= S + '#SetPersonalBrowser';

    end

    else Label1.Caption:= 'notFound';

    {AsKnown: NewTabsAutoOpenOnlyFromDefaultWebBrowser.}

    {ThatIs: TheWindowsSelected/Set»OpenHtmWith..».}

    {WeCANopenOtherBrowsersThough — and retrieveTheirFocus

     — usingClipBoardForAnAppendedLink: F6(NewTab)¦Ctrl+V.}

    {All—exceptGoogleChrome—showF6response¦24Feb2022Test.}

end;{endOpenHelp}

 

OPTION:

 

var

    hS: string;

 

Sometimes in Delphi4Coding we want a variable (here a string type hS) to preserve a value outside an actual (nearest coming) procedure. Declaring a var clause and its variable is typically realized as above — before any actual procedure. But it must be remembered that THAT variable — in the Delphi Program CPU code reading order — is recognized ONLY AFTER the var declaration. Never before.

 

Function

If the hLIN sring is left empty (OpenHelp, no string parameter is appended)

   a default LINK #SetPersonalBrowser is added at the end.

— When the Browser opens, it is called with keys F6, Ctrl+V, Enter.

 

In the uses clause section, OpenHelp is declared with a string parameter prefined as empty;

 

    Procedure OpenHelp(hLIN: string = '');

 

That means OpenHelp can be called either way OpenHelp(Text) or plain (OpenHelp) in its implementation section as declared

 

    Procedure TForm1.OpenHelp(hLIN: string);

 

Making the call to OpenHelp — then — we can (option) send any of the specific links contained in the

   DELPHI4Webber22HELP.htm help document.

— In this example, we have left the hLINK empty, conditionally adding the default link #SetPersonalBrowser.

   However:  See further (added) options on the procedure of LinkDelphiHelpHtm ¦ TheLinkISSUE.

 

 

FormCreate: ProcFormCreate

FormCreate — beginners code examples

FormCreate: initializing the program.

 

Additional example (var S: string:) — not included (here) in the actual Webber’s code:

 

       S:= ExtractFilePath(Application.ExeName);

       S:= S + 'CS2-Premium.ico';

       if FileExists(S) then

       Application.Icon.LoadFromFile(S);

 

This code overrides the manually uploaded icon property as described in TApplicationICON in DELPHI4,

   Conveniently — having a collection of free icons for personal use — we can copy icons to a project’s catalog, and from there, as above, select a specific icon on the program’s left top side — at any run time with appropriately added code.

 

Multiple program windows — identified by number

Another vital basic FormCreate code application is IF we need to keep track of several used copies of a specific program at run time. Programs has a tendency to inspire us so if proving useful — especially programs constructed for text and picture (and math, and graphs, and ..).

— A detailed description with actual Webber code is given in MultipleProgramWindows.

   FormCreate initializes the Count, and FormClose finalizes it by saving the last closed program as the one who is saving eventual data.

 

Successive positioning — if several

Another concern — not included in this Webber code tutorial — MIGHT be that program copies should be opened not oscuring each other. The simple code is (extending from MultipleProgramWindows)

   starting from NumWin = 1, and each following new same opened program window:

 

 

Left:= (Screen.Width -  Width)  div 2 + (NumWin-1)*20;

Top:=  (Screen.Height - Height) div 2 + (NumWin-1)*20;

 

 

This code  makes each new opened program window positioned 20 pixels LeftTop below the preceding.

   There is also a possible more sophisticated organization on the numper of same opened program windows. Say 1 2 3 4 5.. and No3 is closed: 1 2    4 5. A special procedure (sub procedure in FormCreate) can check the opened program’s numbers, and make adaptions for an empty number by using its empty place on a new opening (number 6 opened receive the position of No3).

 

The procedure for such a route looks like this (from an early BasicDELPHI4Text developed program)

   it is called as a subroutine in FormCreate:

 

Procedure TForm1.CheckMultiWin;

var

  T:       TStringList;

  S:       string;

  N,Z,X,C: Integer;

  PC:      PChar;

begin

       T:= TStringList.Create; T.Sorted:= True;

       NumWin:= 0; C:= 0; Z:= 1;

       PC:= StrAlloc(51);

       X:= GetWindow(Form1.Handle,GW_HwndFirst);

       try

{SKANNA AV ALLA ÖPPNA WINDOWSFÖNSTER:}

         repeat

           Inc(C); X:= GetWindow(X,GW_HwndNext);

           GetWindowText(X,PC,50);

           S:= StrPas(PC);

{INGEN FRÅN FÖRSTA:}

           if Pos(' P2 | Form1 ',S)>0 then

           begin

            Inc(NumWin);

           {Caption:= '  P2 | Form1 |  — ' }

           {           123456789012345678 :}

            Delete(S,1,18);

            T.Add(S);

{REDAN BEFINTLIGA FÖNSTERNUMMER:}

            N:= StrToInt(S) +1;

{FYLLER PÅ MED +1 EFTER SENAST HÖGSTA VÄRDE:}

            if N>Z then Z:= N;

           end;

         until(X=0)or(C>=1000);

         {ClipBoard.AsText:= IntToStr(C)|Test visar C=242 vid X=0.}

{SÄKRA FÖRST RAKA NUMRERINGEN|Om inget annat gäller:}

         NumWin:= Z;

{KOLLA OM LUCKOR FINNS I NUMRERINGEN|OmSå, ta närmast lägsta lediga:}

         for N:= 0 to T.Count-1 do

         if StrToInt(T[N])<> N+1 then

         begin

           NumWin:= N+1;

           Break;

         end;

       finally

         StrDispose(PC);

         T.Free;

       end;

       if NumWin-1>1 then MultiWin:= True else MultiWin:=False;

       {Numreringen för sista fönstret kommer att sluta på NumWin=2:

       — Första sökningen på GetWindowText(X,PC,50) ger noll eftersom första

       programfönstret ännu inte finns. Då sedan (sista) programmet avslutas,

       finns redan en förekomst, och som räknas upp internt i ifPos-blocket.}

end;{endCheckMultiWin}

 

   Be sure to have Integrated Debugging on (Tools menu, Debugger Options, General, Integrated Debugging) when (unless already familiar) dealing with loops of form Repeat and While: we amateurs have a tendency otherwise to ”HangTheProgram” — very frustrating to try to stop it from never stopping. Good Practice — for safe knowledge in How To Do It (First we test on small portions, Then we Know).

   Key Ctrl+F2 (in most cases) takes care of a Restart.

 

FormKeyUp: ProcFormKeyUp

FormKeyUp — beginners code examples

 

  KeyPreview:= True;

 

   If — as in Webber 22 — key strokes have connection to the Form where components are placed, a KeyPreviev command must be given preceding any key strike. In this case the KeyPreview command is given at first on FormCreate.

 

FormKey¦Up¦Down: »the heart of the matter» in Program Handling.

   Keying in LETTERS (or even whole words or sentences) branching to different parts of a program.

   A one strike Key — of some 80 nearest to chose among (apart from possible combinations .. S&T ..).

 

Webber22 uses the following KeyUp commands:

 

  if GetKeyState(VK_CAPITAL) <= 0 then goto Over;

..{IKeyPbelow.}

  if Key in [Ord('A')..Ord('Z')] then

..{SaveMemo1toAnyOpenRootDrive.}

  if Key = Ord('P') then

..{ExtractFilePath(Application.ExeName)ToClipBoard.}

  if Key=VK_F1 then

..{OpenhtmHELPfile.}

  if(Shift = [ssShift,ssCtrl])and(Key = Ord('W'))then

..{Webber22AlwaysTopMostWindow — toggleOnOff — good for covering AdsSpaces.}

  if(Shift=[ssCtrl,ssShift])and(Key=Ord('T'))then

..{ToggleTimer1OnOff.}

  if(Shift = [])and(Key = VK_SUBTRACT)then

..{NumPadMinus¦TogglesShiftFormImageTest.}

  if(Char(Ord(Key)-48))in['1'..'9']then

..{DisplayWEBS.}

  {Char 0  1  2  3  4  5  6  7  8  9 has ASCII code}

  {     48 49 50 51 52 53 54 55 56 57            .}

  if(Shift=[ssCtrl])and(Key=VK_RETURN)then

..{GivesWindowsFocusOnActualWebber.}

 

   There is also a general Key ENTER for activating/clicking on Button1 when Button1 is focused (dotted mark rectangle).

   In this project, also Arrows (UpDown¦Button1¦2[Hidden]) produce ComponentFocus shifts;

   Also the TAB key produces a component focus shift between Memo1 and Button1.

 

FormClose: FormClose

FormClose — beginners code examples

The FormClose procedure handles (with care) all eventual

   FreeMemory parts in use during the program session

— typically for at type TS: TStringList; with a used TS: = TStringList.Create;  a finalization in FormClose of type TS.Free;

   and some eventually saving data routines, as here simply

 

WEBS.Free;

S:= ExtractFilePath(Application.ExeName);

Memo1.Lines.SaveToFile(S + 'Memo1.txt');

 

Saving the last activated Browser data — for a convenient restart On LastUsed on next program session, has this Delphi4 code in Web22 on FormClose:

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var

   A,X,C:  Integer;

   PC:     PChar;

   T,S:    string;

   TS:     TStringList;

begin

   A:= 0;

   C:= 0;

   PC:= StrAlloc(51);

   X:= GetWindow(Form1.Handle,GW_HwndFirst);

   S:= ExtractFilePath(Application.ExeName);

   try

     repeat

       Inc(C);

       X:= GetWindow(X,GW_HwndNext);

       GetWindowText(X,PC,50);

       T:= StrPas(PC);

       if Pos(ProNAME,S)>0 then

       Inc(A);

     until (X=0)or(C>=1000);//C>1000ForPrecausion/counting¦XnormalSome200

   finally

    StrDispose(PC);

   end;

  {A är 0 för sista DelphiFönstret ¦ A=0 for lastWin.}

  {Tillägg för ev. SparaData ¦ Add for aSaveData:}

   if(A=0)and(MultiWin=False)then

   begin

     {SaveDATA:}

     TS:= TStringList.Create;

     try

       TS.Add('Test1'); //ReservedForPersonalUse

       TS.Add('Test2'); //ReservedForPersonalUse

       TS.Add('Test3'); //ReservedForPersonalUse

       if Wen > 0 then

       TS.Add(WEBS[Wen-1])

       else

       TS.Add('Webber');

     finally

       TS.SaveToFile(S + 'DATA.txt');

       TS.Free;

     end;

   end;

   WEBS.Free;

   Memo1.Lines.SaveToFile(S + 'Memo1.txt');

end;{endFormClose.}

 

Timer1: WhatDo

Timer1

FirstPart:

Timer1 performs two separate actions:

   Ctrl+Shift+T toggles Timer1 OnOff — here in ON-state indicated by the lower Label3 stripe light orange:

 

 

 

Beginning with (3) GoogleChrome, all the following 3 Browsers will open Behind — really — between Chrome and W.

[»a BackSlashReverse»].

 

 

   A Press Keys Ctrl+Shift +

KeyBoard NumberKeys (LeftTop) 1 wait .. 2 wait .. 3 wait .. 4 wait ..  (or in random order, all 4 on at end)

   opens the respectively Web Browser

   independent of the fact that Web22 is working as a back ground unfocused window:

   The Timer1On¦Ctrl+Shift+¦1234 Action opens the Browsers.

   Attempting A Second Call (Ctrl+Shift + any 1234) automatically shuts Timer1 into an OFF state.

— Why?

— Because — basic test on the Windows Focus behavior — especially GoogleChrome (this here in Windows 7 early version only) has ”focusing Issues” — ending up in an unpredictable ORDER of which Window gets Focus on Which called Number (»You don’t want to know»).

— So, (this programming author): Instead of (even) trying to tamper on that inner ordering, it is here frankly turned off — after a first StartUp call.

   Focusing on a specific browser after the first StartUp is then made FROM Web22 having Windows Focus;

— See description on WhatDo:

   Key sequences NumPad¦1234 — selecting the Browser — with Ctrl+Enter brings the actual Browser on top

— all browsers on their such a call receive immediate Windows focus — except (this testing early Google Chrome version in Windows 7): it must be clicked on to receive its normal Windows focus (The Google Chrome Windows 10 version [2021+] is free from this flaw, as tested [Jan2022+]).

 

The Action Code — the first part over cOut below makes the above described

— together with an additional »2ndCallDisclaimer» (Timer1Off) on LinkDelphiHelpHtm:

 

      ..

      {WebberIsOpen — SetFront:}

      if S <> '' then

      {Webber'sWindow@Front:}

      begin

      {UnpredictableResultsIfTimerOnAfterBrowseStart:}

      {DemandsDeeperInsightIntoWindowsForSafeResults;}

            if Timer1.Enabled then

            begin

            W:= Ord('T');

            FormKeyUp(Form1,W,[ssShift,ssCtrl]);

            {ForceTimer1Off.}

            exit;

            end;

      {2ndCalls: SetsFocusDirectly — on all except Chrome:}

         SetForeGroundWindow(H);

      {DELPHI4 cannot directly jump to Inside htmLINK:}

        if Link = '' then exit;

      end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

var

  C:    TColor;

  P:    PChar;

  W:    Word;

  label cOut;

begin

       if

       Label3.Color = $00E9E9E9 then

       Label3.Color:= $00D5E8FF;

       if GetKeyState(VK_SCROLL) > 0 then goto cOut;

       W:= Ord('0');

      {Ctrl+Shift + KeyBoardLeftTop number keys Ord('1) .. Ord('4):}

       if

       ((GetAsyncKeyState(VK_CONTROL))<> 0)

       and

       ((GetAsyncKeyState(VK_SHIFT))=-32767)

       then

       begin

         if ((GetAsyncKeyState(Ord('4')))  <> 0)

         then W:= VK_NUMPAD4 else

         if ((GetAsyncKeyState(Ord('3')))  <> 0)

         then W:= VK_NUMPAD3 else

         if ((GetAsyncKeyState(Ord('2')))  <> 0)

         then W:= VK_NUMPAD2 else

         if ((GetAsyncKeyState(Ord('1')))  <> 0)

         then W:= VK_NUMPAD1;

 

         if W<>Ord('0') then

         begin

           FormKeyUp(Form1,W,[]);

           W:= VK_RETURN;

           FormKeyUp(Form1,W,[ssCtrl]);

         end;

         exit;

       end else exit;

       {Shift¦-32767 Ctrl¦<>0 .. Keys.}

(*...*)

 cOut:

(*...*)

{°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o·°ºO.o:}

{Tansferred 12Mar2022FromD4Test2022Unit4 r1751}

{CheckActiveProgram'sClassName — Ctrl+W |OnOff:}

        C:= RGB(245,245,245);

        begin

             P:=StrAlloc(50+1);

          try

              GetClassName(GetForegroundWindow,P,50);

              Label1.Caption:= StrPas(P);

              if GetAsyncKeyState(VK_SHIFT)=-32767

              then

              ClipBoard.AsText:= Label1.Caption;

              if

              Label1.Color=C then

              Label1.Color:=RGB(240,220,200) else

              Label1.Color:=C;

          finally

              StrDispose(P);

          end;

        end;

end;{endTimer1}

Timer1.2: Timer1

SecondPart:

The second Timer1 part — from cOut above — uses an additional Scroll-LOCK Key ON-state to keep distance to the first part:

   This Second Part Action function is detailed in HowListIn:

— collection of the Browser’s actual Windows Class names used for calling them up programmatically with Windows API functions.

 

 

 

Webber22 — see HowListIN

Collecting Windows data — to ClipBoard

 

DisplayWEBS:

Webber22

Text on Form: volatile

Text on Image: permanent

 

DELPHI4 Windows API programming Proof, Example and Demonstration

From CLASSIC WINDOWS API to »New Microsoft API» Windows 8¦10

— Mar2022:  The World must RISE to a new level of understanding The Value of — knowledge. OhPlease.

 

 

 

 

As we know of through DELPHI4 Programming Windows API help system information:

   FORMS and IMAGES and LABELS have a writable Canvas property: can be engrossed on;

   But ONLY Images and Labels have their written text/Graphics preserved intact;

   Text written directly on a Form’s Canvas becomes erased when covered by another window.

   But THAT property does NOT apply to Windows versions Windows 8 and Windows 10 (TestJan2022+).

   Apparently The New Microsoft Enterprise (some 2015+) has made (further) API changes.

— As Delphi4 Windows programmers, we should be aware of such differences — otherwise causing great confusion and disappointment on a preserved and perfectly solid classic programming platform.

TextOnFormIm: DisplayWEBS

 

 

 

Up to Windows7: Direct text on Form, with another top window passing over it, wipes the Form written text out. If same text is written on a Form overlayed Image, the text is preserved. These basic Windows API properties are vital in understanding how to — successfully — program image handling with graphics and their routines in Delphi4. The later Windows 8¦10 point is: [vital] parts of Windows API are lost — and will contribute to confusion in terms of exact relatable Windows API programming details. New Microsoft Enterprise apparently takes no responsibility in such matters: destruction of human property, apparently using it for Trafficking on a New Design Only: Not one word HumanRight. Not a spell. Not a sound:

— New Microsoft Enterprise Business did NOT create Windows API. Not Homey. Not Garagey. Not Beddy. Humanity made it. All of them [The Bill Gates Era]. Perfect Assembly. Say.

   The Human MIND of — associative — possibilities was EXPANDED: extended.

   THEN — oh mama — came a PRICK claiming »usability copyright» — supported by Paid Jurisdictional Bitches underlining The Lawful Part in The Prick — starting a TRAFFICKING:

   Taking advantage of Humanity’s New discovered need to Shit More Broadly, making changes, taking a Pay, and also taking a Command: ”restart your computer or we will do it for you”. Come again. ”.. the foundation of freedom, justice and peace in the world”. United Nations. Say again. Come again. Conditions were Better in 1311.

 

FormImFunction: TextOnFormIm

The TextFormImage Webber22 TESTING FUNCTION

 

   Key NumpadMinus — VK_SUBTRACT — (NoShiftKey) toggles a TestFlag On/off;

   The TestFlag connects to a TCanvas variable (T);

   TestFlagON selects Image1.Canvas;

   TestFlagOff  selects Form1.Canvas;

   On the selcted canvas is written ot the collected Web Browsers by a TextOut command.

TheWEBScode: FormImFunction

The DisplayWEBS Delphi4 code:

 

Procedure TForm1.DisplayWEBS;

 var

  B,X,Y: Integer;

  T:     TCanvas;

 begin

  X:= 215;

  Y:= Form1.Button1.Top + 5;

  if TestFlag then

  T:= Image1.Canvas else

  T:= Form1.Canvas;

         if not TestFlag then

         Form1.Refresh;//OtherwiseTextOutOnFormerShortForm.

        {DisplayWEBS:}

         with T do

         //with Form1.Image1.Canvas do

         //with Form1.Canvas do

         begin

           Brush.Color:= clBtnFace;

           Font.Name:= 'Tahoma';

           Font.Size:= 7;

           Font.Style:= [];

           for B:= 1 to WebCount do

           begin

             if LasWeb = WEBS.Strings[B-1] then

             Font.Color:= clPurple else

             Font.Color:= clBlack;

             TextOut(X,Y+15*(B-1),

             IntToStr(B)+'.   '+

             WEBS.Strings[B-1]);

           end;

           Font.Name:= 'Times New Roman';

           Font.Size:= 25;

           Font.Style:= [];

           Font.Color:= clWhite;

           TextOut(5,

           BH + 5,'winhelp32.exe');

         end;

end;{endDisplayWEBS}

KeyExeFormIm: TheWSEBScode

Key Executing code on FormKeyUp:

 

procedure TForm1.FormKeyUp(Sender: TObject;

var Key: Word; Shift: TShiftState);

  var

  B: Boolean;

  A: Integer;

  S: string;

begin

  {TestingFormImageConditionsOnDisplayWEBS:}

  if(Shift = [])and(Key = VK_SUBTRACT)then

  begin

      if

      TestFlag = False then

      begin

      TestFlag:= True;

      Label1.Font.Color:= clPurple;

      Image1.Visible:= True;

      end

      else

      begin

      TestFlag:= False;

      Label1.Font.Color:= clBlack;

      Image1.Visible:= False;

      end;

      exit;

  end;

EnterWEBS: KeyExeFormIm

iW = 720 a constant declared in the interface section (after the uses clause);

 

const

  BH      = 40;

  iW      = 720;

:

Key ENTER Executing code — Button1 connected:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

   {Image1|OnFormCreate:}

   {Image1.Canvas.Brush.Color:= clBtnFace;

    Image1.Canvas.FillRect(ClientRect);}

   {FirstIm1WidthOnFormCreate|FinalSize=iW¦Then:}

   Form1.Width:= iW;

   {FormWidthErasesPreviousIm1Status:}

   {AfterForm1ExtendedWidth|RetrieveIm1Face:}

   Image1.Canvas.FillRect(ClientRect);

   {OtherwiseMissingEndIm1FillColor.}

   {The Passage illustrates the fundamental difficulty

    in using an Image Directly on a Form: the successful

    method for an Image to respond on metric changes

    is to put it on a Panel with AlignClient. Then Image

    follows Panel metrics — with intact ImageColor

    — because a Panel (it leaves Im Intact) has no Canvas

    — as Forms and Images have.

       See further application here in DisplayWEBS.}

   DisplayWEBS;

end;

WorstCase: EnterWEBS

WorstCaseExample: A person develops a WindowsProgram in Windows 10: Unaware of the Trap, possibly testing »everything seems OK here», running the program on a classic Windows API: — IT didn’t work at all. At worst. »I hate IT».

— Working on a Tampered perfectly functional classic knowledge foundation, The Person got deluded bu a mean Emperor, who claims the opposite.

— Apparently only on that foundation: Business without care of developed knowledge IS a destructor inside humanity. Tell me I’m wrong. Show examples.

   You know how it is in computer programmng: LOOSE one single itty bitty tiny 1 or 0 — and the whole system becomes compromised. No breaks.

 

Memo1Activation: WorstCase

Memo1Activation

In Button1Click procedure is added the Memo1 activation part:

 

   {ActivateMemo1:}

   Memo1.Left:= 505;

   Memo1.Width:= 200;

   Memo1.Visible:= True;

   Memo1.SetFocus;

 

with its manually written text in the Memo1.txt file

 

 

transferred to Form1 on FormCreate

 

procedure TForm1.FormCreate(Sender: TObject);

var

   A,X,C:   Integer;

   PC:       PChar;

   S:        string;

begin

   S:= ExtractFilePath(Application.ExeName) + 'Memo1.txt';

   if FileExists(S) then

   Memo1.Lines.LoadFromFile(S) else

   Label1.Caption:= 'Memo1.text ¦ fileNotFound';

end;

 

as (after a first Enter¦Button1Click)

 

 

Shifting to Button1Focus — dotted rectangle — when Memo1 is not focused can be made by the ArrowUp key.

 

 

We use it when testing with NumapMinus — Image1¦OnOff — Label1¦Purple¦Black — with consecutive Enter in regaining the WebberTextList.

Memo1Purpose: Memo1Activation

Memo1 Purpose :

   A simple »short NotePad» for the different Webbers General Task ¦ or other:

   a TAB key (or ArrowRight) gives FOCUS to Memo1 — general simple text functions integrated.

   On FormClose whaever is written in memo1 is saved back:

 

procedure TForm1.FormClose(Sender: TObject;

var Action: TCloseAction);

var

   S: string;

begin

   S:= ExtractFilePath(Application.ExeName);

   Memo1.Lines.SaveToFile(S + 'Memo1.txt');

end;

 

All Memo1 properties — Font¦Size¦Color, Memo1BackgroundColor — are set from Object Inspector’s menu.

The size has been tested out by several programming runs with appropriate metric settings.

 

 

LinkDelphiHELP: ProcLink ¦ TheLinkISSUE

LinkDelphiHelpHtm — beginners code examples

— This Delphi4 procedure in Webber22 is a copy  (adapted) from an earlier (2011) Delphi project.

   The uses and impementation secions declarations

 

    Procedure        LinkDelphiHelpHtm(Link: string);

    Procedure TForm1.LinkDelphiHelpHtm(Link: string);

 

connect to (an earlier) option on allowing an additional link on calling a (specific) Browser.

   It is not used (in specific) here in this Webber22 project appication — but could with additional code.

   The aim and purpåose here in Webber22 of the LinkProcess is

   Entirely (SetWebber) to serve the KeyUp command Ctrl+Enter — after selecting any of the available Webbers.

 

AS WE SEE this IS »a partly demanding affair» whereas

   we first need to scan all the open windows — in finding the actual window to focus.

 

{28Maj2011:}

Procedure TForm1.LinkDelphiHelpHtm(Link: string);

var

      W: Word;

      R: TRect;

      T: string;

      S: string;

A,Count: Integer;

      I: Integer;

      H: HWND;

{CheckIfWebbCNisON:}

{°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·:}

       Procedure GetWebberWindowsClassName;

       var

         X:  Integer;

         wP: PChar;

       begin

         Count:= 0;

         S:= '';

         X:= GetWindow(Form1.Handle,GW_HwndFirst);

         repeat

           Inc(Count);

           X:= GetWindow(X,GW_HwndNext);

           wP:=StrAlloc(50+1);

           try

            GetClassName(X,wP,50);

            S:= (StrPas(wP));

           finally

            StrDispose(wP);

           end;

           if S = WebbCN then Break else S:= '';

         until(X=0)or(Count>=1000);{or Count:»aDummy»InCaseOf}

         {MaxOpenWindowsInWindosTypically count 200-300.}

       end;{endGetWebberWindowsClassName — TestIfOpen.}

{°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·°o.·.}

      label Final;

begin with Form1 do {LinkDelphiHelpHtm}

 begin

   R.Left:= 0; {forCheckingWindowesRect — not used.}

   if WebbCN = '' then exit else

   begin

      {InsideProcedure:}

      GetWebberWindowsClassName;

   ..

 end;{endWithForm1}

end;{endLinkDelphiHelpHtm}

 

Check Unit1 in Webber22 for the rest.

— The Final section:

 

..

{======}

 Final:

{======}

   if Link = '' then

   Link:= DefLink else if Pos('#',Link) = 1 then

   Link:= Fhtm + Link;

  {Fhtm    = 'DELPHI4Webber22HELP.htm';}

  {DefLink = 'Help\HTM\' + Fhtm;}

  {DefLink = 'Help\HTM\DELPHI4Webber22HELP.htm';}

  {Add Link to ClipBoard: — Webber'sOffLINEcatalogMain:}

   S:= ExtractFilePath(Application.ExeName);

  {ActuallyCallingPosition. ExtractPath:}

       for I:= 1 to Length(S) do

       if S[I]='\' then S[I]:= '/';

       S:= 'file:///' + S + 'Help/HTM/';

       T:= S + Link;

       Label2.Caption:= T;

       ClipBoard.AsText:= T;

 end;{endWithForm1}

end;{endLinkDelphiHelpHtm}

 

TheLINKissue:

HOW TO USE IT — a simple suggestion

The LINK issue

in LinkDelphiHelpHtm and OpenHelp as well.

   There is a (somewhat sophisticated) way to take advantage of the (option) LINK string tail in calling these procedures:

   Using Memo1 as a LinkNotePad (list at the end), a simple SelectTEXT

 

LinkDelphiHelpHtm(Memo1.SelText);

 

with an accompanying Key-Press-Something will launch (any available) Browser to open on that LINK — with an additional (TAB or ) F6, Ctrl+V, Enter.

 

   But »let’s not get carried away»:

— »The Application of A Such» ”must” be »very local». Why?

   BECAUSE »complete search paths» on a Computer means — in time — we change folders, add new ones, rename old ones, organize in new ways, and so on:

   Having SET a specific search path, leading to a specific link, MIGHT »cause trouble»: ”not Found” although we KNOW it »is there somewhere».

 

   That is why in general we have Delphi4Test20xx for SUCH tasks — searching everywhere for anything.

 

— That is why a more local ”search engine”

— such as potentially Webber22 with its LinkDelphiHelpHtm(Link) and OpenHelp(LINK)

— ”must” restrict to its own folder — only (or other if so wanted: additional code):

   specific links inside The Program’s Own Manual — always a safe never changing search path.

 

Application in Webber22 — Ctrl + NumPad¦±

   Adding the following code inKeyUp

 

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

  var

..

  label Pass;

begin

  if(Shift = [ssCtrl])and(Key in [VK_ADD, VK_SUBTRACT])then

  begin

   S:= Memo1.SelText;

   if S = '' then exit;

   if Pos('#',S) <> 1 then

   begin

    S:= ('#missed.');

    goto Pass;

   end;

   case Key of

    VK_ADD:      LinkDelphiHelpHtm(S);

    VK_SUBTRACT: OpenHelp(S);

   end;{endCase}

Pass:

   Label1.Caption:= S;

   exit;

  end;

..

end;{endKeyUp}

 

   with an additional set of links added in Memo1

 

..

#content

#WhatDELPHI4

#WritingTheCode

#SavingAproject

#TheWeb22CODE

#GoogleExam

 

  and then in Memo1 selecting (Ctrl+Shift+ArrowRight) one of the listed links

 

 

   Ctrl+NumpadPlus activates a call to LinkDelphiHelpHtm(Memo1.SelText) — Webbers;

— The selected Webber

 

 

takes care of the appended full link-path in ClipBoard (LinkDelphiHelpHtm and OpenHelp), on which station is arrived at by (TAB)¦F6, Ctr’l+V, Enter:

— Consecutive calls to the same Webber on different links connects to the same one single Webber tab with alternative ClipBoard Link Contents.

 

   Ctrl+NumpadMinus activates a call to OpenHelp(Memo1.SelText) — default Browsers¦Open:

— The default Browser opens on a new tab for each new selected link with the same procedure for arriving at its station: (TAB)¦F6, Ctr’l+V, Enter;

 

 

 

What is added into Memo1 is always saved on program termination.

 

 

Continue further from

TheWeb22CODE.

 

 

 

 

The original Delphi4 help book file system [D4HBSorigin]:  See the full TheHELPfileList  in  http://www.universumshistoria.se/AAALib/DELPHI4/HTM/AD4aBegin.htm#TheHELPfileList

KNOWLEDGE FOR HUMANITY

 

THE ORIGINAL DELPHI4 HELP SYSTEM

A FINER AND MORE DETAILED KNOWLEDGE BASED HELP SYSTEM FOR PERSONAL USE AND STUDY WAS NEVER CREATED IN THE HISTORY OF HUMANITY

— Say it: You’re wrong. Show. Give examples. Share. Please. Microsoft Enterprise (2015+) enhances the potential human IQ portal. MustBuyBook.

 

Microsoft Windows before 2015:

Microsoft Windows: Roughly before/up to 2015: After

 

Placing the cursor over a keyword in writing Delphi4 code, pressing Key F1, resulted in a direct parallel opened help system window where the actual function was explained and detailed. Not also seldom with direct Delphi coding examples: Windows API Programming: creating Windows programs — for personal use: Sharing.

 

 

Now Mar2022 New Microsoft Corporation 2015+:

— say it: You’re wrong. Show. Give examples. Dazzle us.

— My say: you can’t. The concept is not even understood.

 

 

MICROSOFT COUNTERACTS AND OBSTRUCTS KNOWLEDGE — what we know unintentionally due to lack of wit

Microsoft Windows after 2015:

Microsoft Windows: Roughly after 2015 — atTest 18Beb2022: Before

 

No available ORIGINAL ADVANCED INTEGRATED access. 100% banned from Microsoft’s Enterprise Windows operating system:

   The imperative central 278 KB winhlp32.exe file was replaced by a »dummy» 10 KB ditto

informing ”no access” — with further »disinforming recommendations» — excluding the original: »no further access».

— ”Why is it impossible to get help on this program?”. See Swedish Info version below.

   Reason: The classic Windows help file system’s functionality demands an executable main winhlp32.exe file in the computer’s Windows catalog/directory. Delphi4 — and others — depended on that IT existed there: in the Windows root catalog, and no where else.

   Removing it — New Microsoft Business Enterprise — meant: banning all possible earlier references. The replaced [Windows 7] 10 KB [Windows 10] 12 KB »dummy» can NOT be removed or replaced, certified by Microsoft’s own ”Trusted Installer” — keeping all changing effort activity at safe distance.

   The only possible way of retrieving a — so Forced Microsoft Enterprise Mutilated — access is to import the HELP Book File System — along with the original 278 KB winhlp32.exe file — to a catalog/directory higher up in the Windows 10 computer’s catalog tree structure. Typically in ”my Documents”, or other appropriate.

   Creating a DeskTopIcon, the help files can now be manually accessed — but there is still The Problem of Finding The Key Words.

   Windows 10 allows nothing such in its own searching system: no word search in hlp-files. — Microsoft Windows [Explorer Search] as such does not even have a selection for searching inside specific file types. Result 18Feb2022 Windows 10 — 100% banned:

 

 

New Modern Microsoft is apparently trying to get rid of everything — except itself. Very interesting Human History. HighIQ. MustBuyBook.

 

   Apparently: Microsoft Business Enterprise have no idea of what they are doing in what branch on which universal slot. No mother god loving way: perfect knowledge exclusion.

   In TestD2 Windows 10 exposes its explicit way of treating Super Finder XT:s attempt of trying to accomplish the actual search — result from actual test Jan2022+ in Windows 10.

 

   NORMALLY from the Found posts in Delphi4Test20xx, in placing the cursor over the blue [RGB-coded] rectangle and pressing Enter, Delphi4Test20xx opens the actual file — any type, sort or kind

— except New Microsoft’s banned hlp-files.

   The New Microsoft Windows Enterprise opening process — which now calls The Dummy 10 KB New Microsoft Enterprise Windows catalog inserted winhlp32.exe file — displays

 

The Windows 7 version — around 2015

 

”Why is it impossible to get help on this program?” .. ”You can though fetch a program with which help files created in Windows help format can be shown.”. See TrishTech-quotes.

— The proposed recommendations lead to QUESTIONABLE TYPE UPDATE FILES TO A WINDOWS 10 MORE SUITABLE MICROSOFT HUMANITY CONTROLLING COMPUTER CULTURE.

   Which, of course, CAN be corrected as a faulty statement by anyone who knows BETTER on the subject than this case history collecting author: compare The Microsoft LIST.

   After The Bill Gates Microsoft, and especially after 2015: I don’t put one single atom trust in Microsoft — though I am bound to use their Windows operating system — as a purchaser of their early [highly] appreciated products.

 

The Windows 10 version

It seems you are not connected to Internet

   And who says WE would have to be connected to Internet?

    Come again.

— New Microsoft Corporation Business Enterprise has »broken the chain of command»: HumanRight. No access. Compare:

   — WHO INVITED YOU, AND WHEN DID THAT HAPPEN? Please do share:

   ADDRESSING THE INDIVIDUAL OUTSIDE AN EXPLICIT RECOGNITION OF HUMANRIGHT DEFINES EXERCISING OPPRESSION — P1 UDHR10Dec1948. Again:

   — WHO INVITED YOU, AND WHEN DID THAT HAPPEN? Please do share.

   New World Emperors. They took it — by telephone. And they sure will leave it — on the exact same rout. Say again.

 

 

FOMEM:  D4HBSorigin

”mutilated” — on what?

FORCED MICROSOFT ENTERPRISE — MUTILATED

   Content ¦ Index ¦ and search:

 

ScreenDumps from [Swedish edition] Old Classic Windows — compiled here at real time 14Mar2022 for UniverseHistory

— Super Fine Knowledge Archives, the best ever made in human history, no longer available through New Microsoft Business Enterprise 2015+

 

 

 

   By removing what the whole Classic Windows operating System — with its Help files — was built upon: the 278 KB winhlp32.exe machine file in Windows catalog — the help file search system lost its search tab:

   No available search tab.

   We can install old .hlp files and their original 278 KB winhlp32.exe file along with them in their same directory catalog. Yes. Absolutely. Thank you very much.

   But the Search tab is gone — mutilated knowledge archive: no access — because it was relying on a Windows Operating System having IT in the Windows catalog — which was removed (finally some 2015+) by New Microsoft Corporation Business Enterprise. Thank you very much.

 

MICROSOFT’S RESPONSIBILITY

KNOWLEDGE FOR HUMANITY — NOT FOR TRAFFICKING ON HUMANITY

 

A29.1. Everyone has duties to the community in which alone the free and full development of his personality is possible.

 

Cooperation. No Trafficking: No profit. Knowledge.

   HumanRight is a knowledge domain. No Shop. As is our universe: life.

— Microsoft today 2022 does not understand THAT concept: not one word HumanRight. Not a spell. Not a sound. Not even a tiny Hint.

— Say it: You’re wrong. Show. Give examples.

 

SOLUTION TO A RESTORATION OF THE ORIGINAL WINDOWS (HELP FILE SYSTEM) ON A 100% GUARANTEED HACKER FREE PERSONAL COMPUTER WORK STATION — NO INTERNET:

 

 

Microsoft: Build a Personal Knowledge Archive Computer Machine — with today’s CPU power capabilities on A classic True Windows API working system that has

   zero Internet connectivity — full free Natural Flying Eagle 100% Integrity: 100% hack free:

No Phoni, No Interneti — just peace alone only:

   Microsoft Enterprise releases it over desk, AS a classic Book Purchase along with ”Chapter Modules” containing all the Microsoft Collected Classic Windows Help file archives — purchased over desk:

— no Internet:

   A classic True Windows API working system (»Classic Windows XP ¦ 7 type») where old classic PC Magazine CD:s can be run, and other old classic Windows programs as well — even 16 (Delphi1) and old 8 bit programs. Yes.

   No Internet: guaranteed hacker free — from Microsoft Enterprise distributive Hacker Scan Service: what is guaranteed before purchase — no profiting, dear Microsoft. Just Responsibility: a Service to Humanity.

   The buyer may very well ADD ”Internet stuff” by FlashMemory imports — on a self risk basis of having ones own Classic System compromised. Yes.

   But that, again, would be no more harmful than loosing »this month’s magazine»: the store has plenty others in original:

   On ones own responsibility — there is always a back up (reserved partition) copy from where to restore the machinery, regain what was lost:

   copies of Microsoft Guaranteed Scanned Modules: classic Windows, 100% free from Internet:

   Personal Knowledge Studying Archive Culture Restored.

   Case Closed.

   Make it happen — and stop whining about ”security”. World’s Greatest Company. Show. Give examples.

 

VOT:

There Are

VOICES @INTERNET — how ReviewOldWinHelp?

Luckily — humanity cares more for knowledge archives than New Microsoft Corporation Enterprise

 

 

FIRST:

 

Internet (now early spring 2022) becomes increasingly populated with this type:

   ASSOCIATIVE INTERRUPTS — intrusions in my private research — DEMANDING CONSENT WITH EVERYTHING ELSE THAN THIS

— a simple HumanRight Recognition —

WITHOUT MY PERMISSION.

   »No Access to Site — unless consenting with: not one word HumanRight».

— Say again. Come again:

— IF YOU SERIOUSLY care about the privacy of ANYONE AT ALL, how come you make repeated interrupts in The Private sphere of concerns, unless an imperative to askfor a HumanRight recognition — without explicit permission. In Shorft:

— Who invited you, and — the most interesting — when did that happen?

   Please do share.

— I have no inducement of taking part in HUMAN TRAFFICKING: no HumanRightWord.

   No proclamation needed but this: ”I don’t give a shit”. ”I don’t care”. Fascism.

— All such AccessPrivacyDenied Internet SITES are 100% rejected in this production.

— I do not accept any kind, sort or type of fascism, whether proclaimed or not.

   IT develops by DRIFT. Never by PLAN.

— The only way to make it stop is: RELATE HumanRight. 24/7. No Breaks.

   Live. Don’t die.

TrishTechComRef:

The trischtech.com

trischtech.com/2015/12/how-to-open-hlp-winhelp-files-in-Windows-10/

has a say on how to (possibly) review the old classic Help files

(mostly familiar from Windows 3.1 and on — 1990+)

 

”But Windows 10 users have no such luck since Microsoft has decided not to offer any such option for them. And if you try to install KB917607 hotfix released for Windows 7 or 8.x on your windows 10 system, then it displays the update incompatibility message.”

   Screen dump added in the soucre, not shown here.

”If you really want to access the .HLP files on your Windows 10, then we at TrishTech.com have created a tiny utility that can extract WinHlp32.exe from KB917607 hotfix files for you”.

Source:  answers.microsoft.com/en-us//windows/forum .. ¦ can’t open .hlp files with windows 10

LastUpdated Feb2022

 

The TrishTech site — further quotes below on ”security” — has several comments from persons testifying that their approach works (and some it didn’t).

   However, the TrishTech approach is (somewhat) extensive (relative the Grasp in this production):

— Just copy any old Windows HELP files into one and the same (main) catalog — including the old original 278 KB winhlp32.exe file (further below) IN THERE. And the help files will arrive at their original — when the file at first is opened manually.

— This has been tested to work with helpfiles imported from the original DELPHI4 (freeware on CD:s from PC-magazines 1997).

 

 

From a Windows 7 version of a separate (Delphi4) Help book system

 

 

 

The best knowledge help system ever created in human history — for personal use and further development — of knowledge for all.

— Say it: You’re wrong. Show examples. Dazzle us. Internet — yes. Absolutely — WHEN I DECIDE SO.

 

The opening hlp-files — after a click on their catalog’s DeskTopIcon:

 

 

 

   Just remember this:

— Copy ALL files in an original classic help files catalog: the additional types

cfg, cnt, mst, ohc, ohi, ohp, toc (and other) are (decoding) imperative for the overall classic functionality (as experienced — otherwise — »I think we missed some part of Our Mother Ship ..»).

 

 

— WHERE?

   Where do we find this imperative 278 KB winhlp32.exe »without-it-no-honey» file?

— Ask New Microsoft ..

   No. I was just joking:

— Take mine:

 

winhlp32EXE.zip

Content:

 

 

It is added along with this Web22 in a separate WinHELP catalog:

   Use it for testing collected classic Windows Help files along with The Imperative.

   Always keep the HELP FILES along with their Mother winhlp32.exe in the same catalog.

Security:

Security problems?

 

— If The World Popular New Microsoft had less inducement for Business than Knowledge development — HumanRight — the passing Decades MIGHT have had a better resolution of NonProfiting FuckUps than the present at March2022. Might.

 

TrishTech.com mentions it:

 

”Due to some sequrity concerns related to now-very-outdated WinHelp files that usually come with .HLP file extension, Microsoft decided to pull the plug and stopped supporting these files in Windows Vista, 7, 8.x and now in Windows 10.”

:

”While this makes it very easy for you to use the older and very dated help viewer for your Windows 10 PC, you should keep in mind that this viewer could also be vulnerable to all kinds of security risks.”

:

”This is the main reason Microsoft has dropped the support for such help files. Make sure the .HLP file you open using this WinHlp32.exe viewer come from trustworthy and reliable sources.”

 

That is well said.

 

As long as an Internet Connection is Continuous, it is like having ones apartment door 100% open, just imagining it is closed With Locks and Codes and Decrypted and Super protected five (5) times around: It is just a matter of TIME before a breach appears.

 

 

— THAT TYPE OF 24/7 »We’reOpenAllTimes» — is good for SURVEILLANCE ONLY: control.

   Pull The Internet Plug out — and safety is 100%.

   No body Hacks into US when we are sitting in The Library and reading a Book.

   The Concept of ”A Hack” does not exist — there. We are free — »safe and sound».

 

So:

 

The ”security problem” is NOT a Hacker. The security problem is: Today’s Internet

— No HumanRight mentioning. Not one word. AccessDenied. Repeated PrivacyIntrusion termed ”for you safety”. Not a sound. Not a hint. Not a spell.

 

 

There is (yet in Swedish) a set of (three) examples describing how a personal individual integrity safe Internet could be organized — with practically no difference in experience continuity compared with today’s (horrible) situation in

 

EXEMPEL — privatsäker Internetanvändning

 

However: it WOULD demand a world wide cooperation OUTSIDE profiting:

— Internet for human knowledge development. Not for surveillance or profiting:

— Zero Trafficking.

— ANY intruder would be — easily — detected.

— Especially Microsoft/Google.

 

   It works exactly — exactly — as a tradition market business street BEFORE the computer age:

 

— We purchase our merchandise, pay over desk, get the receipt. Finished.

— No registration. No surveillance. No customer registration. Not one nano atom. No IP tracking possibility, no way. Just the most popular, and the most visited. Business accounting is performed as it was performed before The Registration Era.

   Freedom reenters Humanity. Tampering on personal data is highly forbidden: Trafficking. Slavery.

 

 

The classic Help file safety

 

The safety on the imported help file safety SHOULD be guaranteed 100%

   IF the imported classic Help files come from (checked) reliable sources

as in my (special) case:

   Importing old data from old computers that long ago was disconnected from Internet — and safely so will continue until their last silicon breath.

   IF it is imperative to import (any available) classic HELP files over Internet, check these with any available (reliable) virus scan tool — thoroughly — before deciding to incorporate them in already existing classic Help file catalogs.

   There is not much else we can do, on the present menu of possibilities.

   1. All down loadable parts coming from this party UniverseHistory has — so — first been checked with the (foremost) Windows 10 available scan tools — for hours — to be safe on the point that maximum safety will continue to stay — put — between US.

   2. My personal up load to my web host in its turn has (payed) tools to continually check on eventual breaches, removing all such possible intrusions on this domain.

— We nevertheless can be 100% sure as long as today’s Internet continues.

 

 

Editor14Mar2022

 

 

 

 

TheWeb22CODE: Code ¦

[DELPHI4help2022] From AD4aBegin.htm [Test2022Feb — Web22] — See also from the more General Delphi4 Help Manual in

Ad4aBegin.htm

http://www.universumshistoria.se/AAALib/DELPHI4/HTM/AD4aBegin.htm

 

FirstGeneral:

ALL BASIC VISUAL LOGICS

FIRST GENERAL

NO ABSTRACTS — if someone finds one: right me. It is all Nature:

 

 

 

 

— It’ all mathematics. Related into the last The F Word Atom.

 

Delphi4:s own Automated Priority Procedurals (D4APP)

— what Delphi4 self is AutoAdding to the code when we add components or functional commands (type, from Object Inspector by a simple Ctrl+Enter):

 

IF — IN D4APP reside any of — our own written procedurals with functions and commands (OWNP),

 

That is: CODE we write that HAS procedural connection to — procudes Results IN — any D4APP

 

such, each, and all, OWNP must be placed and — so declared — above — the D4APP.

   Here named: »a callback».

— Why? CPU-execution/DelphiCompilation reads — recognizes — procedures and functions:

   from top to bottom:

— Delphi4 reacts on a MISSED Such as:

   US trying to read next page in the book — before turning the actual side up: ”error41”.

  D4-CPU-compiled code needs a »CallBack» organization:

— »THINK — before do».

— Delphi4 does not recognize (in its compiler CPU stack) the actual procedure address

— unless it already has been »read in .. you know: Take Right at Greenland ..».

   It is as Logic and Natural as it can be. Very advanced — and fast and effective — CPU handling.

 

Note also the implementation section’s corresponding :

implementation

 

end.

   Where we (most of the time) spend our Lives (Writing Magic Windows Delphi Code ..):

 

 

 

 

   The ”TForm1.” process designation precursor

— same procedural name as in the type section (as eventually declared above D4APP):

   IT associates the (in this example) Form1 (where our components appear as Panels, Images, ..) as The Property of these main procedure formalities.

   IT IS SO LOGICALLY VISUAL AS IT CAN BE IN OUR UNIVERSE.

   IF — at any time — we are in doubt: follow Intuition — and give it a try on Delphi’s sophisticated debugger help: If Not OK, Delphi informs — giving possible hints to »PleaseDoFixBetterCode».

 

CodeWeb22:

 Web22

WRITING THE Windows API program CODE — in DELPHI4

  BEGINNERS EXAMPLE

 

 

 

 

Normally Delphi4 automatically handles the Standard Units addition in the Uses Units clause in the beginning of the program code unit: possibly except for ClipBoard routines — add unit Clipbrd — the beginner will not have much headache on this part. In simplifying the Uses Unit clause content, however, I have added my own collection of units used in the different project applications during the years when constructing the different tools used in Delphi4 for the UniverseHistory production. With these included except for database applications — they have no representation in this production — practically any text and image base programming should meet with no obstacles on the units clause part.

 

 

Uses units:

 

 

 

Delphi Standard Units are — partly somewhat — hard to find AS COLLECTED IN ONE PLACE for description. The Unit term is — also — mentioned/written sometimes on the specific explaining function articles — as for example in the ShellExecute case: the ShellAPI unit must be included in the Uses Clause — Delphi will not compile otherwise — if the ShellExecute function is expected to work. As in the main list above, ”most Standard Units” are included by explanation. If Delphi itself not automatically informs of or adds a specific Standard Unit, we must SEEK that unit manually —  be observant of the actual function IF it mentions a specific Standard Unit.

   In my case, all the usable Standard Units have been collected — for purposes of convenience also for the beginner — so we won’t have to bother on that part — we only have to write the handling code of it.

   One way to lure out which Standard Unit eventually is not needed in a specific program Unit is to inhibit it { } by a list parenthesis, then Compile by Ctrl+F9: If the Delphi4 compiler does not protest, the inhibit is validated, and we can do without it.

 

 

 

   Each new DELPHI4 project automatically adds a number of (VCL — Visual Component Library) units

 

 

— with additional DELPHI4 automatically added such, type

 

 

when (such) a component is added on The project’s Form1 Desk

 

 

from DELPHI4s component’s tools menus:

 

or as recently (5Mar2022) renamed:

 

 

 

 

 

See further detailed descriptions on the actual procedures in UNIT1 CONTENT.

   We recently (27Mar2022) adjusted the header (Window Header) by removing a leading space:

 

 

Selected parts i Webber22 (UH Jan2022+):

————————————————————————————————————————————————

Project TITLE ¦ Window Header ¦ Program TITLE ¦ DialogsShort ¦

Delphi4MarginMarkings ¦ BookMarks ¦ Indents ¦ FromHereAndFurther ¦ MoreBeginnersCodeEX ¦ BasicButtonTextOut ¦ MultipleProgramWindows ¦

————————————————————————————————————————————————

 

 

 

 

 

content: SÖK på denna sida Ctrl+F

 

 

 

DELPHI4Test2011HELP

ämnesrubriker

innehåll

          DELPHI4Webber22FebHELP

 

                                      SpecialOffLineWebb

DELPHI4Handle

COMB

COMA

ReMa

OriginalFactory

WEB22

WhatIsWebber22

HowListIn

SetPersonalBrowser

What is ”Delphi4”?

ComparingEX

WhatINFO

 

                                      WhatWebber22Do

WebberAlternative

WebMARKET

Proof

TheOrganizer

WebberExample1

WebberExample2

WebberExample3

GoogleExam

 

WritingTheCode

Delphi4DTI

StartDELPHI4

AutoSaveOFF

OnOff

TakingAcomponent

ObjectInspector

Code

Run

Stop

Finalize

 

Saving A Project

AutoSaveON

BasicDelphi4Help

SavingProjectDelphi4help

TheSEARCHtab

 

CopyDELPHI4Project

CopyingProjects

DelphiQuoteBackup

ProofPart1

 

Delphi4COPYRoutines

 

 

                                      ProjectStructure

Delphi4AttractsDevelopment

ExpRec — ExperiencedRecommendation

 

ProjectCatalogs

IfInDoubtWHERE

 

D4Hsave — DELPHI4 Help on Saving projects

 

ProjectManager

 

SaveAs

 

SaveALL

SaveSeparateCopy

SavingDialogs

 

Unit1file

SeeChange

OurProjectCatalogDirectory

Continuing

 

W7excerpt

 

TApplicationICON

WHEREareWE

SimpleTestingTutorial

TheFinalCountDown

NewOrigins

TimerWatchGuard

SelfCleaningProgram

IconSHOW

 

-----------------------------

 

ProjectTitle

WindowHeader

ProgramTITLE

DialogsShort

Delphi4MarginMarkings

BookMarks

Indents

FromHereAndFurther

 

MoreBeginnersCodeEX

BasicButtonTextOut

MultipleProgramWindows

AdDATA

TheChall

MemoEX

Alternative

HiGEP — HighGroundExperimentalPhysics

EnhancedMemo

EnhacedMemoFunction

TheWicon

 

                                      Unit1CONTENT

ProcLink

ProcDisp

ProcOpen

ProcFoC

ProcFoKu

ProcFoClo

ProcBut

ProcTim

 

FormCreate

FormKeyUp

FormClose

Timer1

Timer1.2

DisplayWEBS

TextOnFormIm

FormImFunction

TheWEBScode

KeyExeFormIm

EnterWEBS

WorstCase

Memo1Activation

Memo1Purpose

LinkDelphiHELP

                                      TheLINKissue

 

D4HBSorigin — The original Delphi4 help book file system

D4HBSoriginBef2015

D4HBSorigiAft2015

FOMEM

VOT

TrishTechComRef

Security

 

TheWeb22CODE

FirstGeneral

CodeWeb22

 

                                     

 

 

 

 

referenser

 

 

 

 

Senast uppdaterade version: 2022-08-13.

*END.

Stavningskontrollerat 2011-06-08.

 

rester

 

 

procedure TForm1.FormClick(Sender: TObject);

begin

   //halt;

   with Form1.Canvas do

   begin

    Brush.Color:= clBtnFace;

    TextOut(

    5,5,

    ExtractFilePath(Application.ExeName)

    +

    ExtractFileName(Application.ExeName)   

    )

   end;{endWithForm1 — Reflect}

end;{endFormClick}

 

   1. Create, Run, Close        ¦ additional

   2. Open, Run, Close          ¦ additional

----------------------------------------------------

   3. Open, Run, Close          ¦ no additional

----------------------------------------------------

OpenFrom FileExplorer OK?

— NO.

 

Open File

The requested file does not exist. You may create one of

the following file types instead:

  Create a new Form

  Create a new Unit

  Create a new Textfile

OK Cancel Help

 

After Export to new location:

OpenFrom FileExplorer OK?

— Yes. Ctrl+F12, Unit1; F12 (F12, F9, Alt+F4, Alt+F,X)

 

 

 

 

 

 

 

 

Noted CopyToNewProject-INTENTION in DELPHI4:

   All COPYING should be made FROM Delphi4:s own Directory tree dialog (Save Project As, Menu: File, Save ..):

   WHEN DOING SO Delphi4 copies NEVER unit-pas files — only »the Delphi4 defined imperative project files» — these grow in number as the Saving procedure proceeds (run F9 the project in-between and have File Explorer open and see the changes).

   On INCLUDING ALSO THE original Unit-pas-files as independent new Fabric project files, Delphi demands this:

   First (Ctrl+F12) Open all the project’s Unit files (their directory path is displayed in the unit’s header as the original fabric’s unit files) so they can be clicked at on their visual tabs:

   Then, for each clicked (or Ctrl+Tab) Tab, select Menu: Save As (the actual Unit in focus is already selected), press Save or key Enter;

   Repeat this rout until all the (wanted) unit files are saved as such under the new project’s fabric domain (have File Explorer open and see the changes).

 

 

Copy-manually-by File Explorer arrives at the same end station by this alternative:

 

 

 

 

 

   ReMa: All the unit-pas files are already at place by a direct File Explorer project catalog copy (See CopyDelphiProjects in Delphi’s own help text)

— but all these must be relieved of their original fabric connection

   through a ReSaving process — a little more demanding than the above from Delphi’s slightly simpler (COMA Noted):

   First: Open from Delphi4 the same project name but on its new location:

   Rename the project by Menu: File, Save Project As:

   Two versions now will bee seen for all the Delphi project files: the previous project name, and the new one, »side by side».

   Perform the same »LoadAllUnitTabs» Ctrl+F12 routine as above in the simpler direct Delphi case:

   Save the same way — with only additional difference:

   click on Yes (WHERE ARE WE) for all (wanted).

 

 

   The rest of the remaining redundant old program files we must remove/delete manually.

   On the other hand, if they remain PUT, they have no longer a meaning — for the new project name’s program coding development.

   We CAN develop a Delphi4 »ProjectSelfCleaningProgram» for that occasion only — removing all possible errors in any manual deleting process (all files with the central seven extensions are deleted if they have not the NewProgramName).

Is any of these alternatives more profitable than the other?

1. — PLANNING on moving projects between different computers: Yes. Definitely. In that case a File Explorer direct Copy is the ONLY solution — with »a stay put bonus»: The new computer copy needs no Renaming to work as an original Fabric. Delphi reads and stores Computer model in each project’s file set’s files (Delphi selected¦encrypted ones). So: Seen on another computer, Delphi has no reference other than: ”Original Fabric”.

2. — If LIBERTY is the most wanted on our Menu, also the File Explorer alternative BECOMES the most dear: we decide, not Delphi, WHERE we PUT things. THEN we make the necessary cleanup — whatever. Freedom preserved.

   The reader might have other inducements. Thank you very much for listening to this alternative.

 

 

 

 

 

 

WHEN a project once is opened in Delphi4, Delphi4 writes in IT a Project Path reference (in the .dsk file and some other, along with some computer model info).

   That means a LOCK — and a Barrier:

   The project can no longer be FileExplorer copied and/or moved AsIf DelphiLockIndependent:

   Meaning:

   A FileExplorer copy of The project can no longer be used as a first Delphi4 independent opened project for (further) individual (continued) developments.

 

 

Artist’s view of Evolution.  All DELPHI4 creations.

 

 

   Any attempt to (as uniformed) write code in such copies will generate hazard to the Delphi4 first opened Original Fabric (See proof in WatchTest):

   Writing code from an opened copy shows nothing at the opened location and its exe-program — but is transferred to the original’s Unit code — which will NOT bee seen until IT (surprisingly) is opened.

 

Knowing this basic Delphi4 system organization, we can make a new Original Fabric from parent ones in several ways, just observing how Delphi4 wants to have it:

   How to observe, preserve and break/isolate/sequest the Delphi4 Unit code connectivity.

 

 

 

 

 

 

 

 

The renaming — and reSaving — process, as begun from A previous Original Fabric, connects to what a first Delphi4 user meets when »firing up» the first Project:

— DELPHI4 prompts/guides the user with different dialogs to SAVE different parts into a specific Folder/Directory/Catalog — with options on some unique Namings [DELPHI4 uses default names otherwise type Project 1, these can be changed after hand ..].

 

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

NOTE

— opening an Exported Project — unknown to Delphi4 — directly from FileExplorer’s file post

 

 

results in this:

   Delphi4 in COMB has no previous note on a ”Project1” coming from COMA: an error appears:

   Delphi4 opens its last opened Project in COMB — and exposes this error dialog:

 

”An error appeared when the command was sent to the program”.

 

   Instead: always open a never before Delphi4 opened project from Delphi4 in its

   Ctrl+F11, Open Project (Menu, File, Open Project) dialog

— by selecting the directory from Delphi’s own directory dialog, and selecting ProjectX.dpr.

 

-----------------------------------------------------------------------------------------------------------------------------------

 

 

MEANING IN TOTAL — in DELPHI4:

 

   An Original Fabric in computer COMA exported to another computer COMB works as an independent new Original Fabric in COMB:

— IT is NOT recognized as any previous project in COMB.

   An Original Fabric in computer COMA exported to another computer COMB where the project is given a new name — Save Project As — and then imported back to computer COMA, also works as an independent new Original Fabric in COMA — same original under new project name

— with no need for resaving the original units.

   NAMELY — same end effect — in a given same computer COMA:

   Acquiring a new independent Original Fabric from an already existent in COMA

— having the old as an archive, and the new as a new original fabric on the parent’s code for further development

— demands that

   a new project name is realized  — Save Project As — and

   each unit file must be reSaved — Save as — to the actual new project’s location using the long-winded process described here in WHERE ARE WE with a

 

 

”Yes”-to-all.

   We don’t know (here) why DELPH4 has no such additional checkbox ”do that for all associated program files”. We have to select each already existent unit file and repeat the Menu: File, Save As for each one of them — if we desire a new original fabric from the old one (The Parent’s Majority Child — so: it seems that THAT inducement in present culture is less represented than expected ..) [The Girls live HandCuffed between 8-18 ..].

 

 

 

 

——————————————————————

unit Unit1;

 

interface

uses

  Unit1, Unit2, Unit5,

  Windows,Messages,SysUtils,Classes,Graphics

  Controls,Forms,Dialogs,StdCtrls;

const

  ProNAME = ' eb22  |  — ';

type

  TForm1 = class(TForm)

  Memo1: TMemo;

 

  Procedure LinkDelphiHelpHtm(Link: string);

  Procedure DisplayWEBS;

  procedure FormCreate(Sender: TObject);

  procedure FormKeyUp(Sender: TObject;

    var Key: Word; Shift: TShiftState);

  procedure Button1Click(Sender: TObject);

  procedure FormClose(Sender: TObject;

    var Action: TCloseAction);

end;

var

  Form1: TForm1;

implementation

{$R *.DFM}

{variablesGLOBALtoUnit1:}

var

 Status40:  Boolean;

 B:         string;

 TestFlag:  Boolean;

{Functions&Procedures:}

procedure TForm1.FormCreate(

Sender: TObject);

var

   A,X,C:   Integer;

   PC:      PChar;

   S:       string;

begin

  exit;

end;

{Continuing to end: Nocomments after end.}

end.

 

————————

unit Unit2;

 

interface

uses

  Clipbrd;

{GLOBALvar:}

var

  cGloB: string;

implementation

uses

  Unit1,Unit3;

end.

 

—————————————

unit Unit3;

 

interface

uses

  ShellAPI;

{GLOBALvariables:}

var

  dGloB: string;

implementation

uses

  Unit1,Unit2,Unit4,Unit5;

end.

 

————————

unit Unit4;

 

interface

uses

  Math;

{GLOBALvar:}

var

  eGloB: string;

implementation

uses

  Unit1;

end.

 

———————

unit Unit5;

 

interface

uses

  Math;

{GLOBALvar:}

 

 

implementation

uses

  Unit1,Unit4;

end.

 

 

 

 

*

 

 

DELPHI4Test2011HELP ·

 

 

√ τ π ħ ε UNICODE — ofta använda tecken i matematiska-tekniska-naturvetenskapliga beskrivningar

σ ρ ν ν π τ γ λ η ≠ √ ħ ω → ∞ ≡

Ω Φ Ψ Σ Π Ξ Λ Θ Δ  

α β γ δ ε λ θ κ π ρ τ φ ϕ σ ω ϖ ∏ √ ∑ ∂ ∆ ∫ ≤ ≈ ≥ ˂ ˃ ˂ ˃ ← ↑ → ∞ 

ϑ ζ ξ

Pilsymboler, direkt via tangentbordet: Alt+24 ↑; Alt+25 ↓; Alt+26 →; Alt+27 ←; Alt+22 ▬

Alt+23 ↨ — även Alt+18 ↕; Alt+29 ↔

 

 

 

 

Åter till HuvudDokumentet DELPHI4Test2011

 

 

 

DELPHI4Test2011HELP.htm

Senast uppdaterade version: 13 augusti 2022 |  01:46:52 | 2022-08-13. [GMT+1]Solar[GMT+2]Industry

*