

Freeeee
Members-
Content Count
39 -
Joined
-
Last visited
Community Reputation
1 NeutralRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
TOO ALL who answered. Remy is absolutely correct. I was trying something stupid and it didn't work. I thought if I could figure out why the IDE/Compiler got stuck there I might be able figure out how to fix it. And the problem was in the dot pfm file. which are part of the 451 lines above the problem. Thanks for pointing me to those URLz , Remy. They did help. Thanks everyone. I'll refrain from stupid questions... well.... I'll Try to refrain from stupid questions in the future. I've noticed that the Format the code option gives you a kind of Ominous warning. When some one asks you "do you 'Really' want to do this?" it made me think.."hmmm .... maybe not.'
-
code was from ? 2000,. Worked then. There wasn't a reserved word "Result" so you used the function name at the end of the code set equal to whatever variable you were using to get the results. Function doSomething: Integer; var X : integer begin X := code to do something; doSomething := X; end.
-
Yes, I am running MSDos, AND Window XP And Window 10 and my game machine is a Win 11. Emulators are great, if you can remember which system your in. but I don't like side kick at all.
-
thanks Remy agrees that I've screwed up something higher up in the code so the compiler is confused. I'm still 're-' Learning. 🙂
-
Hi the function worked perfectly in Turbo Pascal when I first wrote it. then you used the name of the function to return the value. and Yes I could use Result rather than function name. but the question was why is the compiler finding these errors (that are not errors). Why did this function Pass in 2 other Units but not this one.
-
Is there some reason for using Non-Static as opposed to Active or Dynamic when talking about classes? What I'm understanding is any Procedure code generated from the Tform by some action (like a mouse clik) is in the TForm class. so as long as you do ALL of your coding inside one of those procedures you don't have to qualify back to the TForm. But if you call something like a WriteRecord procedure that was NOT generated by an action in./of/on the form you do have to qualify because you;ve gone outsife of the scope of the TForm class. or are the nuances ?? like hierarchy rules. Is it "You know when your outside of the class scope when you have to qualify". or is there an easier way?
-
thank you Remy the errors are E2023 Function needs result type at line 415 (415:10) there - is - a" : LongInt; " after the closing paren E2029 Declaration expected but '(' found at line 415 (415:22) that's the opening paren for Mo, yr: LongInt E2003 Undeclared identifier: 'Mo" at line 417 (417:11) Mo was declared in the input args E2993 Undeclared identifier: DaysInMonth at line 418(418:22) ??? It's the name of the function. I already admitted that Delphi has better date routines. and I wrote this routine in turbo pascal before Delphi. That's beside the point. I want to know WHY the compiler accepts the routine without error in at least two other UNITS earlier but NOT THIS ONE? the above errors don't mention 'duplicate function ; or anything that indicate that's true. they are all about the way it's written. Is there some major flaw in the code above the routine that confuses the compiler so badly it starts flagging errors where there are none?? By the way, Why would I need to qualify a variable on a form when it's the ONLY form in the program? example ( ABCycle.Visible ) is a E2003 - but if I put in ( Form5.ABCycle.Visible ) in the code it's accepted. And Form5 IS the only form in this particular program Same program as the DaysInMonth problem
-
I tried the test Unit but It recompiled without errors. and it would be the empty unit you described. one memo, 1 label 2 buttons. button 1 converts the date in the memo and moves the answer (which is days since year zero) into the label. Button two converts the days back into yyyy mm dd form and moves that back into the memo. If you used "/" as a separator there;s no change, If you used space, comma, period or letters as separators they're changed to "/" so you know it worked. ie you got back the same date. I got the idea from Microsoft. There year zero date is 01/01/1980. mine is 01/01/0000 . good in a long integer (and a 5 digit year) until 31,999/12/31. I think your right about something else going on that's confusing the compiler. The Unit it's in is quite large Over 500 lines. and there's till more code to write to get to a working program. I think what I'm going to have to do is fix the other typos and errors first and just leave this code alone hoping that eventually the compiler will accept them. I'll just comment then out to continue testing. thank for you help.
-
Thanks for replying. That was a good catch. I think i put that semicolon in trying to correct the errors My bad. Sorry. taking it out didn't change any of the four errors which start at the function label on line 415 interesting I can't cut and paste errors so I'm going to copy them E2023 Function needs result type at line 415 (415:10) E2029 Declaration expected but '(' found at line 415 (415:22) E2003 Undeclared identifier: 'Mo" at line 417 (417:11) E2993 Undeclared identifier: DaysInMonth at line 418(418:22) the function heading should be the identifier and I was under the impression that the arguments passed are placeholders for the real arguments as long as they are of the same type. LongInt in this case. I didn't use VAr in front of them because they shouldn't be modified. This worked fine in a Unit where the full routine of which this is a part was tested., aside for a label a memo box and two buttons it was the only code the test program. So I'm trying to determine why it works in one simple unit but not this one.
-
function DaysInMonth ( Mo, Yr : LongInt): LongInt; begin case Mo of 1,3,5,7,8,10,12:DaysInMonth := 31; 4,6, 9,11:DaysInMonth := 30; 2: If (Yr mod 4 = 0) and (yr mod 400 = 0) and (yr mod 100 > 0) then DaysInMonth := 29; else DaysInMonth := 28; end; end; It's based on the Gregorian calendar's rules for Leap Year. And YES I KNOW that Delphi has Date Routines that are better than anything I can write so, please spare me that critique. I want to know why the compiler rejects this with 4 errors in one Unit but accepts in a different Unit. .
-
Does anyone know of a delphi pascal handbook that would explain ALL of the objects you can put on a form. I'm looking for something along the lines of ; ==================================== This is a form; here are the features you can change, Here is how to change them, This is why you might want to change them the go onto All of the VCL objects you can put on form This is an Edit box Here are all of he features about it that you can taylor. Hear is what each one of them do. Here are the reserved word you use to modify the behavior Here are 3 examples oh how you might us an Edit box. This is a Label. There are several types These are the features you can modify. Here's How to modify then. This is why you might want to modify them. Here are three non-trivail examples of how you use them. as you went along you could report "This is the same feature as on a Memo box., pg 54. It should of course, be indexed Too The book Dephi Programming for beginners by Yuriy Kalmykov was good but it only touched on a few things And no, the docs on the embarkadaro web site are not adequate UNLESS you already KNOW all of the above. I m kind of surprised that someone hasn't already written some thing like this. Even the Intel docs on programming in assmebler show each op code and what it does. and how the registers work together. SI, DI and Cx dome to mind.
-
thanks didn't know that. but... it's about time. Some "Old" ideas are still valid and worthwhile.
-
glad to find someone 'about' my age. Thanks.
-
Yup. That's exactly what I was asking. Thanks.,! I still use the Rand Programmer's editor. Only one I've ever used that can select, cut, copy and paste Columns of text. CTRK+O would Put you into the underlying O/S . exit would put you back into the editor where you left off. habit die hard. I can easily see how I could have caused the compiler to insert those directives. Won't hurt to remove them I'm presuming. thanks again.,
-
thanks. that helps. you put those in for specific reasons. Does the compiler or debugger put in a whole bunch (2 or 3 screen on the editor. They just showed up on units I have been working on. I guess I cliked a button some where. 😕