nein, nicht wirklich:
Delphi-Quellcode:
procedure TForm1.BitBtnDruckenClick(Sender: TObject);
var
iChecked, iZaehler, iGecheckteFrames, iY, iRunter, iErstellteFrames, i: Integer; // hier schon einrücken
begin
Formular := TForm.Create(Self); // Leerzeichen
Formular.ClientHeight := 1500;
Formular.ClientWidth := 670;
L := TComponentList.Create; // Leerzeichen + Groß/Kleinschreibung
L.OwnsObjects := False;
iGecheckteFrames := 0;
iErstellteFrames := 0;
iY := 0;
iRunter := 0;
iZaehler := 0;
for iChecked := 0 to CheckListBox1.Items.Count - 1 do
begin // Was soll in der Schleife laufen? Bis incl. Formular.Show? Dann wird das Formular Items.Count mal angezeigt.
if CheckListBox1.Checked[iChecked] then
begin // alles folgende wird bei Checked durchgeführt, Formular.Show aber immer
if iZaehler < 10 then
begin
Frames := TFrame4.Create(Self);
L.Add(Frames);
Frames.ClientHeight := 200;
Frames.Name:='';
iZaehler := iZaehler + 1;
iGecheckteframes := iGecheckteframes + 1;
Frames.Parent := Formular;
end;
//end; dieses End würde bedeuten dass die Checked-Bedingung nur bis hierher gelten würde
case iZaehler of
10: begin
for I := l.Count -1 downto 0 do
begin
Frames:= (L[i] as TFrame4);
Frames.Free;
iZaehler := 0;
end;
//begin <- unnötig
if iGecheckteFrames = 13 then
ShowMessage('Formular in Zwischenablage kopieren + Formular leeren');
//end; < unnötig
end;
0: begin
Frames.Top := iY;
if iGecheckteFrames = 13 then
ShowMessage('Zwischenablage drucken + aktuelle Form leeren');
end;
2..5: begin
Frames.Top := iY + Frames.ClientHeight;
iY := Frames.Top;
Frames.Parent := Formular;
if iGecheckteFrames = 13 then
ShowMessage('Zwischenablage drucken + aktuelle Form drucken');
end;
6: begin
Frames.ClientHeight := 200;
Frames.Name := '';
Frames.Left := 350;
end;
7..9: begin
Frames.Left := 350;
Frames.Top := iRunter + Frames.ClientHeight;
iRunter:= Frames.Top;
if iGecheckteFrames = 13 then
ShowMessage('Zwischenablage drucken + aktuelle Form drucken');
end;
end;
end;
Formular.Show;
end;
end;
Soweit mal ungetestet auf die Schnelle.
Auf jeden Fall hat man jetzt die Chance, sich ungefähr zurecht zu finden.
Die Leerzeichen und Groß/Klein-Schreibung ist vielleicht etwas Krümelkackerei, man sollte sich das aber gleich so angewöhnen, da man so viel schneller mögliche Tippfehler findet.
Ich weiß aber ehrlich gesagt jetzt nicht genau, was Du genau erreichen willst bzw. wo etwas nun nicht wie erwartet klappt (Du hast da einfach schon zu viele Varianten beschrieben).
Also nun nochmal:
- ordne Deinen Quelltext
- setze einen Breakpoint und arbeite den Quelltext schrittweise ab
- stelle konkrete Fragen mit präziser Problembeschreibung (dann kommt man oft bei einer Problemformulierung schon selbst auf die Lösung - kannst Du mir glauben
)