Danke,
das war aber bloß ein Kopierfehler! Ärgerlich - Asche auf mein Haupt...
Richtiger:
Code:
procedure TMainForm.Neues_Blatt(Sender: TObject);
// ... erzeugt neuen Frame innerhalb Scrollbox
// ... TFrameAnzeige = class(TFrame) in separater
Unit
var Anzeige : TFrameAnzeige; // ob global oder hier müßte egal sein
begin
...
Anzeige := TFrameAnzeige.Create(ScrollBox1);
Anzeige.name := 'Anzeige' + IntToStr(Anzahl_Neu);
Anzeige.Parent := MainForm.ScrollBox1;
Anzeige.SetBounds (0, 0, ScrollBox1.Width -5, 116); // Links, Oben, Weite, Höhe
// ... Name eindeutig, Positionierung auf Defaultwerte 0,0 ..
end;
procedure TMainForm.Anordnen(Sender: TObject);
var i : integer;
begin
// Anzahl_neu ist der Strtoint-Wert der dem Namen angehängt wird
for i := 0 to Anzahl_Neu do
if (FindComponent('Anzeige' + IntToStr(i)) as TFrameAnzeige) <> nil then
with (FindComponent('Anzeige' + IntToStr(i)) as TFrameAnzeige) do begin
// ... nur Positionen lesen und neu setzen - hier unwichtig...
end;
end;
---
Aber die Korrektur dessen bringt mir auch keinen Erfolg.
In der Procedure "Neues_Blatt" wird ein gegebener TFrame erzeugt und korrekt auf die Scrollbox gelegt. Name ist eindeutig und sollte doch wieder-findbar sein.
In der zweiten Procedure "Anordnen" müßte dieser Frame als Komponente anundfürsich gefunden werden können. Meineserachtens ist "TFrameAnzeige" immer noch richtig in FindComponent und muß nicht durch TFrame ersetzt werden.
Muß denn irgendwas verbogen werden, damit damit das Prog meine Komponenten wiederfindet?
Alle 'Align' sind auf "alNone" gesetzt und ich will doch nur nach gewissen Kriterien manuell sortieren.
2. Frage: Müssen die Komponenten aus "TFrameAnzeige" (type TFrameAnzeige = class(TFrame)...) ggf. oben im Hauptprogramm wiederholt werden, doch wohl nicht?
Ich bin betriebsblind...
Danke
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...