Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Formular mit Komponenten in laufender Anwendung erstellen. (https://www.delphipraxis.net/70555-formular-mit-komponenten-laufender-anwendung-erstellen.html)

EDatabaseError 31. Mai 2006 20:56


Formular mit Komponenten in laufender Anwendung erstellen.
 
Hi,
kann mir jemand sagen, wie man in einer laufenden Anwendung ein Form mit groupBoxen... erstellen kann???


Mfg

Tobi

Dax 31. Mai 2006 20:59

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Delphi-Quellcode:
var
  MyForm: TForm;
  MyBox: TGroupBox;

MyForm := TForm.Create(Application);
MyBox := TGroupBox.Create(MyForm);
MyBox.Parent := MyForm;
MyBox.Visible := True;
MyForm.Show();
Sollte in etwa hinhauen, allerdings gibts da noch einiges was man verfeinern kann :)

EDatabaseError 31. Mai 2006 21:04

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Cool, geht. danke!


Mfg
Tobi

EDatabaseError 1. Jun 2006 10:15

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
wie kann ich in das Formular noch einen Button machen der OnClick eine Prozedur ausführt???

Mfg
Tobi

EDatabaseError 1. Jun 2006 10:39

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
weiteres Prob:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 tanks[1].formular := TForm.Create(Application);
 tanks[1].formular.BorderStyle := bsSingle;
 tanks[1].Formular.BorderIcons := [biSystemMenu,biMinimize];
 tanks[1].formular.caption := 'AbC';
 tanks[1].formular.ClientHeight := 140;
 tanks[1].formular.ClientWidth := 290;

 tanks[1].p1 := TPanel.Create(tanks[1].formular);
 tanks[1].p1.Parent := tanks[1].formular;
 tanks[1].p1.Visible := true;
 tanks[1].p1.BevelOuter := bvNone;
 tanks[1].p1.caption := '';
 tanks[1].p1.align := alClient;

 tanks[1].gp1 := TGroupBox.Create(tanks[1].formular);
 tanks[1].gp1.Parent := tanks[1].gp1;
 tanks[1].gp1.Visible := true;
 tanks[1].gp1.Caption := 'Test';
 tanks[1].gp1.align := alBottom;

 tanks[1].r := TShape.Create(tanks[1].formular);
 tanks[1].r.Parent := tanks[1].gp1;
 tanks[1].r.Visible := True;                                       //Hier Kommt der Stack-Überlauf
 tanks[1].r.Left := 10;
 tanks[1].r.Brush.Color := clMaroon;
 tanks[1].r.Shape := stCircle;
 tanks[1].r.Pen.Style := psClear;
 tanks[1].r.Width := 25;
 tanks[1].r.Height := 25;

 tanks[1].bar := TGauge.Create(tanks[1].formular);
 tanks[1].bar.Align := alLeft;
 tanks[1].bar.Parent := tanks[1].formular;
 tanks[1].bar.visible := true;
 tanks[1].bar.Kind := gkVerticalBar;
 tanks[1].bar.Width := 80;

 tanks[1].formular.Show();
end;
ich hab im Source ne stelle markiert an der bringt er ne Exception das ein Stck überlauf wäre. Danach hängt sich das Programm inkl. Delphi auf :-(

EDatabaseError 1. Jun 2006 11:26

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Ich hab jetzt viel gelesen... Wie könnte ich das was ich machen will auf dem Heap anlegen???

Das ist die Dekleration:

Delphi-Quellcode:
  tanks : Array[1..10] of Record
        formular : TForm;
        p1       : TPanel;
        gp1      : TGroupBox;
        bar     : TGauge;
        r,ge,gr : TShape;
  end;
UNd da kommt noch was dazu und das Array wird noch vergrößert.



Mfg
Tobi

pszopp 1. Jun 2006 12:06

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Hi,

erstelle das Formular doch einfach zur Design-Zeit.
Dieses Formular kannst du dann in den Projekt-Optionen
von den "automatisch erzeugten" zu den "verfügbaren" verschieben.

Dadurch steht dir das Formular als "Schablone" zur Verfügung.
Du kannst dann mehrere Instanzen davon erzeugen.


Sonst ist mir noch folgendes ausfgefallen:
Delphi-Quellcode:
tanks[1].gp1.Parent := tanks[1].gp1; // Das Parent der Komponente kann nicht die Komponente selbst sein
Viele Grüße,
pszopp

EDatabaseError 1. Jun 2006 13:09

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Das hab ich mitlerweile auhc gemerkt. Ich muss das Form im Projekt erzugen weil ich die Dynamisch brauche.

Der StackError ist nun weg. Kann mir nun noch jemand sagen wie ich ne prozedur bspw. in Form1 beim Button OnClick den ich über Create erzeugt hab aufrufen kann?

TBx 1. Jun 2006 14:01

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
Delphi-Quellcode:
Procedure YourProcedure(Sender: TObject)
begin
  // Dein Code
end;
Delphi-Quellcode:
Button.OnClick:= YourProcedure;
Hope it helps

onlinekater


PS: Nebenher bemerkt: Pro Thread ist nur eine Frage zulässig, mach bitte ggf. einen neuen auf.

EDatabaseError 1. Jun 2006 14:10

Re: Formular mit Komponenten in laufender Anwendung erstelle
 
;-) Das gehört immer noch zur Hauptfrage...

also wenn du deutsch kansch dann schreib au bitte so ;-) ok


Und soweit war ich auch schon:
tanks[a].status.OnClick := Status1Click;

procedure Status1Click;
begin
showmessage('mmep');
end;

-> Fehler Inkompatible Typen: MethodenZeiger und Reguläre Prozedur.


Mfg
Tobi


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz