Frage : Wor mit ini Akte


Mit:
mit TINIFile.Create (ExtractPath (Form1.caption) + ' .ini')
ich möchte in arbeiten:
Verfahren TForm1.FormClose (Absender: TObject; var-Tätigkeit: TCloseAction);
Verfahren TForm1.FormCreate (Absender: TObject);

ich muss Weg erhalten, in dem Initialisierung meiner Form gespeichert. Und ich erhalte sie vom Formuntertitel.

Beispiel:  myform das Archiv ist in: C:\myform
1:
2:
3:
4:
5:
6:
7:
Funktion TForm1.ExtractPath (str: Schnur): Schnur;
Var
 P: Ganze Zahl;
anfangen
 P: =Pos („: \“, str);
 wenn P>0 dann resultieren: =Copy (str, P-1, Länge (str)) Sonst Resultat: = '';
Ende;

Antwort : Wor mit ini Akte

Ich verstehe nicht viel von, was Sie tun möchten, aber ich habe umfangreiches Werkzeugmaßeinheits,/außer Bestandteilen zu laden u. bilde Eigenschaften (Untertitelen, überprüften Status, ETC…) in den Ini Akten.

Selbst wenn Sie nicht es verwenden möchten, während es ist, bin ich sicher, dass Sie Lose Ideen hier finden.
Wenn Sie diese Maßeinheit in einem Projekt einschließen, initialisieren es automatisch eine Ini Akte, die nach der Anwendung genannt oder DLL-Name, die sie verwenden.

Alles, das Sie tun müssen, ist zu benennen
IniSaveComponnents
und
IniLoadComponnents

mit einer Reihe Bestandteilen oder Formen, die Sie handhaben möchten:

Verfahren TForm1.FormCreate (Absender: TObject);
anfangen
 IniLoadComponnents ([Selbst, edtParam1, chkOption1]); // => speichern die Form und 2 Bestandteile
Ende;

Verfahren TForm1.FormDestroy (Absender: TObject);
anfangen
 IniSaveComponnents ([Selbst, edtParam1, chkOption1]); // => speichern die Form und 2 Bestandteile
Ende;


Sie können einen zusätzlichen Abschnittparameter addieren, der dem automatischen verursachten Ini Abschnitt hinzugefügt. Das ist zu helfen, eine Spitze umzugruppieren der Schlüssel/die Werte im Ini, wenn es in vielen Formen verwendet, aber das auswirkt nicht ht, was wirklich gespeichert. Sie können einen TextOnly Booleschen Parameter nur Last/außer den Untertitelen, nicht die Werte auch hinzufügen (für ein einfaches Sprachmanagement)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
Maßeinheit IniOptions;

Schnittstelle

Gebrauch bildet, Kategorien, IniFiles, StdCtrls, ExtCtrls, Knöpfe, Rasterfelder, Kontrollen, Dialoge, Grafiken, ComCtrls, Menüs, Drehbeschleunigung;

Art
 TStringListOption= (slUpperCase);
 TStringListOptions=set von TStringListOption;

Verfahren IniOpenFile (Dateiname: String= ''; FilePath: String= ''); Überlastung;
Verfahren IniOpenFile (Fall: Ganze Zahl; FilePath: String= ''); Überlastung;
Verfahren IniCloseFile;

Verfahren IniSaveQuotedCaption (Abschnitt, Param, Rückstellung: Schnur);
Funktion IniLoadQuotedCaption (Abschnitt, Param, Rückstellung: Schnur): Schnur;

Funktion IniLoadSaveDefaultString (Abschnitt, Param, Rückstellung: Schnur): Schnur;
Funktion IniLoadSaveDefault (Abschnitt, Param, Rückstellung: Schnur): Schnur; Überlastung;
Funktion IniLoadSaveDefault (Abschnitt, Param: Schnur; Rückstellung: Ganze Zahl): Ganze Zahl; Überlastung;
Funktion IniLoadSaveDefault (Abschnitt, Param: Schnur; Rückstellung: Boolesch): Boolesch; Überlastung;
Verfahren IniLoadSaveDefaultStringList (Abschnitt, Param: Schnur; Liste: TStringList; Entscheiden: TStringListOptions= []);

Verfahren IniLoadMenu (M: TMenu);
Verfahren IniSaveMenu (M: TMenu);
Verfahren IniLoadListView (L: TListView);
Verfahren IniSaveListView (L: TListView);
Verfahren IniLoadFormPosAndSize (frm: TCustomForm);
Verfahren IniSaveFormPosAndSize (frm: TCustomForm);
Verfahren IniLoadCheckBox (chk: TCheckBox);
Verfahren IniSaveCheckBox (chk: TCheckBox);
Verfahren IniLoadRadioButton (Rb: TRadioButton);
Verfahren IniSaveRadioButton (Rb: TRadioButton);
Verfahren IniLoadCaption (lbl: TLabel);
Verfahren IniSaveCaption (lbl: TLabel);
Verfahren IniLoadText (edt: TCustomEdit);
Verfahren IniSaveText (edt: TCustomEdit);
Verfahren IniLoadRadioGroup (rg: TRadioGroup);
Verfahren IniSaveRadioGroup (rg: TRadioGroup);
Verfahren IniLoadGroupBox (GB: TGroupBox);
Verfahren IniSaveGroupBox (GB: TGroupBox);
Verfahren IniLoadComboBox (Columbium: TComboBox);
Verfahren IniSaveComboBox (Columbium: TComboBox);
{
Verfahren IniLoadSpinEdit (edt: TSpinEdit);
Verfahren IniSaveSpinEdit (edt: TSpinEdit);
}
Verfahren IniLoadButton (BTN: TButton);
Verfahren IniSaveButton (BTN: TButton);
Verfahren IniLoadSpeedButton (BTN: TSpeedButton);
Verfahren IniSaveSpeedButton (BTN: TSpeedButton);
Verfahren IniLoadFormCaption (frm: TForm);
Verfahren IniSaveFormCaption (frm: TForm);
Verfahren IniSavePanel (pnl: TPanel);
Verfahren IniLoadPanel (pnl: TPanel);
Verfahren IniSaveFrame (pnl: T-Stück);
Verfahren IniLoadFrame (pnl: T-Stück);
Verfahren IniLoadStringGrid (Rasterfeld: TStringGrid);
Verfahren IniSaveStringGrid (Rasterfeld: TStringGrid);
Verfahren IniLoadShape (SHP: TShape);
Verfahren IniLoadImage (img: TImage);
Verfahren IniSaveShape (SHP: TShape);
Verfahren IniSaveImage (img: TImage);
Verfahren IniSaveControl (c: TControl);
Verfahren IniLoadControl (c: TControl);
Verfahren IniLoadOpenDialog (DLG: TOpenDialog);
Verfahren IniSaveOpenDialog (DLG: TOpenDialog);
Verfahren IniLoadMemo (Protokoll: TMemo);
Verfahren IniSaveMemo (Protokoll: TMemo);

Verfahren SetExtendedSection (S: Schnur);
Funktion  GetExtendedSection: Schnur;
Funktion  GetTextOnly: Boolesch;
Verfahren SetTextOnly (b: Boolesch);
Funktion TranslateFormat2Text (S: Schnur): Schnur;
Funktion TranslateText2Format (S: Schnur): Schnur;

Verfahren IniSaveComponnents (Liste: Reihe von TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
Verfahren IniLoadComponnents (Liste: Reihe von TObject; Ext_Section: String= ''; TextOnly: Boolean=False);

Var
 IniFile: TIniFile;

Implementierung

Gebrauch SysUtils, untUtils, FileCtrl;

Var
 _ExtSection: String= '';
 _TextOnly: Boolean=False;

Verfahren SetExtendedSection (S: Schnur);
anfangen
 _ExtSection: =S;
Ende;

Funktion  GetExtendedSection: Schnur;
anfangen
 Resultat: =_ExtSection;
Ende;

Funktion  GetTextOnly: Boolesch;
anfangen
 Resultat: =_TextOnly;
Ende;

Verfahren SetTextOnly (b: Boolesch);
anfangen
 _TextOnly: =b;
Ende;

Funktion TranslateFormat2Text (S: Schnur): Schnur;
anfangen
 Resultat: =StringReplace (S, „% \“, #13#10, [rfReplaceAll]);
Ende;

Funktion TranslateText2Format (S: Schnur): Schnur;
anfangen
 Resultat: =StringReplace (S, #13#10, „% \“, [rfReplaceAll]);
Ende;

Verfahren IniOpenFile (Fall: Ganze Zahl; FilePath: String= '');
anfangen
 IniOpenFile (ChangeFileExt (GetModuleName (hInstance), „.INI "), FilePath);
Ende;

Verfahren IniOpenFile (Dateiname: String= ''; FilePath: String= '');
anfangen
 IniCloseFile;
 wenn FileName= '' dann Dateiname: =ChangeFileExt (GetModuleName (hInstance), „.INI "); /ChangeFileExt (ParamStr (0), „.INI ");
 wenn (FilePath<> '') dann
  anfangen
   FilePath: =IncludeTrailingBackslash (FilePath);
   wenn DirectoryExists (FilePath) dann Dateiname: =FilePath+FileName;
  Ende;
 IniFile: =TIniFile.Create (Dateiname);
Ende;

Verfahren IniCloseFile;
anfangen
 FreeAndNil (IniFile);
Ende;

Funktion IniLoadSaveDefaultString (Abschnitt, Param, Rückstellung: Schnur): Schnur;
anfangen
 Resultat: =IniLoadSaveDefault (Abschnitt, Param, Rückstellung);
Ende;

Verfahren IniLoadSaveDefaultStringList (Abschnitt, Param: Schnur; Liste: TStringList; Entscheiden: TStringListOptions= []);
Var
 I: ganze Zahl;
anfangen
 Abschnitt: =_ExtSection+Section;
 List.CommaText: =IniFile.ReadString (Abschnitt, Param, List.CommaText);
 wenn slUpperCase innen dann entscheiden
  anfangen
   List.Sorted: =False;
   für i: =0 zu List.Count-1 verzeichnen [i]: =UpperCase (Liste [i]);
   List.Sorted: =True;
  Ende;
 IniFile.WriteString (Abschnitt, Param, List.CommaText);
Ende;

Funktion IniLoadSaveDefault (Abschnitt, Param, Rückstellung: Schnur): Schnur; Überlastung;
anfangen
 Abschnitt: =_ExtSection+Section;
 Resultat: =IniFile.ReadString (Abschnitt, Param, Rückstellung);
 IniFile.WriteString (Abschnitt, Param, Resultat);
Ende;

Funktion IniLoadSaveDefault (Abschnitt, Param: Schnur; Rückstellung: Ganze Zahl): Ganze Zahl; Überlastung;
anfangen
 Abschnitt: =_ExtSection+Section;
 Resultat: =IniFile.ReadInteger (Abschnitt, Param, Rückstellung);
 IniFile.WriteInteger (Abschnitt, Param, Resultat);
Ende;

Funktion IniLoadSaveDefault (Abschnitt, Param: Schnur; Rückstellung: Boolesch): Boolesch; Überlastung;
anfangen
 Abschnitt: =_ExtSection+Section;
 Resultat: =IniFile.ReadBool (Abschnitt, Param, Rückstellung);
 IniFile.WriteBool (Abschnitt, Param, Resultat);
Ende;

Verfahren IniSaveQuotedCaption (Abschnitt, Param, Rückstellung: Schnur);
anfangen
 wenn Rückstellung der Ordnungs-(Rückstellung<>) dann zurückfallen: =AnsiQuotedStr (Rückstellung, „„");
 IniFile.WriteString (_ExtSection+Section, Param, Rückstellung);
Ende;

Funktion IniLoadQuotedCaption (Abschnitt, Param, Rückstellung: Schnur): Schnur;
Var
 P: PChar;
anfangen
 Resultat: =IniFile.ReadString (_ExtSection+Section, Param, Rückstellung);
 wenn (Länge (Resultat) >=2) und (Resultat [1] = ' „') dann
  anfangen
   P: =PChar (Resultat);
   Resultat: =AnsiExtractQuotedStr (P, „„");
  Ende;
Ende;

Verfahren IniLoadFormPosAndSize (frm: TCustomForm);
Var
 Abschnitt: Schnur;
anfangen
 Abschnitt: =_ExtSection+frm.Name;
 frm. Untertitel: =IniFile.ReadString (Abschnitt, „UNTERTITEL“, frm. Untertitel);
 wenn nicht _TextOnly dann
  anfangen
   wenn frm TForm dann TForm (frm) ist. Position: =poDesigned;
   frm. Breite: =IniFile.ReadInteger (Abschnitt, „BREITE“, frm. Breite);
   frm. Höhe: =IniFile.ReadInteger (Abschnitt, „HÖHE“, frm. Höhe);
   frm. Oberseite: =IniFile.ReadInteger (Abschnitt, „OBERSEITE“, frm. Oberseite);
   frm. Links: =IniFile.ReadInteger (Abschnitt, „VERLIESS“, frm. Links);
   frm.WindowState: =TWindowState (IniFile.ReadInteger (Abschnitt, „ZUSTAND“, ganze Zahl (frm.WindowState)));
  Ende;
Ende;

Verfahren IniSaveFormPosAndSize (frm: TCustomForm);
Var
 Abschnitt: Schnur;
anfangen
 Abschnitt: =_ExtSection+frm.Name;
 IniFile.WriteString (Abschnitt, „UNTERTITEL“, frm. Untertitel);
 wenn nicht _TextOnly dann
  anfangen
   IniFile.WriteInteger (Abschnitt, „ZUSTAND“, ganze Zahl (frm.WindowState));
   IniFile.WriteInteger (Abschnitt, „BREITE“, frm. Breite);
   IniFile.WriteInteger (Abschnitt, „HÖHE“, frm. Höhe);
   IniFile.WriteInteger (Abschnitt, „OBERSEITE“, frm. Oberseite);
   IniFile.WriteInteger (Abschnitt, „VERLIESS“, frm. Links);
  Ende;
Ende;

Verfahren IniLoadMemo (Protokoll: TMemo);
anfangen
 Protokoll. Text: =TranslateFormat2Text (IniFile.ReadString (_ExtSection+memo.Name, „TEXT“, TranslateText2Format (Protokoll. Text)));
Ende;

Verfahren IniSaveMemo (Protokoll: TMemo);
anfangen
 IniFile.WriteString (_ExtSection+memo.Name, „TEXT“, TranslateText2Format (Protokoll. Text));
Ende;

Verfahren IniLoadCheckBox (chk: TCheckBox);
anfangen
 chk. Untertitel: =IniLoadQuotedCaption (chk. Name, „UNTERTITEL“, chk. Untertitel);
 wenn nicht _TextOnly dann chk. Überprüft: =IniFile.ReadBool (_ExtSection+chk.Name, „ÜBERPRÜFTE“, chk. Überprüft);
Ende;

Verfahren IniSaveCheckBox (chk: TCheckBox);
anfangen
 IniSaveQuotedCaption (chk. Name, „UNTERTITEL“, chk. Untertitel);
 wenn nicht _TextOnly dann IniFile.WriteBool (_ExtSection+chk.Name, „ÜBERPRÜFTE“, chk. Überprüft);
Ende;

Verfahren IniLoadShape (SHP: TShape);
Var
 Abschnitt: Schnur;
anfangen
 mit SHP tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   Sichtbar: =IniFile.ReadBool (Abschnitt, „SICHTBARES“, sichtbar);
   Pen.Color: =StringToColor (IniFile.ReadString (Abschnitt, „PEN_COLOR“, ColorToString (Pen.Color)));
   Brush.Color: =StringToColor (IniFile.ReadString (Abschnitt, „BRUSH_COLOR“, ColorToString (Brush.Color)));
  Ende;
Ende;

Verfahren IniLoadImage (img: TImage);
Var
 F: Schnur;
 Abschnitt: Schnur;
anfangen
 Mit img tun
  Versuch
   Abschnitt: =_ExtSection+Name;
   Sichtbar: =IniFile.ReadBool (Abschnitt, „SICHTBARES“, sichtbar);
   Transparent: =IniFile.ReadBool (Abschnitt, „TRANSPARENTES“, transparent);
   Ausdehnung: =IniFile.ReadBool (Abschnitt, „AUSDEHNUNG“, Ausdehnung);
   F: =IniFile.ReadString (Abschnitt, „AKTE“, '');
   wenn FileExists (F) dann Picture.LoadFromFile (F);
  ausgenommen
  Ende;
Ende;

Verfahren IniSaveShape (SHP: TShape);
Var
 Abschnitt: Schnur;
anfangen
 mit SHP tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   IniFile.WriteBool (Abschnitt, „SICHTBARES“, sichtbar);
   IniFile.WriteString (Abschnitt, „PEN_COLOR“, ColorToString (Pen.Color));
   IniFile.WriteString (Abschnitt, „BRUSH_COLOR“, ColorToString (Brush.Color));
  Ende;
Ende;

Verfahren IniSaveImage (img: TImage);
Var
 Abschnitt: Schnur;
anfangen
 Mit img tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   IniFile.WriteBool (Abschnitt, „SICHTBARES“, sichtbar);
   IniFile.WriteBool (Abschnitt, „TRANSPARENTES“, transparent);
   IniFile.WriteBool (Abschnitt, „AUSDEHNUNG“, Ausdehnung);
  Ende;
Ende;

Verfahren IniLoadRadioButton (Rb: TRadioButton);
anfangen
 Rb. Untertitel: =IniLoadQuotedCaption (Rb. Name, „UNTERTITEL“, Rb. Untertitel);
 wenn nicht _TextOnly dann Rb. Überprüft: =IniFile.ReadBool (_ExtSection+rb.Name, „ÜBERPRÜFTE“, Rb. Überprüft);
Ende;

Verfahren IniSaveRadioButton (Rb: TRadioButton);
anfangen
 IniSaveQuotedCaption (Rb. Name, „UNTERTITEL“, Rb. Untertitel);
 wenn nicht _TextOnly dann IniFile.WriteBool (_ExtSection+rb.Name, „ÜBERPRÜFTE“, Rb. Überprüft);
Ende;

Verfahren IniLoadText (edt: TCustomEdit);
anfangen
 edt. Text: =IniLoadQuotedCaption (edt. Name, „TEXT“, edt. Text);
Ende;

Verfahren IniSaveText (edt: TCustomEdit);
anfangen
 IniSaveQuotedCaption (edt. Name, „TEXT“, edt. Text);
Ende;

Verfahren IniLoadCaption (lbl: TLabel);
anfangen
 lbl. Untertitel: =IniLoadQuotedCaption (lbl. Name, „UNTERTITEL“, lbl. Untertitel);
Ende;

Verfahren IniSaveCaption (lbl: TLabel);
anfangen
 IniSaveQuotedCaption (lbl. Name, „UNTERTITEL“, lbl. Untertitel);
Ende;

Verfahren IniLoadFormCaption (frm: TForm);
anfangen
 frm. Untertitel: =IniLoadQuotedCaption (frm. Name, „UNTERTITEL“, frm. Untertitel);
Ende;

Verfahren IniSaveFormCaption (frm: TForm);
anfangen
 IniSaveQuotedCaption (frm. Name, „UNTERTITEL“, frm. Untertitel);
Ende;

Verfahren IniLoadButton (BTN: TButton);
anfangen
 BTN. Untertitel: =IniLoadQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniSaveButton (BTN: TButton);
anfangen
 IniSaveQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniLoadBitButton (BTN: TBitBtn);
anfangen
 BTN. Untertitel: =IniLoadQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniSaveBitButton (BTN: TBitBtn);
anfangen
 IniSaveQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniLoadSpeedButton (BTN: TSpeedButton);
anfangen
 BTN. Untertitel: =IniLoadQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniSaveSpeedButton (BTN: TSpeedButton);
anfangen
 IniSaveQuotedCaption (BTN. Name, „UNTERTITEL“, BTN. Untertitel);
Ende;

Verfahren IniLoadRadioGroup (rg: TRadioGroup);
anfangen
 rg. Untertitel: =IniLoadQuotedCaption (rg. Name, „UNTERTITEL“, rg. Untertitel);
 wenn nicht _TextOnly dann rg.ItemIndex: =IniFile.ReadInteger (_ExtSection+rg.Name, „INDEX“, rg.ItemIndex);
Ende;

Verfahren IniSaveRadioGroup (rg: TRadioGroup);
anfangen
 IniSaveQuotedCaption (rg. Name, „UNTERTITEL“, rg. Untertitel);
 wenn nicht _TextOnly dann IniFile.WriteInteger (_ExtSection+rg.Name, „INDEX“, rg.ItemIndex);
Ende;

Verfahren IniLoadGroupBox (GB: TGroupBox);
anfangen
 GB. Untertitel: =IniLoadQuotedCaption (GB. Name, „UNTERTITEL“, GB. Untertitel);
 wenn nicht _TextOnly dann IniLoadControl (GB);
Ende;

Verfahren IniSaveGroupBox (GB: TGroupBox);
anfangen
 IniSaveQuotedCaption (GB. Name, „UNTERTITEL“, GB. Untertitel);
 wenn nicht _TextOnly dann IniSaveControl (GB);
Ende;

Verfahren IniLoadComboBox (Columbium: TComboBox);
Var
 Str: Schnur;
anfangen
 Str: =IniLoadQuotedCaption (Columbium. Name, „TEXT“, Columbium. Text);
 wenn Columbium. Style=csDropDownList dann
  anfangen
   wenn str<> '' dann cb.ItemIndex: =cb. Items.IndexOf (str) sonst cb.ItemIndex: =IniFile.ReadInteger (_ExtSection+cb.Name, „INDEX“, cb.ItemIndex);
  sonst Columbium des Endes. Text: =Str;
Ende;

Verfahren IniSaveComboBox (Columbium: TComboBox);
anfangen
 IniSaveQuotedCaption (Columbium. Name, „TEXT“, Columbium. Text);
 IniFile.WriteInteger (_ExtSection+cb.Name, „INDEX“, cb.ItemIndex);
Ende;

{$ifdef USE_SPIN_EDT}
Verfahren IniLoadSpinEdit (edt: TSpinEdit);
anfangen
 edt. Wert: =IniFile.ReadInteger (_ExtSection+edt.Name, „WERT“, edt. Wert);
Ende;

Verfahren IniSaveSpinEdit (edt: TSpinEdit);
anfangen
 IniFile.WriteInteger (_ExtSection+edt.Name, „WERT“, edt. Wert);
Ende;
{$endif}

Verfahren IniSavePanel (pnl: TPanel);
anfangen
 IniFile.WriteInteger (_ExtSection+pnl.Name, „BREITE“, pnl. Breite);
 IniFile.WriteInteger (_ExtSection+pnl.Name, „HÖHE“, pnl. Höhe);
Ende;

Verfahren IniLoadPanel (pnl: TPanel);
anfangen
 pnl. Breite: =IniFile.ReadInteger (_ExtSection+pnl.Name, „BREITE“, pnl. Breite);
 pnl. Höhe: =IniFile.ReadInteger (_ExtSection+pnl.Name, „HÖHE“, pnl. Höhe);
Ende;

Verfahren IniSaveFrame (pnl: T-Stück);
anfangen
 IniFile.WriteInteger (_ExtSection+pnl.Name, „BREITE“, pnl. Breite);
 IniFile.WriteInteger (_ExtSection+pnl.Name, „HÖHE“, pnl. Höhe);
Ende;

Verfahren IniLoadFrame (pnl: T-Stück);
anfangen
 pnl. Breite: =IniFile.ReadInteger (_ExtSection+pnl.Name, „BREITE“, pnl. Breite);
 pnl. Höhe: =IniFile.ReadInteger (_ExtSection+pnl.Name, „HÖHE“, pnl. Höhe);
Ende;

Verfahren IniLoadStringGrid (Rasterfeld: TStringGrid);
Var
 I: ganze Zahl;
 Abschnitt: Schnur;
anfangen
 Mit Rasterfeld tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   grid.ColCount: =IniFile.ReadInteger (Abschnitt, „COL_COUNT“, grid.ColCount);
   für i: =0 zu grid.ColCount-1 tun
    anfangen
     grid.ColWidths [i]: =IniFile.ReadInteger (Abschnitt, Format („COL_%d_WIDTH“, [i]), grid.ColWidths [i]);
     Rasterfeld. Zellen [i, 0]: =IniFile.ReadString (Abschnitt, Format („COL_%d_TEXT“, [i]), Rasterfeld. Zellen [i, 0]);
    Ende;
  Ende;
Ende;

Verfahren IniSaveStringGrid (Rasterfeld: TStringGrid);
Var
 I: ganze Zahl;
 Abschnitt: Schnur;
anfangen
 Mit Rasterfeld tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   IniFile.WriteInteger (Abschnitt, „COL_COUNT“, grid.ColCount);
   für i: =0 zu grid.ColCount-1 tun
    anfangen
     IniFile.WriteInteger (Abschnitt, Format („COL_%d_WIDTH“, [i]), grid.ColWidths [i]);
     IniFile.WriteString (Abschnitt, Format („COL_%d_TEXT“, [i]), Rasterfeld. Zellen [i, 0]);
    Ende;
  Ende;
Ende;

Verfahren IniLoadOpenDialog (DLG: TOpenDialog);
anfangen
 dlg.InitialDir: =IniLoadQuotedCaption (DLG. Name, „INITIAL_DIR“, dlg.InitialDir);
Ende;

Verfahren IniSaveOpenDialog (DLG: TOpenDialog);
anfangen
 IniSaveQuotedCaption (DLG. Name, „INITIAL_DIR“, dlg.InitialDir);
Ende;

Verfahren IniSaveControl (c: TControl);
anfangen
 IniFile.WriteInteger (_ExtSection+c.Name, „BREITE“, c.Width);
 IniFile.WriteInteger (_ExtSection+c.Name, „HÖHE“, c.Height);
Ende;

Verfahren IniLoadControl (c: TControl);
anfangen
 c.Width: =IniFile.ReadInteger (_ExtSection+c.Name, „BREITE“, c.Width);
 c.Height: =IniFile.ReadInteger (_ExtSection+c.Name, „HÖHE“, c.Height);
Ende;

Verfahren IniLoadListView (L: TListView);
Var
 Abschnitt: Schnur;
 I: ganze Zahl;
anfangen
 Mit L tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   für i: = 0 zu Columns.Count - 1 tun Spalten [i]. Untertitel: =IniFile.ReadString (Abschnitt, Format („COLUMN_%d“, [i]), Spalten [i]. Untertitel);
  Ende;
Ende;

Verfahren IniSaveListView (L: TListView);
Var
 Abschnitt: Schnur;
 I: ganze Zahl;
anfangen
 Mit L tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   für i: = 0 zu Columns.Count - 1 tun IniFile.WriteString (Abschnitt, Format („COLUMN_%d“, [i]), Spalten [i]. Untertitel);
  Ende;
Ende;

Verfahren IniLoadMenu (M: TMenu);
Var
 Abschnitt: Schnur;
 I: ganze Zahl;

 Verfahren IniLoadMenuItem (M: TMenuItem; Abschnitt: Schnur);
 Var
  I: ganze Zahl;
 anfangen
  Abschnitt: =Sect+'. '+M.Name;
  für i: = 0 zu M.Count - 1 tun wenn M.Items [i]. Caption'-<> 'dann
   anfangen
    M.Items [i]. Untertitel: =IniFile.ReadString (Abschnitt, M.Items [i]. Name, M.Items [i]. Untertitel);
    wenn M.Items [i]. Count>0 dann IniLoadMenuItem (M.Items [i], Abschnitt);
   Ende;
 Ende;
anfangen
 Mit M tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   für i: = 0 zu M.Items.Count - 1 tun wenn Einzelteile [i]. Caption'-<> 'dann
    anfangen
     Einzelteile [i]. Untertitel: =IniFile.ReadString (Abschnitt, Einzelteile [i]. Name, Einzelteile [i]. Untertitel);
    Ende;
  Ende;
Ende;

Verfahren IniSaveMenu (M: TMenu);
Var
 Abschnitt: Schnur;
 I: ganze Zahl;
 Verfahren IniSaveMenuItem (M: TMenuItem; Abschnitt: Schnur);
 Var
  I: ganze Zahl;
 anfangen
  Abschnitt: =Sect+'. '+M.Name;
  für i: = 0 zu M.Count - 1 tun wenn M.Items [i]. Caption'-<> 'dann
   anfangen
    IniFile.WriteString (Abschnitt, M.Items [i]. Name, M.Items [i]. Untertitel);
    wenn M.Items [i]. Count>0 dann IniSaveMenuItem (M.Items [i], Abschnitt);
   Ende;
 Ende;
anfangen
 Mit M tun
  anfangen
   Abschnitt: =_ExtSection+Name;
   für i: = 0 zu M.Items.Count - 1 tun wenn Einzelteile [i]. Caption'-<> 'dann
    anfangen
     IniFile.WriteString (Abschnitt, Einzelteile [i]. Name, Einzelteile [i]. Untertitel);
     wenn Einzelteile [i]. Count>0 dann IniSaveMenuItem (Einzelteile [i], _ExtSection);
    Ende;
  Ende;
Ende;

Verfahren IniSaveComponnents (Liste: Reihe von TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
var
 I: ganze Zahl;
 SaveExtSect: Schnur;
 SaveTextOnly: Boolesch;
anfangen
 SaveExtSect: =_ExtSection;
 _ExtSection: =Ext_Section;
 SaveTextOnly: =_TextOnly;
 _TextOnly: =TextOnly;
 für i: =Low (Liste) zur Höhe (Liste) tun, wenn es dann zugewiesen (Liste [i])
  Versuch
   wenn Liste [i] TMemo dann        IniSaveMemo ist          (TMemo        (Liste [i])) Sonst
   wenn Liste [i] TListView dann    IniSaveListView ist      (TListView    (Liste [i])) Sonst
   wenn Liste [i] TMenu dann        IniSaveMenu ist          (TMenu        (Liste [i])) Sonst
   wenn Liste [i] TCustomForm dann  IniSaveFormPosAndSize ist (TCustomForm  (Liste [i])) Sonst
   wenn Liste [i] TRadioGroup dann  IniSaveRadioGroup ist    (TRadioGroup  (Liste [i])) Sonst
   wenn Liste [i] TRadioButton dann IniSaveRadioButton ist   (TRadioButton (Liste [i])) Sonst
   wenn Liste [i] TCustomEdit dann  IniSaveText ist          (TCustomEdit  (Liste [i])) Sonst
   wenn Liste [i] TCheckBox dann    IniSaveCheckBox ist      (TCheckBox    (Liste [i])) Sonst
   wenn Liste [i] TComboBox dann    IniSaveComboBox ist      (TComboBox    (Liste [i])) Sonst
{$ifdef USE_SPIN_EDT}
   wenn Liste [i] TSpinEdit dann    IniSaveSpinEdit ist  	(TSpinEdit    (Liste [i])) Sonst
{$endif}
   wenn Liste [i] TLabel dann       IniSaveCaption ist  	(TLabel       (Liste [i])) Sonst
   wenn Liste [i] TBitBtn dann      IniSaveBitButton ist  	(TBitBtn      (Liste [i])) Sonst
   wenn Liste [i] TButton dann      IniSaveButton ist  	(TButton      (Liste [i])) Sonst
   wenn Liste [i] TSpeedButton dann IniSaveSpeedButton ist  	(TSpeedButton (Liste [i])) Sonst
   wenn Liste [i] TPanel dann       IniSavePanel ist 	(TPanel       (Liste [i])) Sonst
   wenn Liste [i] T-Stück dann       IniSaveFrame ist 	(T-Stück       (Liste [i])) Sonst
   wenn Liste [i] TStringGrid dann  IniSaveStringGrid ist    (TStringGrid  (Liste [i])) Sonst
   wenn Liste [i] TOpenDialog dann  IniSaveOpenDialog ist    (TOpenDialog  (Liste [i])) Sonst
   wenn Liste [i] TShape dann       IniSaveShape ist         (TShape       (Liste [i])) Sonst
   wenn Liste [i] TImage dann       IniSaveImage ist         (TImage       (Liste [i])) Sonst
   wenn Liste [i] TGroupBox dann    IniSaveGroupBox ist      (TGroupBox    (Liste [i])) Sonst
   wenn Liste [i] TControl dann     IniSaveControl ist       (TControl     (Liste [i])) Sonst
   wenn Liste [i] TComponent dann   ShowMessage ist ('Erreur außer „+TComponent (Liste [i]). Name+“: '+List [i] .ClassName)
    Sonst ShowMessage ('Erreur speichern '+List [i] .ClassName);
  ausgenommen
   auf E: Ausnahme tun ShowMessage (Format („Störungs-Einsparung %s: %s'#13'% s“, [TComponent (Liste [i]). Name, E.ClassName, E.Message]));
  Ende;
 _ExtSection: =SaveExtSect;
 _TextOnly: =SaveTextOnly;
Ende;

Verfahren IniLoadComponnents (Liste: Reihe von TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
var
 I: ganze Zahl;
 SaveExtSect: Schnur;
 SaveTextOnly: Boolesch;
anfangen
 SaveExtSect: =_ExtSection;
 _ExtSection: =Ext_Section;
 SaveTextOnly: =_TextOnly;
 _TextOnly: =TextOnly;
 für i: =Low (Liste) zur Höhe (Liste) tun, wenn es dann zugewiesen (Liste [i])
  Versuch
   wenn Liste [i] TMemo dann        IniLoadMemo ist          (TMemo        (Liste [i])) Sonst
   wenn Liste [i] TListView dann    IniLoadListView ist      (TListView    (Liste [i])) Sonst
   wenn Liste [i] TMenu dann        IniLoadMenu ist          (TMenu        (Liste [i])) Sonst
   wenn Liste [i] TCustomForm dann  IniLoadFormPosAndSize ist (TCustomForm  (Liste [i])) Sonst
   wenn Liste [i] TRadioGroup dann  IniLoadRadioGroup ist    (TRadioGroup  (Liste [i])) Sonst
   wenn Liste [i] TRadioButton dann IniLoadRadioButton ist   (TRadioButton (Liste [i])) Sonst
   wenn Liste [i] TCustomEdit dann  IniLoadText ist          (TCustomEdit  (Liste [i])) Sonst
   wenn Liste [i] TCheckBox dann    IniLoadCheckBox ist      (TCheckBox    (Liste [i])) Sonst
   wenn Liste [i] TComboBox dann    IniLoadComboBox ist      (TComboBox    (Liste [i])) Sonst
{$ifdef USE_SPIN_EDT}
   wenn Liste [i] TSpinEdit dann    IniLoadSpinEdit ist  	(TSpinEdit    (Liste [i])) Sonst
{$endif}
   wenn Liste [i] TLabel dann       IniLoadCaption ist  	(TLabel       (Liste [i])) Sonst
   wenn Liste [i] TBitBtn dann      IniLoadBitButton ist  	(TBitBtn      (Liste [i])) Sonst
   wenn Liste [i] TButton dann      IniLoadButton ist  	(TButton      (Liste [i])) Sonst
   wenn Liste [i] TSpeedButton dann IniLoadSpeedButton ist  	(TSpeedButton (Liste [i])) Sonst
   wenn Liste [i] TPanel dann       IniLoadPanel ist 	(TPanel       (Liste [i])) Sonst
   wenn Liste [i] T-Stück dann       IniLoadFrame ist 	(T-Stück       (Liste [i])) Sonst
   wenn Liste [i] TStringGrid dann  IniLoadStringGrid ist    (TStringGrid  (Liste [i])) Sonst
   wenn Liste [i] TOpenDialog dann  IniLoadOpenDialog ist    (TOpenDialog  (Liste [i])) Sonst
   wenn Liste [i] TShape dann       IniLoadShape ist         (TShape       (Liste [i])) Sonst
   wenn Liste [i] TImage dann       IniLoadImage ist         (TImage       (Liste [i])) Sonst
   wenn Liste [i] TGroupBox dann    IniLoadGroupBox ist      (TGroupBox    (Liste [i])) Sonst
   wenn Liste [i] TControl dann     IniLoadControl ist       (TControl     (Liste [i])) Sonst
   wenn Liste [i] TComponent dann   ShowMessage ist ('Erreur Last „+TComponent (Liste [i]). Name+“: '+List [i] .ClassName) sonst
    ShowMessage ('Erreur Last '+List [i] .ClassName);
  ausgenommen
   auf E: Ausnahme tun ShowMessage (Format („Störungs-Laden %s: %s'#13'% s“, [TComponent (Liste [i]). Name, E.ClassName, E.Message]));
  Ende;
 _ExtSection: =SaveExtSect;
 _TextOnly: =SaveTextOnly;
Ende;

Initialisierung
 IniFile: =nil;
 IniOpenFile;
Vollendung
 IniCloseFile;
Ende.
Weitere Lösungen  
 
programming4us programming4us