Autor Beitrag
BrainChild
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 16:14 
hallo erstmal,

zur allgemeinen erklärung:
ich habe eine form mit mehreren panel die visible false sind
und duch onklicks auf shapes auf true gesetzt werden
in jeden panel befindet sich ein shape!

so und nun zum eigentlichen problem!
ich wollte eine procedure namens closepanel schreiben die durch den click auf den shape im panel das panel auf visible false setzt

gedacht hat ich mir das so:
ausblenden Quelltext
1:
2:
3:
4:
5:
procedure TForm1.closepanel(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Tpanel(sender).visible:=false;
end;


ich musste aber sehr schnell einsehen das das so völligr schwachsinn ist da ja der sender ein shape ist!
gibt es eine möglchkeit das panel, durch den shape, konkret zu identifizieren?

danke fürs durchlesen...

_________________
... we are too young to know everything... (TRESOR|BERLIN)
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 07.11.02 16:26 
Hi
hängt davon ab, wie du die Namen vergibst. Wenn du Shape1/Panel1 oder sonst irgendeinen Zusammenhang hast, kannst du mit FindComponent über den Namen das zugehörige Panel ermitteln.
Aber mal dumm gefragt: Wie willst du dann deine unsichtbaren Panels wieder sichtbar kriegen? :roll:

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 17:12 
indem ich visible auf true stelle? zb durchn click aufn shape!

naja zusammenhang nicht direkt:
OptionPanel: TPanel;
OptionAbbrechen: TShape;

das shape befindet sich doch im panel! gibts da nich ne konstante oder ne function um sowas zu ermitteln?

_________________
... we are too young to know everything... (TRESOR|BERLIN)
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 17:34 
sollte es keine möglichkeit geben würde es mir auch weiterhelfen wenn du mir sagen kannst ob ich zb.: einer klasse ein wert zuweisen kann
also quasi das ich alle panels visible:=false setzen kann
verstehst!

TPanel(alle).visible:=false; :-)

thx

_________________
... we are too young to know everything... (TRESOR|BERLIN)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 07.11.02 18:03 
Wenn sich die Komponten Shape immer auf dem jeweiligen Panel befindet könntest Du halt über die Eingeschaft Parent (von Shape) auf das Panel zugreifen.

Gruß
TINO
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 07.11.02 18:57 
Hi
Tino hat folgendes geschrieben:
Wenn sich die Komponten Shape immer auf dem jeweiligen Panel befindet könntest Du halt über die Eingeschaft Parent (von Shape) auf das Panel zugreifen.

Das wollte ich eigentlich auch zuerst vorschlagen, aber vor nicht allzulanger Zeit hab ich festgestellt, dass die Parent-Eigenschaft immer auf das Formular verweist, wenn die Komponenten zur Entwurfszeit plaziert werden.

LCS hat folgendes geschrieben:

Aber mal dumm gefragt: Wie willst du dann deine unsichtbaren Panels wieder sichtbar kriegen?

Was ich damit meinte ist folgendes: Wenn das Shape auf dem Panel sitzt und das Panel unsichtbar ist, reagiert das Shape auf nicht mehr auf Klicks. Du kannst es also nicht mit einem zweiten Klick wieder sichtbar machen.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 21:13 
you missunderstand me..

es gibt genug shapes auf der form ansich um das panel wieder sichtbar zu machen:-)

mit der parent fkt hat ich auch schon was im sinn aber die verwirklichung war noch weit weg
du sagtest:
Zitat:
...komponenten zur Entwurfszeit

entwurfszeit=laufzeit???

also das panel is schon vorab in der form definiert!

in wie weit funktioniert das?

habt ihr flei denoch ne idee eine ganze klasse einen wert zuzusweisen? aller TPanel(alle).visible:=false; oder so!

_________________
... we are too young to know everything... (TRESOR|BERLIN)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 07.11.02 21:33 
LCS hat folgendes geschrieben:
aber vor nicht allzulanger Zeit hab ich festgestellt, dass die Parent-Eigenschaft immer auf das Formular verweist, wenn die Komponenten zur Entwurfszeit plaziert werden.

Das kann ich mir nicht vorstellen. Wenn ich einen Komponente auf ein tPanel plaziere hat diese Komponente das Panel als Parent Eingeschaft. Vielleicht hast Du ja die Owner-Eigenschaft verwendet. Diese Eigenschaft verweist nämlich auf das Form!

Gruß
TINO
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 21:47 
is ja schon das ihr euch untereunander unterhaltet:-)
aber könntet ihr mich auch einweihen! bidde!
thx

flei so? parent.tshape(sender).visible:=false;

_________________
... we are too young to know everything... (TRESOR|BERLIN)
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 21:50 
is ja schon das ihr euch untereunander unterhaltet:-)
aber könntet ihr mich auch einweihen! bidde!
thx

flei so? parent.tshape(sender).visible:=false;

_________________
... we are too young to know everything... (TRESOR|BERLIN)
BrainChild Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 07.11.02 22:45 
thx für eure mühe!
habs jetz. nur zur information sollte einer auf den beitrag stoßen:

ausblenden Quelltext
1:
tshape(sender).parent.visible:=false;					

war die richtige formulierung

_________________
... we are too young to know everything... (TRESOR|BERLIN)