Bilder ersetzen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Grafikdateien laden und speichern

Sie können die Grafik in einem Bild-Steuerelement jederzeit durch eine andere ersetzen. Wenn Sie einem Bild, dem bereits eine Grafik zugeordnet ist, eine neue Grafik zuweisen, ersetzt diese die vorhandene Grafik.

Um ein Bild in einem Bild-Steuerelement zu ersetzen, weisen Sie dem Picture-Objekt des Bild-Steuerelements die neue Grafik zu.

Beim Erstellen einer neuen Grafik gehen Sie genauso vor wie beim Erzeugen einer Anfangsgrafik. Sie sollten aber dem Benutzer die Wahl einer anderen Größe (als der Standardgröße für die Anfangsgrafik) ermöglichen. Eine einfache Möglichkeit, diese Option bereitzustellen, bietet die Anzeige eines Dialogfeldes.

Nehmen Sie die Dialogfeld-Unit in die uses-Klausel der Hauptformular-Unit auf. Anschließend weisen Sie dem Ereignis OnClick für den Menübefehl Datei > Neu eine Ereignisbehandlungsroutine zu. Ein Beispiel:



 procedure TForm1.New1Click(Sender: TObject);
 var
 Bitmap: TBitmap;{ Temporäre Variable für das neue Bitmap }
 begin
 with NewBMPForm do
 begin
 ActiveControl := WidthEdit;{ Das Feld muss für die Breiteneinstellung fokussiert sein }
 WidthEdit.Text := IntToStr(Image.Picture.Graphic.Width);{ Aktuelle Abmessungen... }
 HeightEdit.Text := IntToStr(Image.Picture.Graphic.Height);{ ...als Vorgabe verwenden }
 if ShowModal <> idCancel then { Wenn der Benutzer das Dialogfeld nicht verlässt,... }
 begin
 Bitmap := TBitmap.Create;{ ... neues Bitmap-Objekt erstellen }
 Bitmap.Width := StrToInt(WidthEdit.Text); { Angegebene Breite verwenden }
 Bitmap.Height := StrToInt(HeightEdit.Text);{ Angegebene Höhe verwenden }
 Image.Picture.Graphic := Bitmap; { Grafik durch neues Bitmap ersetzen }
 CurrentFile := ""; { Verweist auf unbenannte Datei }
      Bitmap.Free;
 end;
 end;
 end;



 void __fastcall TForm1::New1Click(TObject *Sender)
 {
 Graphics::TBitmap *Bitmap;
   // Das Feld muss für die Breiteneinstellung fokussiert sein
  NewBMPForm->ActiveControl = NewBMPForm->WidthEdit;
   // Mit aktuellen Abmessungen initialisieren ...
      NewBMPForm->WidthEdit->Text = IntToStr(Image->Picture->Graphic->Width);
 NewBMPForm->HeightEdit->Text = IntToStr(Image->Picture->Graphic->Height);
   if (NewBMPForm->ShowModal() != IDCANCEL){        // Wenn der Benutzer das Dialogfeld nicht verlässt,...
 Bitmap = new Graphics::TBitmap();             // neues Bitmap-Objekt erstellen
     // Angegebene Abmessungen verwenden
      Bitmap->Width = StrToInt(NewBMPForm->WidthEdit->Text);
 Bitmap->Height = StrToInt(NewBMPForm->HeightEdit->Text);
 Image->Picture->Graphic = Bitmap;            // Grafik durch neues Bitmap ersetzen
 CurrentFile = EmptyStr;                      // Verweist auf unbenannte Datei
         delete Bitmap;
 }
 }



Anmerkung:  Durch das Zuweisen eines neuen Bitmaps an die Eigenschaft Graphic des Bildobjekts wird das neue Bitmap in das Bildobjekt kopiert. Das Bildobjekt wird jedoch nicht zum Eigentümer des Bitmap. Das Bildobjekt verwaltet ein eigenes internes Grafikobjekt. Daher wird im obigen Beispiel das Bitmap-Objekt nach der Zuweisung an das Bildobjekt freigegeben.

Siehe auch