-
Content Count
882 -
Joined
-
Last visited
-
Days Won
7
Everything posted by Stano
-
Problems with Delphi class structure / visibility
Stano replied to Willicious's topic in Delphi IDE and APIs
I recommend that you visualise the whole situation. That is the most important thing to do. This will help you to understand the problem. Since you can't do it in your head, and neither can I, you have to sketch it out. Paper is inappropriate for this task. The best I know is the DIA program. It's not finished and it's already dead. It does its job more than well. I'm confident that you will move forward with this technique. I personally use it to visualize problems: DIA: DB bindings, Classes: dependencies (links), their structure - as needed Word, text editor Excel FreeMind -
Problems with Delphi class structure / visibility
Stano replied to Willicious's topic in Delphi IDE and APIs
I was very struck by this line. Why do you have retyping there? What happens if fSpawnIntervalChanges) is not TReplayChangeSpawnInterval? Also, I don't like the comparison character = there These are very gross, severe errors in the code!!! And do see my signature! -
I know that. My post was a reaction and Fr0sT.Brutal
-
I don't know if that's still the case. When I bought Adon(?) for FrireDAC, the supplier wrote to me: Professional has everything as higher versions. Adon only unlocks access to multiple access functions.
-
I have three very similar classes. For one is an announcement: Unsorted classes -> TTableGroup is not sorted This is not true. I don't see a reason for it and I can't find a cause. When sorted, it looks like this: TTableGroup = class(TVstTableData) strict private FcbxFilterByCountry: TAdvComboBox; FFieldFilterByCountry: TList<TField>; FFreeMember: TFreeMember; FGroupData: PTableData; FMemberData: PTableData; FMemberID: TList<Integer>; FShowDates: TAdvOfficeCheckBox; procedure FilterByCountryChange(Sender: TObject); procedure GetComponents(const Form: TForm); procedure GetFMemberIsInGroup; protected strict protected FMissingMember: TList<PVirtualNode>; FqryFilterByCountry: TFDQuery; FQryIns: TFDQuery; procedure CreateSQL; override; procedure FillFilterByCountry; procedure SetParams; virtual; abstract; protected procedure GetForm; procedure SetEvents; procedure SetMemberInGroupData(const I, PKeys: Integer; const MemberData: PTableData); procedure SetVst; procedure ShowDatesClick(Sender: TObject); procedure VstChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure VstCompareNodes(Sender: TBaseVirtualTree; Node1, Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer); procedure VstDragAllowed(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); procedure VstDragDrop(Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState; Pt: TPoint; var Effect: Integer; Mode: TDropMode); procedure VstDragOver(Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); procedure VstFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure VstGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer); procedure VstGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string); procedure VstIncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const SearchText: string; var Result: Integer); procedure VstInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); public constructor Create(const ANavigator: TjstFDNavigator); override; destructor Destroy; override; procedure FillVst; override; property FreeMember: TFreeMember read FFreeMember write FFreeMember; end It's created protected there, which I don't want. The whole unit is attached RelationTree.pas
-
I've already found the bug. I had the word protected after the procedure declaration. On one line.
-
Can't point 2.1 be replaced by overwriting the field size in the table? I didn't have a problem with it.
-
You are not alone in this. I've been able to afford to replace the FireDAC on my 2 small projects.
-
FireDAC has always been part of the ver. Pro. But with the limitations already mentioned here: Local DB only. Sometimes one could buy access to servers. Price > 600€ no source code If you don't need the above, you've won. Otherwise just a 3rd party solution. DevArt is not expensive. But it means reworking everything. It doesn't offer nearly the capabilities that FireDAC has. Of course, it depends on whether you've used them. Asking 2,500€ for server access to DB with the understanding that we'll get a bunch of, for you and me, useless stuff is not worth commenting on.
-
For fun. Completely off topic. Those ISO were invented so we couldn't compete in the western market. Supposedly. Is that true? The story is real. Siemens was offering measuring equipment to a chemical company. Company: we would like to buy it from you, but we can't. S: gone? Company: you don't meet the ISO standard S: they went home and worked hard to meet ISO
-
Based on my experience, many years back, ISO... quality improvement is just generating piles of paper. The more the better. A manufacturing customer told me: If the worker did everything the way it is required so: he will do nothing, he will just write something down I'd be bankrupt in no time. I have a batch of 10 pieces and one is defective. I have to throw away all 10 pieces Maybe that has changed.
-
Please. Pokusy.delphilsp.json
-
Has e.g. CrossTable et al. It was the reason for my purchase
-
Looking for RpShell, RpTable, RpDefine, RpBase, RpSystem
Stano replied to georges pletinckx's topic in Windows API
Rave was once part of Delphi. Just like FR is now. I don't remember the years. -
Looking for RpShell, RpTable, RpDefine, RpBase, RpSystem
Stano replied to georges pletinckx's topic in Windows API
Wouldn't you consider creating press reports in Fast Report? -
I dynamically generate components. Rendering was very slow. I managed to solve it. I asked on forum.delphi.cz. I didn't get an answer. So I ask here This is interesting. I used: the ScrollBox on form on it TAdvSmoothPanel - it has a canvas. I draw the lines now panels on it, on which I store the generated components The rendering is thus instantaneous. Without those panels it was for a maximum number of components with a time of ~12-13 sec. Now I estimate 1-1.5 sec Why is that?
-
I finally found the cause. It's TCurvyPanel. If I replace it with another panel, it's lightning fast.
-
I copied the files to the pitch. I only made the necessary editing. No matter what I do, I get almost no responses. Could the fact that it's a subform in the project have something to do with this? On the pitch the main form.
-
I'll try it tomorrow. If I have a long time, I'll make a sample application. I've tried all sorts of things. Always with the same result.
-
The form doesn't do anything. You just have to create the components and place them as needed. If I have any unnecessary functions left in there, ignore them. I did, the time is minimum! For me the difference is >10 sec.
-
I'm not talking about creating components. Those are already created before the actual display/rendering. I'm only talking about rendering. Put your components on the ScrollBox and then on the panels. You'll see the difference.
-
Yes. But I don't understand the second part of the answer. I don't need to address it because 1.5 seconds is about nothing.
-
I edited it, but didn't try. Now you open it. Do internetu.rar
-
Replace them with classic components if you feel like it. Open dfm as text. Replace all TjstAdvPanel with TPanel and the others needed. TAdvOfficeCheckBox.... You can also draw it with ScrollBox. Then open the form. You'll need to confirm everything. That's the fastest way I know. I'll take a look here tomorrow.