(Gast)
n/a Beiträge
|
AW: Problem bei TStringList
11. Jun 2014, 23: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
|
|
Zitat
|