Autor Beitrag
monty.ms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Mi 25.05.05 17:14 
Hallo

Ich hoffe mal das mein Problem in die Sparte hier rein gehörte.. die anderen trafen nicht so zu ^^

Ich habe in meinem Programm mehrere Panels (übereinander, Align=Client)! Ein Panel ist sichtbar, die anderen nicht! Wenn ich nun einen anderen Panel sichtbar mache, und den ersten wieder unsichtbar, dann vollzieht er zwar den wechsel, aber nicht vollständig! D.h: Ich habe weitere Komponenten (Memo, Edit, Labels..) auf dem nun sichtbaren Panel.. allerdings werden z.b das Edit nicht angezeigt! Visible ist an, also kann es daran nicht liegen..

Hat einer eine Idee warum es nicht funktioniert?

Hier mal ein kleiner Auszug aus dem Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
 if client=true then
  begin
   nxt:=AThread.Connection.ReadLn();
    if nxt='nxt001' then
     begin
      PMain.Visible:=true;
      PClient.Visible:=false;
     end;
  end;
end;

procedure TForm1.Label13Click(Sender: TObject);
begin
with idTCPClient1 do
    begin
     try
      Connect(500);
      WriteLn('nxt001');
      Disconnect;
      PMain.Visible:=true;
      PServer.Visible:=false;
     except
      ShowMessage('Verbindung zum Server fehlgeschlagen!');
     end;
    end;
end;


Die beide gehen natürlich von verschiedenen PCs aus.. Mit dem Verbinden sollte es keine Probleme geben, da ja alles ankommt und er zumindest ansatzweise den Panel wechselt, daher habe ich es auch nicht in die Internet Sparte getan! ..

Hoffe mir kann jemand helfen =) .. danke schonmal

edit: Wenn ich das Fenster dann schließe, kommt folgender Fehler:

"Exception EOSError in module WDO_ct1.exe at 0000CBE6.
System Error. Code: 1400.
Ungültiges Fensterhandle."
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Mi 25.05.05 23:28 
hi,
ich muss gestehen, so ganz habe ich nicht verstanden, was du erreichen willst.
Ich interpretiere das mal so:
Du hast im Fenster mehrere Panels definiert, die alle Align = client sind. Sie liegen alle übereinander, und wenn du eins davon brauchst, dann bringst du es nach vorn. Dabei erscheinen dann aber Komponenten, die eigentlich nicht erscheinen sollten.

Für mich wäre da erst mal entscheident, was du überhaupt darstellen möchtest.
Mehrere Panels, die alle auf alClient geschaltet sind, würde ich prinzipiell schon nicht machen. Aber egal.
Sag mir erst mal, was du erreichen möchtest, dann denke ich mir eine Lösung aus.

Gruß, Feivel
monty.ms Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Do 26.05.05 00:07 
Zitat:
Du hast im Fenster mehrere Panels definiert, die alle Align = client sind. Sie liegen alle übereinander


das ist richtig!

Zitat:
und wenn du eins davon brauchst, dann bringst du es nach vorn. Dabei erscheinen dann aber Komponenten, die eigentlich nicht erscheinen sollten.


nicht ganz.. die Panels, die ich brauche, sind "visible=true", welche ich nicht brauche sind, "visible=false" ! .. wenn ich nun, die Panels tausche, also die, die sichtbar waren, werden nun unsichtbar, und die panels die nicht sichtbar waren, werden sichtbar. Auf der nun sichtbaren Panel, sind ebend nur einige Komponenten erschienen, obwohl auf dem Panel noch einige andere drauf sind!

nun zum prinzip: .. =) keine Ahnung ob es Sinnvoll ist, oder nicht.. zumindest weis ich keinen anderen Weg wie ich das anders machen kann! .. Also, auf jedem Panel ist sozusagen ein anderes Interface, daher will ich die Panels, je nach dem was ich gerade machen will tauschen können!
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Do 26.05.05 12:06 
Hi,
lass die Panels alle sichtbar und leg sie übereinander. Wenn du eins nach vorn bringen willst, dann schreib

ausblenden Delphi-Quelltext
1:
Panel1.BringToFront;					


Damit legt es sich vor alle anderen.

Gruß, Feivel
monty.ms Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Do 26.05.05 18:06 
funktioniert jetzt =) .. ich bedanke mich!


mfg monty