我在delphi中做了一個簡單的表單設計器,在窗體上拖放一個按鈕,然後繪製它,但事情是我不能保存/加載這個項目,因爲我不知道該怎麼做,反正有我可以將其保存到.rc文件並從那裏加載它?表單設計器保存並加載
回答
這取決於你如何編程你的表單設計師。在Delphi設計器中創建的表單中,所有組件(和子組件)都是從TForm.Components數組屬性引用的。所有的控件在TForm.Controls數組屬性中也被引用(如果你刪除一個容器控件,它的所有子控件也會被銷燬)。
如果您已遵循該模式,您只需監視TForm.Components數組的添加(可能使用覆蓋的TForm.Notification方法)並使用此數據來構建持久表單的文件。
Delphi將表單佈局存儲在* .dfm文件中。您可以使用它的結構來保存您的項目。文件是文本的,可供人類閱讀。解析文件就像一條一條線一樣地分析文件並不難。如果您需要更多幫助,請提出要求。
如果您只想保存您在設計師設計的窗體,請使用TFileStream等功能在用戶保存時創建RC文件。您可能更適合使用自己的表單文件格式,並可選擇導出爲RC文件,因爲RC文件並非真正用於存儲您可能需要的任何設計時間信息。
問題是,我不知道該怎麼做,我該怎麼做才能獲得新創建的控件?和他們的大小?我將數據保存到文件沒有問題,但問題是如何生成此數據 – killercode 2010-09-20 09:26:55
實際問題是您的問題沒有提供關於您如何製作此設計器的足夠信息,您如何跟蹤有關信息您正在創建的控件等。例如,聽起來您只是創建控件並將它們放置在表單上,而沒有任何方式跟蹤您正在創建的內容。這聽起來不太有效。你想要做的是打破你的問題,使它們更具體,然後我們可以給你更好的答案。 – GrandmasterB 2010-09-20 17:54:07
VCL包含使用其內置DFM支持的方法。在the Delphi 2009 documentation for ObjectBinaryToText
有一個樣本;我想這也適用於D7。並且IIRC在D5幫助中已經有ComponentToString
的代碼片段 - 搜索ObjectBinaryToText
。
還有對稱函數 - ObjectTextToBinary。在D7幫助中都有一個全功能的轉換樣本。 – 2010-09-20 16:51:06
你可以使用類似delphi .DFM的東西。計算所有對象,然後讀取它們的屬性並將它們寫入文件。示例代碼:
For i:0 To Form1.ComponentsCount-1 Do Begin
// Read Component Attributes And Write Them In Your Format
End;
ty,現在我知道該怎麼做:) – killercode 2010-10-10 15:05:11
- 1. 加載並保存列表
- 2. C#設置加載並保存
- 3. 設置ko只在加載時計算並保存
- 4. 保存並加載單個值,iPhone
- 5. 保存並加載菜單狀態c#
- 6. iOS文本編輯器 - 保存/加載數據模型設計?
- 7. PHP加載預先保存的表單
- 8. Anglesharp IElement保存並加載
- 9. AutoCompleteCustomSource保存並加載
- 10. 保存並加載從jPBC
- 11. 保存並加載GUI-tkinter
- 12. 保存並加載高分
- 13. MFC。保存並加載CMFCRibbonRichEditCtrl
- 14. GamePlayKit GKObstacleGraph保存並加載
- 15. 保存並加載UIImageView
- 16. 保存並加載FlannBasedMatcher
- 17. C#保存並加載所有表單元素?
- 18. 運行時設計 - 存儲和加載表單佈局(遞歸?)
- 19. MVVM WPF保存和加載用戶設置設計模式
- 20. 保存和加載div位置 - 縮放並保存加載div位置加載
- 21. 在表單加載事件中加載保存的XML文件
- 22. XAML設計器未加載
- 23. 在Pyside中加載一個簡單的Qt設計器表格
- 24. WPF列表視圖,加載,保存並添加
- 25. 設計模式保存/加載對象以各種格式
- 26. 「加載格式保存數據」的設計模式
- 27. 保存和加載多個標籤的設計模式/框架
- 28. vC++表單設計器
- 29. 簡單TListView保存並加載文件(僅保存列字符串值)
- 30. 批處理文件:保存並加載
它不是德爾福的事情,它從德爾福項目總獨立的,即時消息使我的歐文的表單設計器,是阿貝爾形式保存爲rc文件,在任何C++或C項目中使用它或者甚至ASM 德爾福沒有任何關係,只是編程語言即時通訊使用 – killercode 2010-09-20 06:16:23
我意識到你正在爲其他東西建立窗體設計器。我建議您將文件保存爲像dephis * .dfm文件那樣的結構。您在應用程序中使用該文件來保存/加載表單。在保存時,您可以保存* .dfm和任何其他文件類型。 – 2010-09-20 06:23:29