Connie McBride
Members-
Content Count
23 -
Joined
-
Last visited
Community Reputation
0 NeutralRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Can't install custom bpl Delphi 13 32 bit
Connie McBride replied to Connie McBride's topic in Delphi IDE and APIs
it does. and thank you for the reminder. the problem was with that original 64bit (that I had built by accident, meant to do a 32 bit build) got into a directory on my path, and then got added to the required list for my package. saw it trying to load it in with procmon, removed it, and now all good (crossing fingers) -
Can't install custom bpl Delphi 13 32 bit
Connie McBride replied to Connie McBride's topic in Delphi IDE and APIs
Update. I tracked the initial problem to a 64 bit compiled bpl in my path. progress. I no linger get build errors, or the '% not a valid application' what I AM getting however, is this: any tips on tracking this one down? based on a suggestion, I ran the BPL through the dependency checker, and it looks like everything loaded: -
Can't install custom bpl Delphi 13 32 bit
Connie McBride replied to Connie McBride's topic in Delphi IDE and APIs
update. I restarted the entire project by creating a new project in delphi 13. copied the 'contains' list from Delphi12 version into the delphi 13 version. changed the options to : now it compiles again, but still says : -
Can't install custom bpl Delphi 13 32 bit
Connie McBride replied to Connie McBride's topic in Delphi IDE and APIs
this is what I have set my options to. all the source code for my custom components is in the ..\Source directory when I do a build now, I am getting this: so now I'm not getting as far as before, where it did the build, but couldn't install... -
Can't install custom bpl Delphi 13 32 bit
Connie McBride replied to Connie McBride's topic in Delphi IDE and APIs
I don't use optsets, I found them to just not behaving like I wanted them to. I have it dumping the dcu's and copied all my forms into a single directory for the version, and up until now (been doing delphi since delphi 2.0), I have had no issues. -
I have an install that has very few 3rd party libraries -Devexpress - imageen - JCL - CodeSite - FastReports I also have custom components that have been developed over the years. I deleted all the DCUs, then rebuilt the BPL using Window32 as the target platform. I cannot get the BPL installed. the identical package builds and installs just fine in delph12.3, I didn't change anything (other than copy the code into a separate directory, and change the paths for Delphi 13 version) all output paths are relative, but the library path is not. it is set to exactly match the output directory of the package. I have installed the latest patch. I have made sure the output path of my package is the first path listed in the delphi library path. none of my custom components have been built for win64 (at this time) Any ideas where I should look next? at one point, I removed all the uses files and all the 'register' statements, and got it to 'install' an empty BPL, but as soon as I re-introduced a 'register' statement, it blew up.
-
Retrieving outlook contact emails
Connie McBride replied to Connie McBride's topic in Algorithms, Data Structures and Class Design
right. except the users want to click a button and access the addresses live. Wouldn't exporting them require an extra step for the user? this code is helpful. does this part: Set oExUser = oAE.GetExchangeUser limit the email addresses to those part of the exchange (in house, vs the contacts, who is their list of clients)? -
Retrieving outlook contact emails
Connie McBride replied to Connie McBride's topic in Algorithms, Data Structures and Class Design
I've gotten partway there, but not quite. the contacts are coming back as nothing, though I am able to put the names into the list. my code: // Add the names of all address entries for the specified Book into AddrList procedure TContactOutlook.GetAddresses(Book: string; AddrList: TStrings); var i: Integer; EmailAddress: string; NameSpace: OLEVariant; aClass : integer; aName : string; addList: AddressList; addrLists: AddressLists; addrEntries : AddressEntries; addrEntry : addressEntry; Contacts: OLEVariant; Contact: ContactItem; grpName : string; j : integer; aLine : string; begin Screen.Cursor := crHourGlass; if not FOutlookActive then StartOutlook; AddrList.Clear; // Access the MAPI namespace NameSpace := FOutlookApp.GetNamespace('MAPI'); addrLists := IUnknown(NameSpace.AddressLists) as AddressLists; for i := 1 to addrLists.Count do begin grpName := addrLists.Item(i).Name; if grpName = book then begin // Cycle through all address entries and add the name of each one to AddrList addList := addrLists.Item(i); if assigned(addList.AddressEntries) then begin addrEntries := addList.AddressEntries; contacts := addList.GetContactsFolder; if not varIsClear(contacts) then //this is never set to anything begin // Cycle through all address entries and add the name of each one to AddrList for j := 1 to Contacts.Items.count do begin contact := IUnknown(contacts.items(j)) as ContactItem; aClass := contact.Class_; aName := contact.FullName; if aClass <> 69 then begin emailAddress := contact.Email1Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; emailAddress := contact.email2Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; emailAddress := contact.email3Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; end; end; end; for j := 1 to addrEntries.Count do begin addrEntry := addrEntries.Item(j); if assigned(addrEntry) then begin aName := addrEntry.Name; contact := addrEntry.GetContact;//this also never returns anything if not varIsClear(contact) then begin aClass := contact.Class_; aName := contact.FullName; if aClass <> 69 then begin emailAddress := contact.Email1Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; emailAddress := contact.email2Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; emailAddress := contact.email3Address; if (emailAddress <> '') then begin aLine := contact.FullName + '<' + emailAddress + '>'; if addrList.IndexOf(aLine) = -1 then AddrList.Add(aLine); end; end; end else if addrList.indexOf(aName) = -1 then addrList.Add(aName); end; end; end; end; end; Screen.Cursor := crDefault; if debugOn then addrList.SaveTofile('address.txt'); end; -
Retrieving outlook contact emails
Connie McBride posted a topic in Algorithms, Data Structures and Class Design
I'm trying to figure out how to retrieve the contacts from outlook from a specific list. for example, I have been able to get the address lists: and now I want to select one of those items (offline global address list, for instance) and get all the contacts/emails from that specific list. I am having no luck working that part out. any help? -
I had to do a work around, where I store it, then clear the field, post the record, edit the record, reset the value, and post it a second time. I did not post to the quality portal, because I couldn't figure out how to do a test case.
-
I have this statement in my code, but it doesn't always post to the dataset. no sql statement is generated - but only sometimes. 1) the reg_value is always changed in this procedure. 2) the procedure is called in hundreds of places. 3) the procedure works in most cases, not in others. 4) I recently updated from delphi 12.1 to delphi 12.2, and it used to work all the time. I am trying to figure out what changed that would cause it to NOT post the record. the code: aStream.Position := 0; tBlobField(dmCommon.tblGridIniREG_VALUE).LoadFromStream(aStream); freeAndNil(aStream); dmCommon.tblGridIni.Post;---> no SQL statement is generated. nothing is seen through the tracers (sql profiler or firedac trace) this same code works in Delphi 12.1, no issue. the structure: all fields are filled in with values. the issue happens when trying to update. adding new records is fine. doing an Can't include sample data, because it seems unprintable characters are part of it I am saving the grid settings from a devexpress grid by writing to a memory stream and loading it to the varchar(max) field. The problem isn't inherently devexpress, the same version of devexpress works in delphi 12.1. tracing deep into the code, it is returning that there is no change to the reg_value field, so it isn't creating the update statement. Any ideas which flag needs to be unset (or set)? cached updates is not in use.
-
that's probably it, but weird that it didn't yack at that point. (so, a typo) thanks
-
weird issue. I added a watch to my watch list: and instead of a string value, I am getting the component properties or something: my settings: my visualizers: this is pretty useless to me currently. how do I fix it?
-
Error : constant expression violates subrange bounds
Connie McBride replied to Connie McBride's topic in RTL and Delphi Object Pascal
because the library was built to run in delphi11, where cw_usedefault was defined as a dword. that constant changed in delphi12, where it is now an integer -
Error : constant expression violates subrange bounds
Connie McBride replied to Connie McBride's topic in RTL and Delphi Object Pascal
I changed the variable in the code to be an integer vs a dword, and now it works. but heads up to anyone who runs into this.
![Delphi-PRAXiS [en]](https://en.delphipraxis.net/uploads/monthly_2018_12/logo.png.be76d93fcd709295cb24de51900e5888.png)