Fråga : Wor med ini sparar


Med:
med TINIFile.Create (ExtractPath (Form1.caption) + ' .ini')
jag skulle något liknande för att fungera i:
tillvägagångssätt TForm1.FormClose (avsändare: TObject; var-handling: TCloseAction);
tillvägagångssätt TForm1.FormCreate (avsändare: TObject);

jag behöver att få banan var initialisering av mitt bildar lagras. Och jag får den från bilda förser med text.

Exempel:  myform arkivera lokaliseras i: C:\myform
1:
2:
3:
4:
5:
6:
7:
Fungera TForm1.ExtractPath (Str: Stränga): Stränga;
Var
 P: Heltal;
börja
 P: =Pos (”: \”, Str);
 om P>0 resulterar därefter: =Copy (Str, P-1, längd (Str)) Annat resultat: = '';
avsluta;

Svar : Wor med ini sparar

Jag förstår inte mycket av vad du önskar att göra, men jag har ett omfattande att bearbeta enheten för att ladda/räddningdelar & bildar rekvisita (förser med text, kontrollerat status, etc.…), i Ini sparar.

Om även du inte önskar att använda den, som den är, I-förmiddagen sure du ska fyndraddaidéer här.
När du inkluderar denna enhet i en projektera, den initialiserar automatiskt en Ini sparar namngett efter den kända applikationen eller dllen som använder den.

Allt som du måste att göra, är till appellen
IniSaveComponnents
och
IniLoadComponnents

med en samling av delar eller bildar att du önskar att klara av:

tillvägagångssätt TForm1.FormCreate (avsändare: TObject);
börja
 IniLoadComponnents ([själven, edtParam1, chkOption1]); // =>räddning bilda och 2 delar
avsluta;

tillvägagångssätt TForm1.FormDestroy (avsändare: TObject);
börja
 IniSaveComponnents ([själven, edtParam1, chkOption1]); // =>räddning bilda och 2 delar
avsluta;


Du kan tillfoga ett extra delar upp parametern som ska tillfogas till den automatiska Inien delar upp skapat. Det är att hjälpa att regroup a bet det nyckel-/värderar i Inien, om använt i många bildar, men det får effekt inte vad lagras egentligen. Du kan också tillfoga en TextOnly som boolean att ladda för parameter endast/den räddningen förser med text, inte värderar (för en enkel språkledning)
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:
36:
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:
enhet IniOptions;

ha kontakt

Bruk bildar, klassificerar, IniFiles, StdCtrls, ExtCtrls, knäppas, raster, kontrollerar, dialoger, diagram, ComCtrls, menyer, snurrande;

Typ
 TStringListOption= (slUpperCase);
 TStringListOptions=set av TStringListOption;

tillvägagångssätt IniOpenFile (FileName: String= ''; FilePath: String= ''); överbelastning;
tillvägagångssätt IniOpenFile (anföra som exempel: Heltal; FilePath: String= ''); överbelastning;
tillvägagångssätt IniCloseFile;

tillvägagångssätt IniSaveQuotedCaption (dela upp, paramen, standard: Stränga);
fungera IniLoadQuotedCaption (dela upp, paramen, standard: Stränga): Stränga;

fungera IniLoadSaveDefaultString (dela upp, paramen, standard: Stränga): Stränga;
fungera IniLoadSaveDefault (dela upp, paramen, standard: Stränga): Stränga; överbelastning;
fungera IniLoadSaveDefault (dela upp, paramen: Stränga; Standard: Heltal): Heltal; överbelastning;
fungera IniLoadSaveDefault (dela upp, paramen: Stränga; Standard: Boolean): Boolean; överbelastning;
tillvägagångssätt IniLoadSaveDefaultStringList (dela upp, paramen: Stränga; Lista: TStringList; Opt: TStringListOptions= []);

tillvägagångssätt IniLoadMenu (M: TMenu);
tillvägagångssätt IniSaveMenu (M: TMenu);
tillvägagångssätt IniLoadListView (L: TListView);
tillvägagångssätt IniSaveListView (L: TListView);
tillvägagångssätt IniLoadFormPosAndSize (frm: TCustomForm);
tillvägagångssätt IniSaveFormPosAndSize (frm: TCustomForm);
tillvägagångssätt IniLoadCheckBox (chk: TCheckBox);
tillvägagångssätt IniSaveCheckBox (chk: TCheckBox);
tillvägagångssätt IniLoadRadioButton (rb: TRadioButton);
tillvägagångssätt IniSaveRadioButton (rb: TRadioButton);
tillvägagångssätt IniLoadCaption (lbl: TLabel);
tillvägagångssätt IniSaveCaption (lbl: TLabel);
tillvägagångssätt IniLoadText (edt: TCustomEdit);
tillvägagångssätt IniSaveText (edt: TCustomEdit);
tillvägagångssätt IniLoadRadioGroup (rg: TRadioGroup);
tillvägagångssätt IniSaveRadioGroup (rg: TRadioGroup);
tillvägagångssätt IniLoadGroupBox (gb: TGroupBox);
tillvägagångssätt IniSaveGroupBox (gb: TGroupBox);
tillvägagångssätt IniLoadComboBox (cb: TComboBox);
tillvägagångssätt IniSaveComboBox (cb: TComboBox);
{
tillvägagångssätt IniLoadSpinEdit (edt: TSpinEdit);
tillvägagångssätt IniSaveSpinEdit (edt: TSpinEdit);
}
tillvägagångssätt IniLoadButton (btn: TButton);
tillvägagångssätt IniSaveButton (btn: TButton);
tillvägagångssätt IniLoadSpeedButton (btn: TSpeedButton);
tillvägagångssätt IniSaveSpeedButton (btn: TSpeedButton);
tillvägagångssätt IniLoadFormCaption (frm: TForm);
tillvägagångssätt IniSaveFormCaption (frm: TForm);
tillvägagångssätt IniSavePanel (pnl: TPanel);
tillvägagångssätt IniLoadPanel (pnl: TPanel);
tillvägagångssätt IniSaveFrame (pnl: TFrame);
tillvägagångssätt IniLoadFrame (pnl: TFrame);
tillvägagångssätt IniLoadStringGrid (raster: TStringGrid);
tillvägagångssätt IniSaveStringGrid (raster: TStringGrid);
tillvägagångssätt IniLoadShape (shp: TShape);
tillvägagångssätt IniLoadImage (img: TImage);
tillvägagångssätt IniSaveShape (shp: TShape);
tillvägagångssätt IniSaveImage (img: TImage);
tillvägagångssätt IniSaveControl (c: TControl);
tillvägagångssätt IniLoadControl (c: TControl);
tillvägagångssätt IniLoadOpenDialog (dlg: TOpenDialog);
tillvägagångssätt IniSaveOpenDialog (dlg: TOpenDialog);
tillvägagångssätt IniLoadMemo (memo: TMemo);
tillvägagångssätt IniSaveMemo (memo: TMemo);

tillvägagångssätt SetExtendedSection (S: Stränga);
fungera  GetExtendedSection: Stränga;
fungera  GetTextOnly: Boolean;
tillvägagångssätt SetTextOnly (b: Boolean);
fungera TranslateFormat2Text (S: Stränga): Stränga;
fungera TranslateText2Format (S: Stränga): Stränga;

tillvägagångssätt IniSaveComponnents (lista: Samling av TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
tillvägagångssätt IniLoadComponnents (lista: Samling av TObject; Ext_Section: String= ''; TextOnly: Boolean=False);

Var
 IniFile: TIniFile;

genomförande

Bruk SysUtils, untUtils, FileCtrl;

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

tillvägagångssätt SetExtendedSection (S: Stränga);
börja
 _ExtSection: =S;
avsluta;

fungera  GetExtendedSection: Stränga;
börja
 Resultat: =_ExtSection;
avsluta;

fungera  GetTextOnly: Boolean;
börja
 Resultat: =_TextOnly;
avsluta;

tillvägagångssätt SetTextOnly (b: Boolean);
börja
 _TextOnly: =b;
avsluta;

fungera TranslateFormat2Text (S: Stränga): Stränga;
börja
 Resultat: =StringReplace (S, ”% \”, #13#10, [rfReplaceAll]);
avsluta;

fungera TranslateText2Format (S: Stränga): Stränga;
börja
 Resultat: =StringReplace (S, #13#10, ”% \”, [rfReplaceAll]);
avsluta;

tillvägagångssätt IniOpenFile (anföra som exempel: Heltal; FilePath: String= '');
börja
 IniOpenFile (ChangeFileExt (GetModuleName (hInstancen), ”.INI”), FilePath);
avsluta;

tillvägagångssätt IniOpenFile (FileName: String= ''; FilePath: String= '');
börja
 IniCloseFile;
 om FileName= '' därefter FileName: =ChangeFileExt (GetModuleName (hInstancen), ”.INI”); /ChangeFileExt (ParamStr (0), ”.INI”);
 om (FilePath<> '') därefter
  börja
   FilePath: =IncludeTrailingBackslash (FilePath);
   om DirectoryExists (FilePath) därefter FileName: =FilePath+FileName;
  avsluta;
 IniFile: =TIniFile.Create (FileName);
avsluta;

tillvägagångssätt IniCloseFile;
börja
 FreeAndNil (IniFile);
avsluta;

fungera IniLoadSaveDefaultString (dela upp, paramen, standard: Stränga): Stränga;
börja
 Resultat: =IniLoadSaveDefault (dela upp, Param, standard);
avsluta;

tillvägagångssätt IniLoadSaveDefaultStringList (dela upp, paramen: Stränga; Lista: TStringList; Opt: TStringListOptions= []);
Var
 i: heltal;
börja
 Dela upp: =_ExtSection+Section;
 List.CommaText: =IniFile.ReadString (dela upp, paramen, List.CommaText);
 om slUpperCasen Opt in därefter
  börja
   List.Sorted: =False;
   för I: =0 till List.Count-1 listar [I]: =UpperCase (lista [I]);
   List.Sorted: =True;
  avsluta;
 IniFile.WriteString (dela upp, paramen, List.CommaText);
avsluta;

fungera IniLoadSaveDefault (dela upp, paramen, standard: Stränga): Stränga; överbelastning;
börja
 Dela upp: =_ExtSection+Section;
 Resultat: =IniFile.ReadString (dela upp, Param, standard);
 IniFile.WriteString (dela upp, Param, resultat);
avsluta;

fungera IniLoadSaveDefault (dela upp, paramen: Stränga; Standard: Heltal): Heltal; överbelastning;
börja
 Dela upp: =_ExtSection+Section;
 Resultat: =IniFile.ReadInteger (dela upp, Param, standard);
 IniFile.WriteInteger (dela upp, Param, resultat);
avsluta;

fungera IniLoadSaveDefault (dela upp, paramen: Stränga; Standard: Boolean): Boolean; överbelastning;
börja
 Dela upp: =_ExtSection+Section;
 Resultat: =IniFile.ReadBool (dela upp, Param, standard);
 IniFile.WriteBool (dela upp, Param, resultat);
avsluta;

tillvägagångssätt IniSaveQuotedCaption (dela upp, paramen, standard: Stränga);
börja
 om standard för klippning (standard<>) standardinställer därefter: =AnsiQuotedStr (standard, ”””);
 IniFile.WriteString (_ExtSection+Section, Param, standard);
avsluta;

fungera IniLoadQuotedCaption (dela upp, paramen, standard: Stränga): Stränga;
Var
 P: PChar;
börja
 Resultat: =IniFile.ReadString (_ExtSection+Section, Param, standard);
 om (längd (resultatet) >=2) och (resultat [1] = ' ”') därefter
  börja
   P: =PChar (resultat);
   Resultat: =AnsiExtractQuotedStr (P, ”””);
  avsluta;
avsluta;

tillvägagångssätt IniLoadFormPosAndSize (frm: TCustomForm);
Var
 Dela upp: Stränga;
börja
 Dela upp: =_ExtSection+frm.Name;
 frm. Förse med text: =IniFile.ReadString (dela upp, ”FÖRSER MED TEXT”, frm. Förse med text);
 om inte _TextOnly därefter
  börja
   om frm är TForm därefter TForm (frm). Placera: =poDesigned;
   frm. Bredd: =IniFile.ReadInteger (dela upp, ”BREDDEN”, frm. Bredd);
   frm. Höjd: =IniFile.ReadInteger (dela upp, ”HÖJD”, frm. Höjd);
   frm. Bästa: =IniFile.ReadInteger (dela upp, ”ÖVERTRÄFFAR”, frm. Överträffa);
   frm. Lämnat: =IniFile.ReadInteger (dela upp, ”LÄMNAT”, frm. Lämnat);
   frm.WindowState: =TWindowState (IniFile.ReadInteger (dela upp, ”PÅSTÅR”, heltalet (frm.WindowState))),;
  avsluta;
avsluta;

tillvägagångssätt IniSaveFormPosAndSize (frm: TCustomForm);
Var
 Dela upp: Stränga;
börja
 Dela upp: =_ExtSection+frm.Name;
 IniFile.WriteString (dela upp, ”FÖRSER MED TEXT”, frm. Förse med text);
 om inte _TextOnly därefter
  börja
   IniFile.WriteInteger (dela upp, ”PÅSTÅR”, heltalet (frm.WindowState));
   IniFile.WriteInteger (dela upp, ”BREDDEN”, frm. Bredd);
   IniFile.WriteInteger (dela upp, ”HÖJD”, frm. Höjd);
   IniFile.WriteInteger (dela upp, ”ÖVERTRÄFFAR”, frm. Överträffa);
   IniFile.WriteInteger (dela upp, ”LÄMNAT”, frm. Lämnat);
  avsluta;
avsluta;

tillvägagångssätt IniLoadMemo (memo: TMemo);
börja
 memo. Text: =TranslateFormat2Text (IniFile.ReadString (_ExtSection+memo.Name, ”TEXT”, TranslateText2Format (memo. Text)));
avsluta;

tillvägagångssätt IniSaveMemo (memo: TMemo);
börja
 IniFile.WriteString (_ExtSection+memo.Name, ”TEXT”, TranslateText2Format (memo. Text));
avsluta;

tillvägagångssätt IniLoadCheckBox (chk: TCheckBox);
börja
 chk. Förse med text: =IniLoadQuotedCaption (chk. Känt ”FÖRSE MED TEXT”, chk. Förse med text);
 om inte _TextOnly därefter chk. Kontrollerat: =IniFile.ReadBool (_ExtSection+chk.Name, ”KONTROLLERADE”, chk. Kontrollerat);
avsluta;

tillvägagångssätt IniSaveCheckBox (chk: TCheckBox);
börja
 IniSaveQuotedCaption (chk. Känt ”FÖRSE MED TEXT”, chk. Förse med text);
 om inte _TextOnly därefter IniFile.WriteBool (_ExtSection+chk.Name, ”KONTROLLERADE”, chk. Kontrollerat);
avsluta;

tillvägagångssätt IniLoadShape (shp: TShape);
Var
 Dela upp: Stränga;
börja
 med shp gör
  börja
   Dela upp: =_ExtSection+Name;
   Synligt: =IniFile.ReadBool (dela upp, ”SYNLIGT”, synligt);
   Pen.Color: =StringToColor (IniFile.ReadString (dela upp, ”PEN_COLOR”, ColorToString (Pen.Color))),;
   Brush.Color: =StringToColor (IniFile.ReadString (dela upp, ”BRUSH_COLOR”, ColorToString (Brush.Color))),;
  avsluta;
avsluta;

tillvägagångssätt IniLoadImage (img: TImage);
Var
 F: Stränga;
 Dela upp: Stränga;
börja
 Med img gör
  försök
   Dela upp: =_ExtSection+Name;
   Synligt: =IniFile.ReadBool (dela upp, ”SYNLIGT”, synligt);
   Genomskinligt: =IniFile.ReadBool (dela upp, ”GENOMSKINLIGT”, genomskinligt);
   Elasticitet: =IniFile.ReadBool (dela upp, ”STRÄCKER”, elasticitet);
   F: =IniFile.ReadString (dela upp, ”SPARAR”, '');
   om FileExists (F) därefter Picture.LoadFromFile (F);
  undanta
  avsluta;
avsluta;

tillvägagångssätt IniSaveShape (shp: TShape);
Var
 Dela upp: Stränga;
börja
 med shp gör
  börja
   Dela upp: =_ExtSection+Name;
   IniFile.WriteBool (dela upp, ”SYNLIGT”, synligt);
   IniFile.WriteString (dela upp, ”PEN_COLOR”, ColorToString (Pen.Color));
   IniFile.WriteString (dela upp, ”BRUSH_COLOR”, ColorToString (Brush.Color));
  avsluta;
avsluta;

tillvägagångssätt IniSaveImage (img: TImage);
Var
 Dela upp: Stränga;
börja
 Med img gör
  börja
   Dela upp: =_ExtSection+Name;
   IniFile.WriteBool (dela upp, ”SYNLIGT”, synligt);
   IniFile.WriteBool (dela upp, ”GENOMSKINLIGT”, genomskinligt);
   IniFile.WriteBool (dela upp, ”STRÄCKER”, elasticitet);
  avsluta;
avsluta;

tillvägagångssätt IniLoadRadioButton (rb: TRadioButton);
börja
 rb. Förse med text: =IniLoadQuotedCaption (rb. Känt ”FÖRSE MED TEXT”, rb. Förse med text);
 om inte _TextOnly därefter rb. Kontrollerat: =IniFile.ReadBool (_ExtSection+rb.Name, ”KONTROLLERADE”, rb. Kontrollerat);
avsluta;

tillvägagångssätt IniSaveRadioButton (rb: TRadioButton);
börja
 IniSaveQuotedCaption (rb. Känt ”FÖRSE MED TEXT”, rb. Förse med text);
 om inte _TextOnly därefter IniFile.WriteBool (_ExtSection+rb.Name, ”KONTROLLERADE”, rb. Kontrollerat);
avsluta;

tillvägagångssätt IniLoadText (edt: TCustomEdit);
börja
 edt. Text: =IniLoadQuotedCaption (edt. Namnge ”TEXT”, edt. Text);
avsluta;

tillvägagångssätt IniSaveText (edt: TCustomEdit);
börja
 IniSaveQuotedCaption (edt. Namnge ”TEXT”, edt. Text);
avsluta;

tillvägagångssätt IniLoadCaption (lbl: TLabel);
börja
 lbl. Förse med text: =IniLoadQuotedCaption (lbl. Känt ”FÖRSE MED TEXT”, lbl. Förse med text);
avsluta;

tillvägagångssätt IniSaveCaption (lbl: TLabel);
börja
 IniSaveQuotedCaption (lbl. Känt ”FÖRSE MED TEXT”, lbl. Förse med text);
avsluta;

tillvägagångssätt IniLoadFormCaption (frm: TForm);
börja
 frm. Förse med text: =IniLoadQuotedCaption (frm. Känt ”FÖRSE MED TEXT”, frm. Förse med text);
avsluta;

tillvägagångssätt IniSaveFormCaption (frm: TForm);
börja
 IniSaveQuotedCaption (frm. Känt ”FÖRSE MED TEXT”, frm. Förse med text);
avsluta;

tillvägagångssätt IniLoadButton (btn: TButton);
börja
 btn. Förse med text: =IniLoadQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniSaveButton (btn: TButton);
börja
 IniSaveQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniLoadBitButton (btn: TBitBtn);
börja
 btn. Förse med text: =IniLoadQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniSaveBitButton (btn: TBitBtn);
börja
 IniSaveQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniLoadSpeedButton (btn: TSpeedButton);
börja
 btn. Förse med text: =IniLoadQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniSaveSpeedButton (btn: TSpeedButton);
börja
 IniSaveQuotedCaption (btn. Känt ”FÖRSE MED TEXT”, btn. Förse med text);
avsluta;

tillvägagångssätt IniLoadRadioGroup (rg: TRadioGroup);
börja
 rg. Förse med text: =IniLoadQuotedCaption (rg. Känt ”FÖRSE MED TEXT”, rg. Förse med text);
 om inte _TextOnly därefter rg.ItemIndex: =IniFile.ReadInteger (_ExtSection+rg.Name, ”INDEX, rg.ItemIndex);
avsluta;

tillvägagångssätt IniSaveRadioGroup (rg: TRadioGroup);
börja
 IniSaveQuotedCaption (rg. Känt ”FÖRSE MED TEXT”, rg. Förse med text);
 om inte _TextOnly därefter IniFile.WriteInteger (_ExtSection+rg.Name, ”INDEX, rg.ItemIndex);
avsluta;

tillvägagångssätt IniLoadGroupBox (gb: TGroupBox);
börja
 gb. Förse med text: =IniLoadQuotedCaption (gb. Känt ”FÖRSE MED TEXT”, gb. Förse med text);
 om inte _TextOnly därefter IniLoadControl (gb);
avsluta;

tillvägagångssätt IniSaveGroupBox (gb: TGroupBox);
börja
 IniSaveQuotedCaption (gb. Känt ”FÖRSE MED TEXT”, gb. Förse med text);
 om inte _TextOnly därefter IniSaveControl (gb);
avsluta;

tillvägagångssätt IniLoadComboBox (cb: TComboBox);
Var
 Str: Stränga;
börja
 Str: =IniLoadQuotedCaption (cb. Namnge ”TEXT”, cb. Text);
 om cb. Style=csDropDownList därefter
  börja
   om Str<> '' därefter cb.ItemIndex: =cb. Items.IndexOf (stren) annan cb.ItemIndex: =IniFile.ReadInteger (_ExtSection+cb.Name, ”INDEX, cb.ItemIndex);
  avsluta andra cb. Text: =Str;
avsluta;

tillvägagångssätt IniSaveComboBox (cb: TComboBox);
börja
 IniSaveQuotedCaption (cb. Namnge ”TEXT”, cb. Text);
 IniFile.WriteInteger (_ExtSection+cb.Name, ”INDEX, cb.ItemIndex);
avsluta;

{$ifdef USE_SPIN_EDT}
tillvägagångssätt IniLoadSpinEdit (edt: TSpinEdit);
börja
 edt. Värdera: =IniFile.ReadInteger (_ExtSection+edt.Name, ”VÄRDERAR”, edt. Värdera);
avsluta;

tillvägagångssätt IniSaveSpinEdit (edt: TSpinEdit);
börja
 IniFile.WriteInteger (_ExtSection+edt.Name, ”VÄRDERAR”, edt. Värdera);
avsluta;
{$endif}

tillvägagångssätt IniSavePanel (pnl: TPanel);
börja
 IniFile.WriteInteger (_ExtSection+pnl.Name, ”BREDD”, pnl. Bredd);
 IniFile.WriteInteger (_ExtSection+pnl.Name, ”HÖJD”, pnl. Höjd);
avsluta;

tillvägagångssätt IniLoadPanel (pnl: TPanel);
börja
 pnl. Bredd: =IniFile.ReadInteger (_ExtSection+pnl.Name, ”BREDD”, pnl. Bredd);
 pnl. Höjd: =IniFile.ReadInteger (_ExtSection+pnl.Name, ”HÖJD”, pnl. Höjd);
avsluta;

tillvägagångssätt IniSaveFrame (pnl: TFrame);
börja
 IniFile.WriteInteger (_ExtSection+pnl.Name, ”BREDD”, pnl. Bredd);
 IniFile.WriteInteger (_ExtSection+pnl.Name, ”HÖJD”, pnl. Höjd);
avsluta;

tillvägagångssätt IniLoadFrame (pnl: TFrame);
börja
 pnl. Bredd: =IniFile.ReadInteger (_ExtSection+pnl.Name, ”BREDD”, pnl. Bredd);
 pnl. Höjd: =IniFile.ReadInteger (_ExtSection+pnl.Name, ”HÖJD”, pnl. Höjd);
avsluta;

tillvägagångssätt IniLoadStringGrid (raster: TStringGrid);
Var
 i: heltal;
 Dela upp: Stränga;
börja
 Med raster gör
  börja
   Dela upp: =_ExtSection+Name;
   grid.ColCount: =IniFile.ReadInteger (dela upp, ”COL_COUNT”, grid.ColCount);
   för I: =0 till grid.ColCount-1 gör
    börja
     grid.ColWidths [I]: =IniFile.ReadInteger (dela upp, formatera (”COL_%d_WIDTH”, [I]), grid.ColWidths [I]);
     raster. Celler [I, 0]: =IniFile.ReadString (dela upp, formatera (”COL_%d_TEXT”, [I]), raster. Celler [I, 0]);
    avsluta;
  avsluta;
avsluta;

tillvägagångssätt IniSaveStringGrid (raster: TStringGrid);
Var
 i: heltal;
 Dela upp: Stränga;
börja
 Med raster gör
  börja
   Dela upp: =_ExtSection+Name;
   IniFile.WriteInteger (dela upp, ”COL_COUNT”, grid.ColCount);
   för I: =0 till grid.ColCount-1 gör
    börja
     IniFile.WriteInteger (dela upp, formatera (”COL_%d_WIDTH”, [I]), grid.ColWidths [I]);
     IniFile.WriteString (dela upp, formatera (”COL_%d_TEXT”, [I]), raster. Celler [I, 0]);
    avsluta;
  avsluta;
avsluta;

tillvägagångssätt IniLoadOpenDialog (dlg: TOpenDialog);
börja
 dlg.InitialDir: =IniLoadQuotedCaption (dlg. Namnge ”INITIAL_DIR”, dlg.InitialDir);
avsluta;

tillvägagångssätt IniSaveOpenDialog (dlg: TOpenDialog);
börja
 IniSaveQuotedCaption (dlg. Namnge ”INITIAL_DIR”, dlg.InitialDir);
avsluta;

tillvägagångssätt IniSaveControl (c: TControl);
börja
 IniFile.WriteInteger (_ExtSection+c.Name, ”BREDD”, c.Width);
 IniFile.WriteInteger (_ExtSection+c.Name, ”HÖJD”, c.Height);
avsluta;

tillvägagångssätt IniLoadControl (c: TControl);
börja
 c.Width: =IniFile.ReadInteger (_ExtSection+c.Name, ”BREDD”, c.Width);
 c.Height: =IniFile.ReadInteger (_ExtSection+c.Name, ”HÖJD”, c.Height);
avsluta;

tillvägagångssätt IniLoadListView (L: TListView);
Var
 Dela upp: Stränga;
 i: heltal;
börja
 Med L gör
  börja
   Dela upp: =_ExtSection+Name;
   för I: = 0 till Columns.Count - 1 gör kolonner [I]. Förse med text: =IniFile.ReadString (dela upp, formatera (”COLUMN_%d”, [I]), kolonner [I]. Förse med text);
  avsluta;
avsluta;

tillvägagångssätt IniSaveListView (L: TListView);
Var
 Dela upp: Stränga;
 i: heltal;
börja
 Med L gör
  börja
   Dela upp: =_ExtSection+Name;
   för I: = 0 till Columns.Count - 1 gör IniFile.WriteString (dela upp, formatera (”COLUMN_%d”, [I]), kolonner [I]. Förse med text);
  avsluta;
avsluta;

tillvägagångssätt IniLoadMenu (M: TMenu);
Var
 Dela upp: Stränga;
 i: heltal;

 tillvägagångssätt IniLoadMenuItem (M: TMenuItem; Sect: Stränga);
 Var
  i: heltal;
 börja
  Sect: =Sect+'. '+M.Name;
  för I: = 0 till M.Count - 1 gör om M.Items [I]. Caption'-<> 'därefter
   börja
    M.Items [I]. Förse med text: =IniFile.ReadString (Sect, M.Items [I]. Namnge M.Items [I]. Förse med text);
    om M.Items [I]. Count>0 därefter IniLoadMenuItem (M.Items [I], Sect);
   avsluta;
 avsluta;
börja
 Med M gör
  börja
   Dela upp: =_ExtSection+Name;
   för I: = 0 till M.Items.Count - 1 gör om objekt [I]. Caption'-<> 'därefter
    börja
     Objekt [I]. Förse med text: =IniFile.ReadString (dela upp, objekt [I]. Namnge objekt [I]. Förse med text);
    avsluta;
  avsluta;
avsluta;

tillvägagångssätt IniSaveMenu (M: TMenu);
Var
 Dela upp: Stränga;
 i: heltal;
 tillvägagångssätt IniSaveMenuItem (M: TMenuItem; Sect: Stränga);
 Var
  i: heltal;
 börja
  Sect: =Sect+'. '+M.Name;
  för I: = 0 till M.Count - 1 gör om M.Items [I]. Caption'-<> 'därefter
   börja
    IniFile.WriteString (Sect, M.Items [I]. Namnge M.Items [I]. Förse med text);
    om M.Items [I]. Count>0 därefter IniSaveMenuItem (M.Items [I], Sect);
   avsluta;
 avsluta;
börja
 Med M gör
  börja
   Dela upp: =_ExtSection+Name;
   för I: = 0 till M.Items.Count - 1 gör om objekt [I]. Caption'-<> 'därefter
    börja
     IniFile.WriteString (dela upp, objekt [I]. Namnge objekt [I]. Förse med text);
     om objekt [I]. Count>0 därefter IniSaveMenuItem (objekt [I], _ExtSection);
    avsluta;
  avsluta;
avsluta;

tillvägagångssätt IniSaveComponnents (lista: Samling av TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
var
 i: heltal;
 SaveExtSect: Stränga;
 SaveTextOnly: Boolean;
börja
 SaveExtSect: =_ExtSection;
 _ExtSection: =Ext_Section;
 SaveTextOnly: =_TextOnly;
 _TextOnly: =TextOnly;
 för I: =Low (lista), till kicken (lista), gör, om tilldelat (lista [I]), därefter
  försök
   om lista [I] är TMemo        därefter IniSaveMemo          (TMemo        (lista [I])), Annars
   om lista [I] är TListView    därefter IniSaveListView      (TListView    (lista [I])), Annars
   om lista [I] är TMenu        därefter IniSaveMenu          (TMenu        (lista [I])), Annars
   om lista [I] är TCustomForm  därefter IniSaveFormPosAndSize (TCustomForm  (lista [I])), Annars
   om lista [I] är TRadioGroup  därefter IniSaveRadioGroup    (TRadioGroup  (lista [I])), Annars
   om lista [I] är TRadioButton därefter IniSaveRadioButton   (TRadioButton (lista [I])), Annars
   om lista [I] är TCustomEdit  därefter IniSaveText          (TCustomEdit  (lista [I])), Annars
   om lista [I] är TCheckBox    därefter IniSaveCheckBox      (TCheckBox    (lista [I])), Annars
   om lista [I] är TComboBox    därefter IniSaveComboBox      (TComboBox    (lista [I])), Annars
{$ifdef USE_SPIN_EDT}
   om lista [I] är TSpinEdit    därefter IniSaveSpinEdit  	(TSpinEdit    (lista [I])), Annars
{$endif}
   om lista [I] är TLabel       därefter IniSaveCaption  	(TLabel       (lista [I])), Annars
   om lista [I] är TBitBtn      därefter IniSaveBitButton  	(TBitBtn      (lista [I])), Annars
   om lista [I] är TButton      därefter IniSaveButton  	(TButton      (lista [I])), Annars
   om lista [I] är TSpeedButton därefter IniSaveSpeedButton  	(TSpeedButton (lista [I])), Annars
   om lista [I] är TPanel       därefter IniSavePanel 	(TPanel       (lista [I])), Annars
   om lista [I] är tFramen       därefter IniSaveFrame 	(TFrame       (lista [I])), Annars
   om lista [I] är TStringGrid  därefter IniSaveStringGrid    (TStringGrid  (lista [I])), Annars
   om lista [I] är TOpenDialog  därefter IniSaveOpenDialog    (TOpenDialog  (lista [I])), Annars
   om lista [I] är TShape       därefter IniSaveShape         (TShape       (lista [I])), Annars
   om lista [I] är TImage       därefter IniSaveImage         (TImage       (lista [I])), Annars
   om lista [I] är TGroupBox    därefter IniSaveGroupBox      (TGroupBox    (lista [I])), Annars
   om lista [I] är TControl     därefter IniSaveControl       (TControl     (lista [I])), Annars
   om lista [I] är TComponent   därefter ShowMessage ('den Erreur räddningen ”+TComponent (lista [I]). Name+”: '+List [I] .ClassName)
    Annan ShowMessage ('den Erreur räddningen '+List [I] .ClassName);
  undanta
   på E: Undantag gör ShowMessage (formatera (”felbesparingen %s: %s'#13'% s”, [TComponent (lista [I]). Namnge E.ClassName, E.Message])),;
  avsluta;
 _ExtSection: =SaveExtSect;
 _TextOnly: =SaveTextOnly;
avsluta;

tillvägagångssätt IniLoadComponnents (lista: Samling av TObject; Ext_Section: String= ''; TextOnly: Boolean=False);
var
 i: heltal;
 SaveExtSect: Stränga;
 SaveTextOnly: Boolean;
börja
 SaveExtSect: =_ExtSection;
 _ExtSection: =Ext_Section;
 SaveTextOnly: =_TextOnly;
 _TextOnly: =TextOnly;
 för I: =Low (lista), till kicken (lista), gör, om tilldelat (lista [I]), därefter
  försök
   om lista [I] är TMemo        därefter IniLoadMemo          (TMemo        (lista [I])), Annars
   om lista [I] är TListView    därefter IniLoadListView      (TListView    (lista [I])), Annars
   om lista [I] är TMenu        därefter IniLoadMenu          (TMenu        (lista [I])), Annars
   om lista [I] är TCustomForm  därefter IniLoadFormPosAndSize (TCustomForm  (lista [I])), Annars
   om lista [I] är TRadioGroup  därefter IniLoadRadioGroup    (TRadioGroup  (lista [I])), Annars
   om lista [I] är TRadioButton därefter IniLoadRadioButton   (TRadioButton (lista [I])), Annars
   om lista [I] är TCustomEdit  därefter IniLoadText          (TCustomEdit  (lista [I])), Annars
   om lista [I] är TCheckBox    därefter IniLoadCheckBox      (TCheckBox    (lista [I])), Annars
   om lista [I] är TComboBox    därefter IniLoadComboBox      (TComboBox    (lista [I])), Annars
{$ifdef USE_SPIN_EDT}
   om lista [I] är TSpinEdit    därefter IniLoadSpinEdit  	(TSpinEdit    (lista [I])), Annars
{$endif}
   om lista [I] är TLabel       därefter IniLoadCaption  	(TLabel       (lista [I])), Annars
   om lista [I] är TBitBtn      därefter IniLoadBitButton  	(TBitBtn      (lista [I])), Annars
   om lista [I] är TButton      därefter IniLoadButton  	(TButton      (lista [I])), Annars
   om lista [I] är TSpeedButton därefter IniLoadSpeedButton  	(TSpeedButton (lista [I])), Annars
   om lista [I] är TPanel       därefter IniLoadPanel 	(TPanel       (lista [I])), Annars
   om lista [I] är tFramen       därefter IniLoadFrame 	(TFrame       (lista [I])), Annars
   om lista [I] är TStringGrid  därefter IniLoadStringGrid    (TStringGrid  (lista [I])), Annars
   om lista [I] är TOpenDialog  därefter IniLoadOpenDialog    (TOpenDialog  (lista [I])), Annars
   om lista [I] är TShape       därefter IniLoadShape         (TShape       (lista [I])), Annars
   om lista [I] är TImage       därefter IniLoadImage         (TImage       (lista [I])), Annars
   om lista [I] är TGroupBox    därefter IniLoadGroupBox      (TGroupBox    (lista [I])), Annars
   om lista [I] är TControl     därefter IniLoadControl       (TControl     (lista [I])), Annars
   om lista [I] är TComponent   därefter ShowMessage ('Erreur laddar ”+TComponent (lista [I]). Name+”: '+List [I] .ClassName) annars
    ShowMessage ('Erreur laddar '+List [I] .ClassName);
  undanta
   på E: Undantag gör ShowMessage (formatera (”felet som laddar %s: %s'#13'% s”, [TComponent (lista [I]). Namnge E.ClassName, E.Message])),;
  avsluta;
 _ExtSection: =SaveExtSect;
 _TextOnly: =SaveTextOnly;
avsluta;

initialisering
 IniFile: =nil;
 IniOpenFile;
finalization
 IniCloseFile;
avsluta.
Andra lösningar  
 
programming4us programming4us