AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Alle Timages mit einem Befehl unsichtbar machen
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Timages mit einem Befehl unsichtbar machen

Ein Thema von Nightblade · begonnen am 23. Jul 2011 · letzter Beitrag vom 27. Jul 2011
Antwort Antwort
Nightblade

Registriert seit: 19. Jul 2011
6 Beiträge
 
#1

Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 19:47
Hallo.

Ich bin absoluter anfänger und hoffe hier kann mir jmd. helfen.

Gibt es einen Befehl, mit dem ich ganz einfach alle TImages auf einmal unsichtbar machen kann?
Ich habe 7 Images auf einem Form wobei immer nur ein bestimmtes angezeigt werden soll.

Bisher habe ich es immer so gemacht.

elb.show;
ebh.Visible := false;
hbg.Visible := false;
hbk.visible := false;
hhk.visible := false;
hhg.visible := false;

Da nun aber immer mehr Bilder hinzukommen, sollen erst einmal alle TImages auf visible := false gesetzt werden. Danach möchte ich ein bestimmtes Bild wieder anzeigen.

Ich möchte aber auch vermeiden, dass ich immer jedes einzelne Image manuell auf false setzen muss.

Wär super wenn ich von euch irgendwie eine eingebung bekomme.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 19:52
Schreibe dir eine kleine Funktion, die alle Images versteckt.
Dann einfach diese Funktion aufrufen und danach ein Bild wieder sichtbar machen
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#3

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 20:01
Delphi-Quellcode:
procedure TMyForm.ShowImageHideOther(Image: TImage);
var
  i: Integer;
begin
  for i := 0 to Pred(ControlCount) do
    if (Controls[i] is TImage) then
      TImage(Controls[i]).Visible := Controls[i] = Image;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.195 Beiträge
 
Delphi 12 Athens
 
#4

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 20:03
In einer Schleife alle Controls durchgehn, von denen die Form der Owner ist,
deren Typen (via IS) auf TImage prüfen und bei denen das Visible setzen.

Die VCL setzt standardmäßig den Owner für alle geladene Komponenten auf die Form.

[edit]
Daß hier auch alle gleich alles vormachen müssen ... wie soll man denn da sein Programm selber schreiben?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#5

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 21:53
Die VCL setzt standardmäßig den Owner für alle geladene Komponenten auf die Form.
Wobei hier ausschlaggebend ist das die Form der Parent ist und somit für die Darstellung verantwortlich. Sonst würde man mit Components[] und ComponentCount arbeiten.

Grüsse, Dirk
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.195 Beiträge
 
Delphi 12 Athens
 
#6

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 22:05
Nja, auch wenn die Form nicht der Parent ist, wird sie dennoch der Owner sein.
Liegt die Komponente auf einem Panel, ist das Panel der Parent und die Form der Owner.
(wenn die Form über die VCL aus einer DFM geladen wurde)

Da gibt es ja zwei Listen in TContols/TWinControls?
Ich glaub .Components und .Controls - das Eine für die Parent-Verknüpfungen und das Andere für die Owner-Verknüpfungen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#7

AW: Alle Timages mit einem Befehl unsichtbar machen

  Alt 23. Jul 2011, 22:15
Jap, Controls für den Parent-Bezug, Components für Owner.
Zitat von Nightblade: "7 Images auf einer Form".. auch wenn er sich selbst um die Freigabe kümmert ".Create(nil)" sollten die Images somit in Controls[] auftauchen.
Ist aber Erbsenzählerei, vermutlich funktioniert beides
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz