![]() |
Mehrere Objkete auf einmal anzeigen/ausblenden
Hallo DPler,
mein Problem hört sich zwar einfach an, aber ich möchte es möglichst elegant lösen. Ich möchte ganz einfach mehrer Objekte (also Edits, Buttons, etc.) auf einen Klick verschwinden bzw. anzeigen lassen. Ich könnte nun natürlich alle Objekte einzeln ein- bzw. ausblenden lassen, aber das erscheint mir doch ziemlich unelegant. Wie sollte ich das besser lösen? |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Setze die Objekte auf ein panel und blende das panel aus
|
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Ehrlich gesagt wäre das mein "Not-Lösung" gewesen.
Noch andere Vorschläge? |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
wieso Not-Lösung.
muss doch keiner merken, dass die Komponenten auf nem Panel drauf sind... |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Kann man ein Panel transparent machen?
|
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Du könntest ein Array of TControl (als Konstante) benutzen.
|
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Zitat:
Delphi-Quellcode:
Fehler:
const
test: array[1..2] of TControl = ((Button1),(Button2)); [Fehler] Main.pas(74): E2026 Konstantenausdruck erwartet |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Jetzt, wo du es sagst, fällt mir selbst auf, dass das schlecht gehen kann :wink: .
|
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Hallo erstmal(s)...
wenn's das Panel nicht tut dann setz doch TComponent.Tag der auszublendenden Komponenten auf bestimmten Wert und iteriere über alle Komponenten des Forms. Wenn der Tag der aktuellen Komponente den entsprechenden Wert hat blendest du die Compo aus/ein. Hat den Vorteil, daß du bei verschiedenen Tags auch verschiedene Compos bzw. Zusammenstellungen ein-/ausblenden kannst. |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Guter Idee,
ich werd's versuchen! [OFF]Endlich mal ein Halberstädter hier![/OFF] Danke! |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Hallo Daniel8520, hatte ich beim antworten gar nicht gesehen :shock: :cyclops: ... Da hätte es kürzere Wege gegeben als die Frage und die Antwort einmal im Internet um die halbe Welt zu schicken... :mrgreen: Na ja, die Welt ist halt klein...
|
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Es gab mal eine Funktion FindComponent:
Delphi-Quellcode:
Ich weiss aber nicht ob es die noch gibt(da ich es unter Delphi2006 noch nie ausprobiert habe, unter 3.0 zumindest funktioniert es)
For i:=1 to 27 do
(FindComponent('Edit'+IntToStr(i)) as TEdit).text := 'bla'; |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Hallo,
ich habs jetzt mal so probiert!
Delphi-Quellcode:
Allerdings hat TComponent keine Visible Eigenschaft (siehe Fragzeichen). Wie kann ich nun diese Komponenten mit dem Tag 10 ausblenden bzw. einblenden?
var
m,i: Integer; begin m := MainForm.ComponentCount; for i := 0 to m-1 do begin If MainForm.Components[i].Tag = 10 then begin MainForm.Components[i].??? end; end; end; Danke bis hier her! |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
Hallo,
die Eigenschaft Visible stammt von TControl, also IMHO so:
Delphi-Quellcode:
var aObj : TObject;
i: Integer; begin for i := 0 to ComponentCount-1 do begin aObj := Components[i]; if aObj is TControl then if TControl(aObj).Tag = 10 then TControl(aObj).Visible := False; end; end; |
Re: Mehrere Objkete auf einmal anzeigen/ausblenden
.... genau so. :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz