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:
— 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 ..).
↑Exported
FactoryCopies — products — function as separate independent individual domains — for independent development [Principia].
↑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:
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 Delphi4 — which cuts all source references to the now empty D — and 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.
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?
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.
• 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.
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.
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?
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.
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
• 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
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:
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.
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
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
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.
— 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
”.. 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 .. ).
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 ..
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.
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».
— 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.
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
—————————————————————————————————
• 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)
• 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
(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.
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
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.
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.
SOME MORE BEGINNERS CODE ..
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
• 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
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]
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.
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.
UNIT1 CONTENT
PROCEDURES ADDED
from coding a program handler
Procedure LinkDelphiHelpHtm(Link:
string);
DisplayWEBS ¦ TextOnFormIm ¦ FormImFunction ¦ TheWEBScode ¦ KeyExeFormIm ¦ EnterWEBS ¦ WorstCase ¦
Procedure OpenHelp(hLIN:
string = '');
OpenHELP ¦
from tools menu/Object Inspector
procedure FormCreate(Sender:
TObject);
procedure FormKeyUp(Sender:
TObject; var Key: Word; Shift: TShiftState);
procedure FormClose(Sender:
TObject; var Action: TCloseAction);
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
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}
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
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: 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.
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.
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 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
http://www.universumshistoria.se/AAALib/DELPHI4/HTM/AD4aBegin.htm
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».
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 ¦
————————————————————————————————————————————————
DELPHI4Test2011HELP
ämnesrubriker
innehåll
ExpRec
— ExperiencedRecommendation
D4Hsave
— DELPHI4 Help on Saving projects
-----------------------------
HiGEP
— HighGroundExperimentalPhysics
D4HBSorigin — The original Delphi4 help
book file system
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 ↔
DELPHI4Test2011HELP.htm
Senast uppdaterade version: 13 augusti
2022 | 01:46:52 | 2022-08-13. [GMT+1]Solar[GMT+2]Industry
*