Thema: Delphi Problem bei TStringList

Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#9

AW: Problem bei TStringList

  Alt 11. Jun 2014, 22:00
Geht vermutlich besser und kürzer, aber man sollte nicht übertreiben...
Delphi-Quellcode:
procedure PrintOutAuto2;

  function Toaster(AIndex: Integer): String;
  var
    Zeit: String;
    Info: String;
    StringRoh: String;
  begin
    ShowMessage(Format('Z%d,slA[5d]', [AIndex + 1, AIndex]));
    StringRoh := slA[AIndex];
    Zeit := (Copy(StringRoh, 1, 5));
    Info := StringRoh;
    if Length(StringRoh) > 6 then
      Delete(Info, 1, 6);
    Result := Zeit + ' - ' + Info;
  end;

  procedure Marmelade(ShowX: array of Byte);
  begin
    with Form1 do
    begin
      Show1.Visible := ShowX[0] = 1;
      Show2.Visible := ShowX[1] = 1;
      Show3.Visible := ShowX[2] = 1;
      Show4.Visible := ShowX[3] = 1;
      Show5.Visible := ShowX[4] = 1;
    end;
  end;

var
  Zeit: String;
  Info: String;
  StringRoh: String;
  Zeilen: Integer;
begin
  Zeilen := slA.Count; //Füllen der Zeilen
  ShowMessage(IntTOStr(Zeilen));

  with Form1 do
  begin
    if Zeilen >= 1 then
    //if Length(slA[0]) >= 1 then
      Show1.Caption := Toaster(0)
    else
      Marmelade([0, 0, 0, 0, 0]);

    if Zeilen >= 2 then
    //if Length(slA[1]) >= 1 then
      Show2.Caption := Toaster(1)
    else
      Marmelade([1, 0, 0, 0, 0]);

    if Zeilen >= 3 then
    //if Length(slA[2]) >= 1 then
      Show3.Caption := Toaster(2)
    else
      Marmelade([1, 1, 0, 0, 0]);

    if Zeilen >= 4 then
    //if Length(slA[3]) >= 1 then
      Show4.Caption := Toaster(3)
    else
      Marmelade([1, 1, 1, 0, 0]);

    if Zeilen >= 5 then
    //if Length(slA[4]) >= 1 then
      Show5.Caption := Toaster(4)
    else
      Marmelade([1, 1, 1, 1, 0]);

     {für die ersten 5: zeit + info ausgeben}
    if not Show1.Visible then //Abfangen, falls ShowLabel nicht sichtbar ist
      Show1.Visible := slA.Count >= 1; //Nur aktivieren, wenn wirklich benötigt

    if not Show2.Visible then
      Show2.Visible := slA.Count >= 2;

    if not Show3.Visible then
      Show3.Visible := slA.Count >= 3;

    if not Show4.Visible then
      Show4.Visible := slA.Count >= 4;

    if not Show5.Visible then
      Show5.Visible := slA.Count >= 5;

  end; //with Form1
end;
Natürlich wie immer: ungeprüft
  Mit Zitat antworten Zitat