Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 14:52
Hallo KodeZwerg,
dein Vorschlag erzeugt einen E/A Fehler 104, heißt die Datei kann nicht zum lesen geöffnet werden. Daran arbeite ich gerade noch.

Ich habe insgesamt 0% code der irgend eine art von datei operation beschreibt gezeigt, lediglich wie du auf deine checkboxen per "string"-namen zugreifen kannst.

Aber hier nun was mit Dateioperation:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i, ii, MinCB, MaxCB : Integer;
  Component : TComponent;
  sl : TStrings;
  Duplicates : TDuplicates;
  Sorted, CaseSensitive: Boolean;
begin
  // ein paar optionen für die string liste
  Duplicates := dupIgnore; // duplikate ignorieren
  Sorted := True; // die liste ist sortiert
  CaseSensitive := True; // groß/klein schreibung beachten
  // grundeinstellung über deine checkboxen
  MinCB := 1; // name der kleinsten checkbox wäre hiermit "CheckBox1"
  MaxCB := 2; // name der größten checkbox wäre hiermit "CheckBox2"
  // erstelle eine stringliste die auf den optionen aufbaut
  sl := TStringList.Create(Duplicates, Sorted, CaseSensitive);
  try
    try
      // lade eine datei im aktuellen verzeichniss der .exe
      sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Datei.txt');
      ii := 0;
      // datei in checkbox splitten
      for i := MinCB to MaxCB do
        begin
          // finde eine passende checkbox
          Component := FindComponent('CheckBox' + IntToStr(i));
          // stelle sicher das es wirklich eine gültige TCheckBox ist
          if ((Component <> nil) and (Component is TCheckBox)) then
            // sind wir immer noch im gültigen bereich
            if (ii < sl.Count) then
              begin
                // schubs eine textzeile in eine checkbox
                TCheckBox(Component).Caption := sl.Strings[ii];
                Inc(ii);
              end
              else
                // wenn mehr checkboxen als textzeilen vorhanden sind...
                TCheckBox(Component).Caption := 'Leer #' + IntToStr(i);
        end;
    except
      // datei nicht gefunden
      // datei operation / oder andere fehler etc...
    end;
  finally
    sl.Free;
  end;
end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (26. Sep 2022 um 10:33 Uhr) Grund: updated.
  Mit Zitat antworten Zitat