AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text in Checkbox oder Label anzeigen

Ein Thema von JimmyB · begonnen am 24. Sep 2022 · letzter Beitrag vom 25. Sep 2022
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.052 Beiträge
 
Delphi 12 Athens
 
#1

AW: Text in Checkbox oder Label anzeigen

  Alt 24. Sep 2022, 20:57
Das ist so nah wie möglich an deinem Code:
Delphi-Quellcode:
  var i: Integer;
  i := 1;

  while NOT eof (myfile) do
  begin
    //Step 6: Get each line of text file into string variable
    readln (myfile, sLine);

    // work with sLine

    (FindComponent('Checkbox' + IntToStr(i)) as TCheckBox).Caption := sLine;
    Inc(i);
  end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#2

AW: Text in Checkbox oder Label anzeigen

  Alt 24. Sep 2022, 21:13
PS: Delphi-Referenz durchsuchenTFile.ReadAllLines
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#3

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 09:39
Hallo Uwe,

dein Code ist ja bestechend kurz.
Ich habe diesen ausprobiert, allerdings scheint die Schleife nicht zu laufen.
Es wird nur die letzte Zeile aus der Textdatei in der Caption der ersten Checkbox angezeigt.



procedure TForm1.Button1Click(Sender: TObject);

// Step 1: Declare Varibales
var myfile : textfile;
sLine : string;
i : integer;
begin
//Check if the file exists
if not FileExists ('Fragen.txt') then
begin
showmessage ('Die Datei mit den Fragen kann nicht gefunden werden!');
Exit;
end;

//Step 3: Assign file to our variable
AssignFile( myfile, 'Fragen.txt');
i := 1;
//Step 4: Put the pointer at the top the textfile
reset (myfile);

//Step 5: Loop through our textfile
//Hint: Must use BEGIN and END

while NOT eof (myfile) do
begin
//Step 6: Get each line of text file into string variable
readln (myfile, sLine);

// work with sLine

(FindComponent('Checkbox' + IntToStr(i)) as TCheckBox).Caption := sLine;
Inc(i);
redDisplay.Lines.Add( sLine);
end; // end of while loop

//Step 7: Close our association
Closefile ( myfile);

end;

end.

vg JimmyB
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#4

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 11:31
Möchtest du nicht lernen den einen Knopf mit dem Helm zu benutzen?
[DELPHI] ... [/DELPHI]

Man arbeitet niemals mit relativen Pfaden!!!
Bzw. man expandiert sie selber,
weil
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  SetCurrentDir('C:\');
  // das Programm muß beim Start garnicht im Arbeitsverzeichnis liegen (bzw. das Arbeitsverzeichnis muß nicht dem der EXE entsprechen)
  // und z.B. ein OpenDialog ändert auch gern das Arbeitsverzeichnis.
  if not FileExists('Fragen.txt') then
    ShowMessage('Peng');
Was heißt "scheibar"?

Was sagt denn der Debugger?
Haltepunkt vor die Schleife, mit [F9] starten und dann Zeilenweise [F8] nachsehen.


Und falls mal irgendwas schief geht, benutzt man immer einen Ressourcenschutzblock.
In Bezug auf die uralten Datei-Funktionen könnte man auch die Fehlerbehandlung abschalten, aber muß dann auch selber auf IOResult achten, also macht es keinen großen Unterschied.

Delphi-Quellcode:
AssignFile(myfile, ExtractFilePath(Application.ExeName) + 'Fragen.txt');
Reset(myfile);
try
  ...
finally
  Closefile(myfile);
end;
Delphi-Quellcode:
SL := TStringList.Create;
try
  SL.LoadFromFile(myfile, ExtractFilePath(Application.ExeName) + 'Fragen.txt');
  ...
finally
  SL.Free;
end;

Nja, viele Wege nach Rom .... ähhh, viele Funktionen/Klassen stehen zur Auswahl und hier mal die Aktuellste.
(rate mal, warum ich so atomare Funktionen, wie Delphi-Referenz durchsuchenTFile.ReadAllLines TFile.ReadAllLines, mag ... schön kurz, automatische Speicherverwaltung und Fehlerbehandlung integriert)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Lines: TArray<string>;
  i: Integer;
begin
  if not FileExists(ExtractFilePath(Application.ExeName) + 'Fragen.txt') then
    raise Exception.Create('Die Datei mit den Fragen wurde nicht gefunden.');

  Lines := TFile.ReadAllLines(ExtractFilePath(Application.ExeName) + 'Fragen.txt');
  for i := 0 to High(Lines) do
    (FindComponent('Checkbox' + IntToStr(i)) as TCheckBox).Caption := Lines[i];
  redDisplay.Lines.AddAddStrings(Lines);
end;
Statt vieler TCheckBox nur eine TCheckListBox.
Delphi-Quellcode:
CheckListBox.Items.Clear;
CheckListBox.Items.AddAddStrings(Lines);
Oder wenn eh nur eine Antwort/Frage gewält werden kann,
dann TRadioButton, anstatt TCheckBox,
bzw. auch gleich eine TRadioGroup.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Sep 2022 um 11:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 11:45
Hallo JimmyB,
bitte nutze doch in Zukunft bei Code die Delphi-Tags (dein Code markieren und dann Klick auf das Delphi-Symbol vom Editor). Es ist sonst schwierig den Code zu lesen.

Als Denkanstoß könnte dieser Code helfen. Voraussetzung ist, dass deine Checkboxen auch "Checkboxx" heißen. Das letzte x steht dabei für die Zahlen 1 oder 2 oder 3 usw.

Delphi-Quellcode:
PROCEDURE TForm2.Button1Click( Sender: TObject );
VAR
  i: Integer;
  sl: TStringList;
BEGIN
  IF FileExists( 'myFile.txt' ) THEN
  BEGIN
    sl := TStringList.Create;
    TRY
      sl.LoadFromFile( 'myFile.txt' );
      FOR i := 0 TO sl.Count - 1 DO
      BEGIN
        ( FindComponent( 'Checkbox' + IntToStr( i + 1 ) ) AS TCheckBox ).Caption := sl.strings[i];
      END;
    FINALLY
      sl.Free;
    END;
  END;
END;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#6

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 12:30
https://quality.embarcadero.com/browse/RSP-39531
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.052 Beiträge
 
Delphi 12 Athens
 
#7

AW: Text in Checkbox oder Label anzeigen

  Alt 25. Sep 2022, 12:57
Es wird nur die letzte Zeile aus der Textdatei in der Caption der ersten Checkbox angezeigt.
Dann solltest du mal ein kleines Beispielprogramm schreiben, was wir selbst ausprobieren können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz