Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - 2 form#s miteinander verknüpfen
Sinjai - Do 13.03.08 19:16
Titel: 2 form#s miteinander verknüpfen
hi ich hab da mal ne frage undzwar möchte ich was programmieren(delphi) das dann ca. so ist wie z.b. bein einem installer. ich klicke auf einen button, und es verändern sich nicht nur labels sondern alles ist anders, wie eben wenn ich etwas installiere. doch wie mache ich das?ich dachte daran eine form1 mit einer form2 zu verknüpfen, sodass form 2 bei einem button klick von form1 aufgerufen wird. geht das überhaupt? ps:ich bin noch delphi nooooob
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Do 13.03.2008 um 18:34
Hidden - Do 13.03.08 19:37
Hi,
Es ist sowohl möglich, mehrere Tabs auf eine Form zu platzieren(habe ich selber noch nciht gemacht, sage ich ersteinmal nicht mehr zu) als auch, eine Form von einer anderen anzeigen zu lassen.
Das Anzeigen geht mit show oder showModal, letzteres sperrt die Hauptform solange.
Beim Installationsmanager handelt es sich jedoch eher um Tabs, würde ich sagen.
Bemühe ersteinmal Boardsuche und Google für die Tabs, wenn du mit den Tutorials Schwierigkeiten hast, schreib nochmal.
mfG,
Regan - Do 13.03.08 21:17
Hidden hat folgendes geschrieben: |
Hi,
Es ist sowohl möglich, mehrere Tabs auf eine Form zu platzieren(habe ich selber noch nciht gemacht, sage ich ersteinmal nicht mehr zu) als auch, eine Form von einer anderen anzeigen zu lassen. |
Ich dafür aber. Vergiss bitte die zweite Variante. Die funktioniert eh nicht :P . Nein, die funktioniert zwar, ist aber sehr unsauber.
In Delphi gibt es die Komponenten TPageControl. Dort kannst du ja mal mit rechts draufklicken. Und sonst: Immer ausprobieren.
Yogu - Do 13.03.08 21:44
Ich bin mal gaaanz böse: *hinterSinjaistellundanseinerstellefrag*
Wie kann man denn die Tabs bei einem TPageControl ausblenden? Für einen Installations-Assistenten ist es nicht gerade sinnvoll, die einzlenen Stati / Statusse / Statussen (?) anklicken zu können.
Regan - Do 13.03.08 21:54
Dann würde ich mir mal die Eigenschaft TabVisible anschauen :wink: . Damit sprichst du alle Tabs an und blendest somit die ganze Leiste aus (Wenn keine Tabs anzuzeigen sind, dann wird nicht angezeigt :wink: ).
Mit ActivePageIndex und ActivePage kann man aber trotzdem noch die Elemente anzeigen lassen.
Yogu - Do 13.03.08 21:58
Ach, jetzt seh' ich's auch. Das haben die ja wunderbar hingekriegt - man muss für jede Seite den Tab einzeln ausblenden. Kein Wunder, dass ich da nicht draufgekommen bin - ich habe im eigentlichen
PageControl gesucht. Danke,
Regan!
and now - Back To Topic! ;)
Sinjai - Do 13.03.08 22:45
also ich versteh grad leide nur banhof-.- ich hab keinen lpan was genau ich jetzt machen soll...kann es mir vllt. bitte jemand genau für noos erklären?
Yogu - Do 13.03.08 22:57
Also... Füge eine TPageControl-Koponente ein. Du findest sie in der Registerkarte "Win32". Klicke dann im Kontextmenü des Controls auf "Neue Seite". Du erhältst ein neues TabSheet. Wähle die Eigenschaft TabVisible aus und setze sie auf False. Der Tab wird ausgeblendet.
In den Vortwärts & Rückwärts - Buttons (nicht im TabControl, sondern direkt auf der Form !!) inkrementierst bzw. dekrementierst du den TabIndex des Controls. ... Fertig!
Sinjai - Do 13.03.08 23:04
;( kontext menü des controls? wie öffne ich den das? hab leider keinen plan, ich bekomme es einfach nicht hin...und wenn ich dann da son einen tabcontrol ding habe, wie kann ich denn das beschrifften? und wo soll ich denn das tabcontrol ding hintuhen?
Yogu - Fr 14.03.08 15:53
Sinjai hat folgendes geschrieben: |
| kontext menü des controls? wie öffne ich den das? |
In Windows öffnest du Kontextmenüs normalerweiße mit der rechten Maustaste. Hier ist es nicht anders. ;)
Sinjai hat folgendes geschrieben: |
| und wenn ich dann da son einen tabcontrol ding habe, wie kann ich denn das beschrifften? |
Das
TabControl brauchts du nicht zu beschriften. Dazu sind
TabSheets da. Um so eins zu erzeugen, brauchst du das oben genannte Kontextmenü. Und die TabSheets beschriftest du auch nicht, da kannst du normale Controls einfügen.
Sinjai hat folgendes geschrieben: |
| und wo soll ich denn das tabcontrol ding hintuhen? |
Das ist dann wohl ausschließlich deine Entscheidung. Tu's hin, wo's Platz hat. ;)
Regan - Sa 15.03.08 12:37
Sinjai hat folgendes geschrieben: |
| und wenn ich dann da son einen tabcontrol ding habe, wie kann ich denn das beschrifften? |
Du brauchst es nicht zu beschriften. Du erstellst im Endeffekt Panels, die dann über die Tableiste oben ereichbar sind. Da du aber die Tableiste ausblendest, sieht der Nutzer nur, dass sich die Inhalte ändern.
Sinjai hat folgendes geschrieben: |
| und wo soll ich denn das tabcontrol ding hintuhen? |
Ich würde
Align auf
alClient stellen. Damit füllt es die ganze Form aus.
Sinjai - Mo 17.03.08 20:32
ah doch jez hab ich^^ok jetzt habe ich eine neue setie, aber wie sage ich dem buton das er wenn er geklickt wird diese neue seite öffnet?
Sinjai - Mo 17.03.08 20:52
und es öffnet sich nur einen neue unit, keine form...
Hidden - Mo 17.03.08 21:01
Sinjai hat folgendes geschrieben: |
| ;(wenn ich dann da son einen tabcontrol ding habe, wie kann ich denn das beschrifften? |
ich interpretiere einfach mal, dass du den Schrittfortschritt in der Benennung des Fensters vermerken willst. Schaue dir dazu einmal Form1.caption und ggf. application.title an.
mfG,
Sinjai - Mo 17.03.08 21:02
und wie mache ich das mit dem button?
Hidden - Mo 17.03.08 21:05
Hi,
wie oben beschrieben kannst du die Sichtbarkeit über das TTabControl steuern. Mit dem Onklick-Event des Buttons kennst du dich aus?
mfG,
Sinjai - Mo 17.03.08 21:07
:D nicht wirklich ich gebs auf...kennt jemand ein gute anfänger tutorial für delphi?ich fang einfach nochmal ganz von vorne an
†halia - Mo 17.03.08 21:25
OnClick-Ereigniss des Buttons: Doppelclick auf den Button ...
... und dann schreibst du direkt da, wo dein Cursor blinkt hin, was du den Button tun lassen willst (in diesem Fall eine andere TabSheet zeigen) ;-)
Gruß,
†halia
Sinjai - Mo 17.03.08 21:31
ok danke aber was genau muss ich denn da hin schreiben damit er das TabSheed öffnet? alos mit "open TabSheed2" geht es nicht...
Hidden - Mo 17.03.08 21:31
Hi,
Mit VCL-Tutorials kenne ich mich leider nicht aus, was da gut wäre.
Aber wegen dem Button-Event können wir mal schauen(ich weiß zwar nicht, welche Version von Delphi du hast, aber...). Such dir mal den Object Inspector. Wähle den Button, den du vorher auf die Form gezogen hast aus und gehe auf Events. Ein Doppelklick auf "OnKlick" dürfte dir die Grobform einer Prozedur "Button1Klick" erstellen.
Hier musst du jetzt die Befehle an das TabControl hereinschreiben.
//Zu Spät, nur ergänzend: der Doppelklick auf den Button erzeugt das Hauptereignis. Wenn du mal ein anderes auswählen willst, nimm den Object Inspector und "Events".
mfG,
Sinjai - Mo 17.03.08 21:34
ok aber was mus ich denn hinschreiben???ich höre immer nur :da schreibst du dann hin das er das tabSheed öffnen soll...WAS GENAU DENN?
habe übrigends delphi 7
†halia - Mo 17.03.08 21:44
Das z.B.
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin PageControl1.ActivePage:=TabSheet2; end; |
Wenn sich der Button auf
TabSheet1 befindet, und man ihn dann anklickt, wird
TabSheet2 sichtbar. Einleuchtend? :zwinker:
Gruß,
†halia
Sinjai - Mo 17.03.08 21:45
ja danke dafür war doch garnicht so schwer mir das zu sagen, oder=? danke
Sinjai - Mo 17.03.08 22:13
gibt doch noch ein problem...habe das jetzt so eingestellt, aber wenn ich das programm jetzt ausführe öffnet isch automatisch TabSheet2 und nicht das 1. ...was soll ich machen damit sich automatisch das 1. öffnet?
†halia - Mo 17.03.08 22:14
Kein Thema :)
Ach ja, übrigens:
Wenn du magst, kannst du im Objekt-Inspektor Style von tsTabs auf tsButtons oder tsFlatButtons setzen. Dann hast du den Effekt, dass deine Programmoberfläche nicht so aufgesetzt aussieht. Die Überschriften sind ja ohnehin unsichtbar und nicht auszuwählen, stört dann ja wohl keinen wie sie Lay-Out-mässig aussehen. :wink:
Nur als kleiner kosmetischer Tipp am Rande ...
:wave: †halia
†halia - Mo 17.03.08 22:16
Im Objekt-Inspektor unter ActivePage Tabsheet1 angeben ;-)
Gruß,
†halia
Sinjai - Mo 17.03.08 22:31
ok daaanke für eure gedult mit mir^^ kann ich dort in labels links so einfügen, das man auf sie klicken kann um so z.b. sachen runterzuladen?
Sinjai - Di 18.03.08 09:47
ja danke das brauch ich echt mal
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!