Jump to content

Freeeee

Members
  • Content Count

    44
  • Joined

  • Last visited

Community Reputation

1 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Freeeee

    String Grid

    never heard of either. Will look for them. Turbo pascal & Delphi was done on my own time. I was originally an Intel assembly language programmer starting back with the Z80 and 8086 . Among other titles.
  2. Freeeee

    String Grid

    thanks again!!!! 🙂 I've learned more in the 1st chapter of this book that I have in 2 months of trying to make my way thru the documentation on Embarcadaro's web page. Wifi and Ebooks on Kindle are fast.
  3. Freeeee

    String Grid

    thank You very much, Renate. Using the Info you gave me in the 1st post I did move the variables into global which made everything but the last push of the button going up, work. just as you did I used the B variable as the 'special case' and the whole thing worked fine. putting variables in the PFR file didn't occur to me. It's difficult to get the IDE to load toad it. I had decided that the IDE didn't 'want' you to change that. I had been editing the text version of the Form and determined the IDE definitely does not want you 'efn' around with that. However I still find it the easiest way to line up objects on the form. but if I do eff it up, I might as well start over. I get errors that I can't fix and can't figure out why they're errors. Something about hidden variable Remy said. I find working in the IDE very strange with all of the popups right over what I'm typing. I realize that the popup are so I can seleect from them what I'm typing but I could type it faster/sooner if it wasn't in the way. and the mouse clk to remove the popup moves the damned cursor where I was typing. Like you, I read the turbo pascal and early editions of Delphi (up to 5) cover to cover . My eyesight was a lot better then and the delphi 5 paper back from SAMS if I recall correctly was huge. must weigh 4 pounds The whole concept of a local variable 'going away' when you left the called procedure was never considered. We EXPECTED and counted on that Not happening. Quite an adjustment for me . It's why I've asked two or three times now, in this forum if any one has written a Delphi Cook Book with all of the reserved words explained and used in a non-trivial way. If you know of one, please let me know. If it';s a PDF file I can read it in my browser and adjust the font so I can read it. (need at least a 16 font for me) Before I get too long winded here. Thanks again for the great examples. I will study them. and learn. I can tell that my recreation of a genealogy program I wrote in Turbo Pascal in MSDos on one 22 by 80 character screen is going to be a lot harder than I thought.
  4. Freeeee

    String Grid

  5. Freeeee

    String Grid

    Newbie exploring string grid. simple program w string grind and a button. and 3 debugging labels. grid is 5 col 20 rows expanded (testing dynamic changes) to 6 col Populated with row and column titles, then populated with test data. Wanted to have a way of 'selecting' a specific row. each button push advances to the 'next' row. supposedly saving the contents of cell[1, row] and replacing it with '***' + original string in that cell. Next button push intended to restore original string and advance to next row. code for unit attached. my comments are in the code. row one (special case) works fine except the original string is not restored to the cell. should be exactly the same string I moved to a local variable 'S' on the 1st button bush but doesn't appear to be. I've read you can change the color of a single Cell in a string but haven't been able to find where I read it. changing the color would actually be better if it's possible. Unit2.pas
  6. Freeeee

    what wrong with this function?

    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.'
  7. Freeeee

    what wrong with this function?

    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.
  8. Freeeee

    what wrong with this function?

    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.
  9. Freeeee

    what wrong with this function?

    thanks Remy agrees that I've screwed up something higher up in the code so the compiler is confused. I'm still 're-' Learning. 🙂
  10. Freeeee

    what wrong with this function?

    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.
  11. Freeeee

    what wrong with this function?

    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?
  12. Freeeee

    what wrong with this function?

    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
  13. Freeeee

    what wrong with this function?

    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.
  14. Freeeee

    what wrong with this function?

    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.
  15. 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. .
×