AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmoberfläche dynamisch erzeugen

Ein Thema von meisteralex · begonnen am 7. Sep 2007 · letzter Beitrag vom 7. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#1

Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:00
Hi Leute, ich möchte eine Client - Server - Applikation schreiben, in welcher die Programmoberfläche beim Client dinamisch erzeugt wirde.
Als Beispiel bekommt der Client vom Server z.b. die Information "Zeige eine Tabelle mit 2x2 Spalten an und darunter 2 Buttons welche die Aufschriften 'Speichern' und 'Speichern unter' haben".
Der Client soll nun aus diesen Informationen dynamisch eine Programmoberfläche generieren!
Also so ein bischen wie HTML soll das funktionieren

Ist sowas in Delphi zu realisieren ?

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programmoberfläche dinamisch erzeugen

  Alt 7. Sep 2007, 09:03
natürlich. Wenn du Dinge auf dem Formular zur Designzeit plazierst wird dir das beim Laden abgenommen. Wenn nicht musst du eben genau das machen was sonst automatisch gemacht wird.
Delphi-Quellcode:
ObjectInstanz := TDeinObject.Create(möglicheParameter);
[...]
ObjectInstanz.Free;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#3

Re: Programmoberfläche dinamisch erzeugen

  Alt 7. Sep 2007, 09:08
puhhhh wie mache ich das z.b. mit einem button ?
und wie kann ich dem button dann ne funktion zuweisen ?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:12
such mal nach "dynamisch" da solltest du auch einiges zu dem Thema finden.
Für den Button könnte es so aussehen.
Delphi-Quellcode:
private
  fButtons: Array of TButton;
[...]

var
  lButton : TButton;
begin
  lButton := TButton.Create(Self);
  lButton.Parent := Self;
  lButton.SetBounds(0, 0, 200, 50);
  lButton.OnClick := DeineClickMethode;

  SetLength(fButtons, Length(fButtons) + 1);
  fButtons[Length(fButtons) - 1] := lButton;
[...]
//spätestens zu Programmende wieder zerstören
for i := 0 to Length(fButtons) - 1 do
  fButtons[i].Free;
SetLength(fButtons, 0);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#5

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:40
Zitat von SirThornberry:
Delphi-Quellcode:
//spätestens zu Programmende wieder zerstören
for i := 0 to Length(fButtons) - 1 do
  fButtons[i].Free;
Ist es nicht so, daß das Form sich um die Zerstörung der angelegten Buttons kümmert, da du ja die Form, welche ja in "self" hinterlegt ist, als Parent und als Owner angegeben hast?


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:49
psst! Jemandem der damit anfängt Objekte zu erzeugen sollte gar nicht erst auf die Idee kommen etwas nicht frei zu geben.
Und es schadet ja nicht wenn er es frei gibt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:54
Dann aber FreeAndNil()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:57
ok, da geh ich grad noch mit. Wobei der Programmierer auch so programmieren sollte das er weiß ob ein Object frei gegeben wurde oder nicht und das nicht nur anhand dessen ob die Instanzvariable nil ist. Es gibt einige die führen mehrfach ein FreeAndNil auf ihre Instanzvarible aus anstelle die Programmlogic so zu gestalten das nur einmal das ganze aufgerufen wird und das auch nur wenn es notwendig ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 09:59
Stimmt sicherlich, aber wenn er die Objekte mit einem Owner erzeugt und sie trotzdem händisch freigibt, könnte es sonst zu Problemen kommen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Programmoberfläche dynamisch erzeugen

  Alt 7. Sep 2007, 10:00
Zitat von mkinzler:
Stimmt sicherlich, aber wenn er die Objekte mit einem Owner erzeugt und sie trotzdem händisch freigibt, könnte es sonst zu Problemen kommen.
Nein, denn die Componenten tragen sich in ihrem Destructor aus dem Owner aus. Zu dem weiß der Owner nicht von irgendwelchen Instanzvariablen die es in rauhen Mengen geben kann.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
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