===== cpShow ===== \\ ==== Einleitung ==== Mit diesem Befehl ist es möglich, ein Windows Fenster anzuzeigen, über das z.B. Eingaben gemacht werden können, um sie später im AddOn-Code zu verarbeiten. Im Gegensatz zu [[cockpit-xp:addon:befehlsreferenz:cpshowmodal|cpShowModal]] ist es möglich, andere Teile von Cockpit-XP weiter zu bedienen, z.B. die Funktionsleiste, solange das Formular aktiv ist. Das kann allerdings auch dazu führen, dass andere Fensters das Formular überdecken und es ohne weitere Aktion im Hintergrund dauerhaft geöffnet ist. Das Thema ''TForm'' ist sehr komplex und in der Kürze kaum zu behandeln. Wer einsteigen möchte, ist im Cockpit-XP Forum gut aufgehoben. Fragen können dort gezielt und umfassender beantwortet werden. \\ ==== Syntax ==== ^ Befehl | cpShow(Form:TForm); | ^ Funktion | Zeigt ein Windows Formular auf dem Monitor an | ^ Typ | | ==== Codebeispiel ===== Ein einfaches Eingabeformular mit Button. \\ var f: TForm; b: TButton; l1 : TLabel; e1 : TEdit; fine: Boolean; // Formular definieren und procedure EingabeFormularZeigen(); begin // f ist das Formularobjekt und wird hier initialisiert f := TForm.Create(nil); f.Caption := 'Cockpit-XP Wiki - Demo Formular'; f.BorderStyle := bsDialog; f.Position := poScreenCenter; // l1 ist das Label (Bezeichner) vor dem Eingabefeld l1 := TLabel.Create(f); l1.Name := 'Label1'; l1.Parent := f; l1.Caption := 'Eingabefeld 1:'; l1.SetBounds(10,40,200,30); // Hier wird das Eingabefeld definiert e1 := TEdit.Create(f); e1.Name := 'Textfeld1'; e1.Parent := f; e1.Text := 'Cockpit-XP - was sonst?'; e1.SetBounds(90,37,200,30); // Hier kommt die Schalfläche b := TButton.Create(f); b.Name := 'Button1'; b.Parent := f; b.SetBounds(10, 100, 100, 30); b.Font.Size := -16; b.Caption := 'Test'; // Diese Prozedur wird aufgerufen, wenn der Button geklickt wird. b.OnClick := @ButtonClick; { same as b.OnClick := 'ButtonClick' } // Variable initialisieren fine := False; // Form f anzeigen cpShow(f); // Solange fine den Wert False hat while not fine do begin // kurz warten cpSleep(250); end; // Schließt das Formular wieder cpFormFree(f); end; // Handler, wenn Button geklickt wurde procedure ButtonClick(Sender: TButton); begin // Meldung anzeigen cpShowMessage('Eingabe hat Wert: ' + e1.Text); // Eigenschaft, wenn auf den Button geklickt wird = OK f.ModalResult := mrOk; // Variable auf True setzen. Formular wird dann geschlossen fine := True; end; // Hauptprogram ab hier --> begin // Ruft das Formular auf und zeigt es an EingabeFormularZeigen(); end. Dieses Beispiel definiert ein Formular mit einem Label (Bezeichner), einem Eingabefeld und einer Schaltfläche (Button). In das Feld kann beliebiger Text eingegeben werden. Klickt man auf den Button, erscheint der eingegebene Text in einer Meldung. Da die Meldung aus dem Ereignishandler des Buttons kommt, wird das Formular erst geschlossen, wenn die Meldung ebenfalls mit Klick auf ''OK'' bestätigt ist. Nach dem Klick auf ''OK'' der Meldung wird die Variable //''fine''// wahr (True). Der Befehl [[cockpit-xp:addon:befehlsreferenz:cpformfree|cpFormFree]] schließt das Formular und gibt belegte Speicherresourcen wieder frei. \\ {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cpshow-cpformfree.png?nolink |}} \\ ---- [[cockpit-xp:start|Start]] - [[cockpit-xp:faq|FAQ]] - [[cockpit-xp:glossar|Glossar]] - [[cockpit-xp:sitemap|Sitemap]] - [[cockpit-xp:impressum|Impressum]]