AGB  ·  Datenschutz  ·  Impressum  







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

Formular ohne VCL

Ein Thema von FriendOfDelphi · begonnen am 12. Sep 2011 · letzter Beitrag vom 15. Sep 2011
Antwort Antwort
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#1

Formular ohne VCL

  Alt 12. Sep 2011, 12:20
Delphi-Version: 5
Hallo Allerseits,

wie kann ich in einem Delphi-Programm ein 2. Fenster ohne die VCL erstellen?
Das Formular erstelle ich mit:
MeinFenster := TForm.Create(???); Aber was muss an die Stelle der Fragezeichen?
Ist der Owner das erste Formular?

Vielen Dank
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:23
TForm ist Teil der VCL. Zu non-VCL gibt es hier in der DP eine Menge Lesestoff, insbesondere Artikel von Luckie!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:24
Wo machst du denn da was ohne VCL?

AnyWay ... als Parameter wird da der Owner erwartet.
Der Owner kümmert sich darum, dass die erzeugte Instanz wieder aus dem Speicher fliegt.

Wenn du dich darum selber kümmerst, dann gib als Parameter einfach Nil an, ansonsten halt den Owner (kann ja auch Application sein) an, der sich um die Freigabe kümmern soll.

Delphi-Quellcode:
var
  MyForm : TForm;
begin
  // Selber kümmern
  MyForm := TForm.Create( nil );
  try
    MyForm.ShowModal;
  finally
    MyForm.Free;
  end;

  // oder

  // Application kümmert sich drum
  MyForm := TForm.Create( Application );
  MyForm.Show;

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Sep 2011 um 12:27 Uhr)
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#4

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:40
Ich habe ein Fenster ganz normal mit der VCL erstellt. Das Hauptfenster. Will ich auch erst einmal so lassen.

Innerhalb des Create des Hauptfensters möchte ich ein 2. Fenster selbst erstellen, dass ich bei Bedarf ein- oder ausschalte und in dem ich zur Laufzeit erzeugte Komponenten anzeigen möchte.

Eigentlich läuft das auch schon alles, solange ich die zur Laufzeit erzeugten Komponenten im Hauptfenster (1. Fenster) anzeige. Dort übergebe ich AOwner und Parent vom Hauptfenster.
Nun möchte ich das Ganze so ändern, dass die zur Laufzeit erzeugten Komponenten alle in einem zusätzlichen, eigenen Fenster dargestellt werden, dass sich auf Knopfdruck öffnet. Der Knopfdruck ist nicht so wichtig. Könnte auch gleich da sein.
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:45
Dafür würde es doch reichen, einfach ein zweites, leeres Fenster zu erstellen, und dies den dynamischen Komponenten als Parent zu geben. Dann bei Bedarf via Show() einblenden.

Du willst übrigens sehr wohl mit der VCL arbeiten: Die VCL ist die Standard-Klassenbibliothek in Delphi, zu der u.a. auch TForm gehört. Was du meinst, ist der Form-Designer. Dieser ist zwar nicht ohne die VCL nutzbar, die VCL ohne den Designer aber sehr wohl - und das würdest du im Wesentlichen dann tun.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:45
PS: VCL ist nicht der Editor mit dem du dein Formular und deine Oberfläche zusammenklickst.

VCL ist die Bezeichnung einer Bibliothek aller visuellen Komponenten/Controls die Delphi dir zur Verfügung stellt.

Non-VCL bedeutet du erstellt alle Fenster, Buttons usw. mit MSDN-Library durchsuchenCreateWindow oder MSDN-Library durchsuchenCreateWindowEx.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#7

AW: Formular ohne VCL

  Alt 12. Sep 2011, 12:54
Ja, dass stimmt.

Ist es denn sehr viel schwieriger, wenn man das 2. Fenster auch zur Laufzeit erstellen will? Ich dachte, dass das vielleicht nur ein kleine Erweiterung des bisherigen was ich habe darstellt (mit den Komponenten habe ich das ganz gut hinbekommen).
Also komme ich um ein vorher mit dem Form-Designer erstelltes leeres Fenster nicht drumherum?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Formular ohne VCL

  Alt 12. Sep 2011, 13:33
Irgendwie denkst Du zu kompiziert.

Sir Rufo hat in #3 geschrieben, wie Du es lösen kannst.

Einfach zur Laufzeit eine Formularinstanz erzeugen und einer Variablen zuweisen.
Dann kannst Du darauf Deine Controls seztzen und das Formular anzeigen.

Alternativ kannst Du das Formular auch schon zur Designzeit definieren. Dann kannst Du automatisch damit arbeiten.

Im Ergebnis kommt das nahezug auf das gleiche raus.

Mein Tipp: Dynamisch würde ich Formulare eigentlich nur erzeugen, wenn ich nicht weiß, wie viele solcher Formulare ich dann zur Laufzeit brauche oder wenn ich jedes Byte unnötigen Speicherplatz vermeiden will.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Formular ohne VCL

  Alt 13. Sep 2011, 13:56
Non-VCL bedeutet du erstellt alle Fenster, Buttons usw. mit MSDN-Library durchsuchenCreateWindow oder MSDN-Library durchsuchenCreateWindowEx.
Ohne Klugscheißen zu wollen, würde ich das eher als die Ausnahme bezeichnen. Der übliche Non-VCL-Weg wären doch MSDN-Library durchsuchenDialogBox-Aufrufe für entsprechende Dialog-Resourcen?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Formular ohne VCL

  Alt 14. Sep 2011, 00:35
Non-VCL bedeutet du erstellt alle Fenster, Buttons usw. mit MSDN-Library durchsuchenCreateWindow oder MSDN-Library durchsuchenCreateWindowEx.
Ohne Klugscheißen zu wollen, würde ich das eher als die Ausnahme bezeichnen. Der übliche Non-VCL-Weg wären doch MSDN-Library durchsuchenDialogBox-Aufrufe für entsprechende Dialog-Resourcen?
Wer sprach denn hier von Dialogboxen? Es ging doch nur ganz allgemein darum den Unterschied zwischen VCL und nonVCL aufzuzeigen am Beispiel von TForm (dachte ich zumindest)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:58 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