Hallo Leute,
bin ziemlich neu hier, also erstmal Gruß an alle und dann natürlich gleich ans Eingemachte.
Die Fragestellung: Wie lösche ich zur Laufzeit erzeugte Images???
Beschreibung allgemein: Durchlaufe eine Datenbank mit den üblichen Controls. In Abhängigkeit eines
Datenbankfeldes lasse dann die Images anzeigen.
Beim 1.mal sind von mir aus 4 Images erzeugt worden.
Beim 2.mal sind vielleicht nur 2 Images vorhanden.
Angezeigt sind aber noch die letzten 4 Images.
Wie bekomme ich also die ersten 4 Images wieder weg.
Das ganze wird auf einem TabSheet-Control dargestellt.
Delphi-Quellcode:
procedure hole_Images(tmpStr:String);
var
sSymbol, sDateiname : string;
myPos, myLength : integer;
mySearchText : string;
myImg: TImage;
myLeft : integer;
myTop : integer;
myWidth : integer;
myHeight : integer;
begin
begin
myPos := 1; // Start für While-Schleife setzen, damit sie mindestens 1.mal durchlaufen wird
mySearchText := sSymbol; // hier könnte sowas wie 'nr,af,er,tre ....' stehen (z.B. nr.jpg)
myLength := Length(sSymbol);
myLeft := 8; // Startposition der Images
myTop := 280;
myWidth := 80; // Größe des Images
myHeight := 80;
if myLength > 0 then // nur abarbeiten wenn Symbol-Text vorhanden ist
begin
while (myPos > 0) do // Solange durchfahren wie Text da ist
begin
myPos := pos(',', sSymbol); // Position des Trennungszeichens ermitteln
if myPos = 0 then // kommt nur einmal vor
begin
tmpStr := sSymbol; // kommt nur mehrmals vor
end else
begin
tmpStr := copy(sSymbol, 1, myPos - 1); // String herausfiltern
end;
sDateiname := tmpStr + '.jpg';
myImg := TImage.Create(Self); // neues Images erstellen
with myImg do
begin
Left := myLeft;
Width := myWidth;
Height := myHeight;
Top := myTop;
parent := PageControl1.ActivePage; // Hier auf den richtigen Tabsheet setzen
picture.LoadFromFile(sServer_Name + 'Symbole\' + sDateiname); // Hier mein Bild
end;
delete(sSymbol, 1, myPos); // String kürzen
myLength := Length(sSymbol); // neue Länge des Strings bestimmen
PageControl1.ActivePage.Refresh; // Anzeige auffrischen
myLeft := myLeft + 88; // nächste Startposition eines Images
end;
end;
end;
end;
vielen Dank schon mal im Voraus .... Horst