Sign in Join
Wiki copytemporary

IDE Development/ko: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: IDE Development/ko

OldNewLine
1+This page contains notes for lazarus core developers about ongoing development.
2+
3+# Multi form properties / using DataModules from other forms in the designer
4+
5+Note: This paragraph is referenced by [[Lazarus 0.9.26 release notes]] and [[Lazarus 0.9.28 release notes]] and [[Lazarus 0.9.30 release notes]] and [[Lazarus 1.0 release notes]] and [[Lazarus 1.2.0 release notes]].
6+
7+## 요약
8+
9+This feature allows to use components of other designer forms. A common example is to use the TDataSource on a DataModule for the DataSource property of a db control. Designer forms can only reference each other if they have a CreateForm statement in the lpr file (Project Options / Forms).
10+
11+## 진행중
12+
13+- Manual referencing via source code works.
14+- TPersistentPropertyEditor.GetValues - List all possible values. Check for class compatibility and if the target form is listed in the CreateForm statements of the lpr file and if the target unit does not belong to a package that will conflict if used.
15+- TPersistentPropertyEditor.GetValue - Show component path
16+- TPersistentPropertyEditor.SetValue - search the component via the given path
17+- When component is deleted, the property must be set to nil - This is not the job of the IDE, but should be achieved by the normal TComponent FreeNotification feature. Maybe eventually a check could be added, if this is implemented properly and force a nil on error.
18+- When a component is renamed the property does not need to be updated, because the form is open and use the pointer not the name. But the designer must be flagged 'modified', because the lfm has changed. See below.
19+- When reference form is opened, then target forms are opened too.
20+- When target form is closed, then only the designer is closed. The component is kept hidden.
21+- When all referring forms are closed/hidden, the hidden component will be automatically freed.
22+- Circle dependencies are allowed.
23+- When referenced component is renamed, the using units must be set modified.
24+- When referenced component is deleted, the using units must be set modified.
25+- Opening a unit now checks if designer is already created
26+- Reopen/Revert a form - all connected forms are now closed
27+
28+## 해야할일
29+
30+- Allow to connect to forms, that are used in the uses section. Technically there is *no* connection between the uses section and the form streaming, because form streaming uses global variables. But the IDE must somehow find the referenced form. Without the uses section the IDE must in worst case search and read every reachable lfm file on disk. So the uses section is a good compromise between speed and flexibility.
31+
32+# 번역, i18n, lrt files, po files
33+
34+## 요약
35+
36+프로젝트에 자동으로 .po 파일을 생성하고 업데이트하는 기능을 추가합니다.
37+
38+## 진행중
39+
40+- Dialog options for project/package to enable i18n
41+- Collect TTranslateStrings from RTTI while designer form writing and writing them to lrt file.
42+- Copying new strings from rst and lrt files to a single .po file for each project
43+- load the .po files
44+- Delete unused strings from the .po file of package/projects
45+- Update translated .po files, similar to the updatepofiles tool.
46+
47+## 해야할일
48+
49+- Copying new strings from rst and lrt files to a single .po file for each package (implemented, need dialog option to change po filename or need agreedment to use same name of package)
50+- Collect all .po files of project and all used packages into a directory. This directory can then be used by the project to load the strings at runtime. And installers can copy the content.
51+- standardize filenames and path, so that loading the translations at runtime is possible without writing code.
52+
53+# Frames
54+
55+## 요약
56+
57+Frames are special child forms. The goal is to edit them like forms in the IDE designer, and to use them as components on designer forms.
58+
59+## 진행중
60+
61+compile lazarus clean with passing **-dEnableTFrame** (not necessary starting from svn release 16909)
62+
63+- Manually creating via source
64+- gtk1, gtk2, qt, win32/win64
65+- Create a new frame
66+- Open a frame in the designer
67+- Save a frame
68+- Close a frame
69+- Revert a frame
70+- Design a frame (adding, selecting, moving controls, ...)
71+- Opening a nested frame
72+- Opening a nested frame with ancestors
73+- Support for the inline keyword for lfm and lrs streams.
74+- Add a frame to a form, add unit to uses section, package to project dependencies
75+ - Auto opening frame if not yet loaded
76+- Close a frame that is currently used by a nested frame
77+- Close a form with an embedded frame
78+- Save a form with an embedded frame
79+- Delete a frame embedded in a form
80+- Inherited nested Components (Components with the frame as Owner and not the Form)
81+ - Show inherited nested components properties in OI
82+ - Forbid deleting nested inherited components
83+ - Forbid renaming nested inherited components
84+ - Show inherited nested components events in OI as ClassName.MethodName
85+ - When dblclick on inherited nested components events in OI create an event with the following code: Frame1.FrameResize(Sender);
86+ - When Ctrl+Click on inherited nested components events in OI jump to inherited code.
87+ - show nested components in OI component tree
88+ - Write nested component to stream
89+- Forbid putting a component onto a nested frame, because TWriter does not support that.
90+- Revert a form with an embedded frame
91+
92+## 해야할일
93+
94+- Propagate changes of ancestor to nested controls
95+- Tutorial
96+- Documentation
97+- Update
98+
99+# VFI - Visual Form Inheritance
100+
101+## 요약
102+
103+Forms can inherit from other forms. The .lfm streams of ancestors are read/applied before the current lfm. The .lfm of the descendant is the difference between ancestor and current state. The IDE allows to open and edit inherited forms. VFI does not only apply to TForm, but TDataModule, TFrame and any registered base designer class. For the full features compile with -dEnableTFrame.
104+
105+## 진행중
106+
107+- find ancestor unit, lfm and class
108+- automatically open ancestor form hidden in background
109+- open descendant and read ancestor lfm first
110+- show hidden ancestor form
111+- hide ancestor form
112+- automatically close hidden ancestor form if not needed anymore
113+- create new ancestor form via 'File / New ... / Inherited Items'
114+- forbid deleting inherited components
115+- forbid renaming inherited components
116+
117+## 해야할일
118+
119+- inherited events (partially working)
120+- apply changes of ancestor to descendants when both are open
121+- Tutorial
122+- Documentation
123+
124+# Create auto generated files in the output directory
125+
126+## 요약
127+
128+The IDE auto creates some files, like the .lrs files of the .lfm files. These files should be auto created in the output directory. This has the advantage that they are not in the source directory, making browsing and version control systems easier.
129+
130+## 진행중
131+
132+- Option for projects for .lrs files
133+- new projects should by default use an output directory (except for the executable/bundle)
134+- .lrs files can be created in the output directory
135+
136+## 해야할일
137+
138+- .rc file 프로젝트의 메인리소스 (version and icon)
139+- .manifest 파일
140+- 패키지 옵션
141+
142+# The jedi code formatter
143+
144+## 요약
145+
146+## 진행중
147+
148+- Pressing ctrl+D will format your source file
149+- Settings are stored and read by IDE from JCFSettings.cfg file
150+- port the jcf option dialogs
151+
152+## 해야할일
153+
154+- use jcf for indentation
155+
156+# 컴파일러 매시지 번역
157+
158+## 요약
159+
160+The IDE can only parse English compiler messages. The same for linker and make messages. It would be nice to show the translated messages. The FPC sources contain the translated texts, for example *compiler/msg/errord.msg* for german. Since FPC 2.4.0 the compiler knows the option -vq which shows the message number. This could be used to find for an English message the translation (if there is any) or from the translation back to the English one. The main problem is to distinguish compiler, linker and make messages.
161+
162+## 진행중
163+
164+- extend the TOutputFilter to search for the compiler message numbers
165+- write a parser for the compiler message table
166+- using the numbers to find out the type of message (error, fatal, hint, warning, note, ...)
167+
168+## 해야할일
169+
170+- extend the TOutputFilter to filter the compiler message numbers. Most users don't need the numbers.
171+- always passing -vq to the compiler.
172+- finding the right table. For example some quick fix items need one of the message parameters (e.g. unit bla not found). For this the text and the placeholder position is needed.
173+- using the numbers for the quick fix items
174+
175+# 디버거
176+
177+## 요약
178+
179+## 진행중
180+
181+- show breakpoints etc in asm window
182+- implement/design interface on debugger class to show/handle threads
183+- attach to process
184+
185+## 해야할일
186+
187+- implement/design interface on debuggerclass to handle os exceptions
188+- implement/design interface on debugger class to show messages
189+- implement/design interface on debugger class to show loaded modules
190+- implement debugging of forked processes
191+- implement launching process on xterm (mainly for console apps)
192+- find include files in fpc sources
193+
194+# Release Notes
195+
196+- [[Lazarus 1.4.0 release notes]]
197+- [[Lazarus 1.2.0 release notes]]
198+- [[Lazarus 1.0 release notes]]
199+- [[Lazarus 0.9.30 release notes]]
200+- [[Lazarus 0.9.28.2 release notes]]
201+- [[Lazarus 0.9.28 release notes]]
202+- [[Lazarus 0.9.26.2 release notes]]
203+- [[Lazarus 0.9.26 release notes]]
204+- [[Lazarus 0.9.24 release notes]]
205+
206+---
207+*From the Free Pascal wiki, page "IDE Development/ko", as it stood on 2016-11-10 after a change by Minias, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
208+Category: Lazarus internals/ko

Back to history