AGB  ·  Datenschutz  ·  Impressum  







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

Eine Form mehrfach anzeigen

Ein Thema von S - tefano · begonnen am 15. Mai 2003 · letzter Beitrag vom 16. Mai 2003
Antwort Antwort
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#1

Eine Form mehrfach anzeigen

  Alt 15. Mai 2003, 16:03
Hi,

erstmal: Sorry wenns hier nich hingehört, war mir nich so sicher.
Wer die Vorgeschichte zu meiner Frage wissen will, der möge sich bitte diesen Beitrag von mir im TCP/IP- Forum ansehen.
Jetz aber mein Problem.
Ich will eine Form, die ganz normal mit Unit und .dfm in meinem Projekt drin is, mehrmals anzeigen. Undzwar nicht so, dass man sie einfach öfter sieht, sondern dass quasi auch die Unit mit ihren Variablen bei jedem Aufruf nen neuen Speicherbereich bekommt. Also quasi als würd man ein Programm mehrmals starten. Dann isses ja auch mehrmals da und jede vom Programm verwendete Variable existiert für jedes der Programme einmal im Speicher.
Geht das überhaupt so ganz normal mit Units? Oder muss ich mich da irgendwie in Richtung DLL orientieren?
Wer immer noch nich weiß was ich meine, mir is grad nochn gutes Beispiel eingefallen, was sich auch auf mein Problem bezieht: ICQ. Da gibt es ja auch ein normales Telegramm- Fenster was mehrfach geöffnet werden kann.

Danke schonmal für eure Hilfe.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#2
  Alt 15. Mai 2003, 18:07
Erzeuge einfach 4 Instanzen über einen Pointer der Formularklasse und du hast 4 unterschiedliche Speicherbereiche mit jeweils gleichem Inhalt.

Wo ist da das Problem?
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#3
  Alt 15. Mai 2003, 18:29
Hi,

Problem Nr. 1: Hab keine Ahnung von Pointern...
Problem Nr. 2: So wie ich das seh hätt ich dann in jedem Fall ne begrenzte Anzahl an Instanzen zur Verfügung. Ich will ja so viele wie der User gerade will öffnen können.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#4
  Alt 15. Mai 2003, 19:37
PointeraufKlasse : TMeinFormular; // Pointer : Klasse; Es gibt keine logische Begrenzung, mit dem dummen Formular kannste dir den ganzen Speicher vollhauen.

Vielleicht noch ein wenig F1 und da nach 'create' suchen, dann sollte dir ein Licht aufgehen.
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#5
  Alt 15. Mai 2003, 20:27
Hi,

wieder zwei Probleme:
1. Gibts unter F1-> create seeeeeeeeehr viele Punkte, und
2. Funktionierts nich.

Delphi-Quellcode:
var
 pointerdings: TOKRightDlg;
begin
{ pointerdings.Create(self); }
 pointerdings.Show;
end;
Je nach dem, ob ich das Create ausklammere oder nicht. Beim Ausklammern passiert garnix (woran das wohl liegt), und wenn ich es nicht ausklammere kommt ne Exception vonwegen "A component named Button2 already exists". Hab das Ganze in das OnClick- Ereignis von Button2 auf Form1 implementiert.
Der Dialog heißt wirklich so und steht in der uses- Liste. Auf dem Dialog hab ich alle Buttons entfernt.
Wenn ich jetzt den Dialog direkt aufrufe, krieg ich ne ähnliche Exception die dann das Bevel auf dem Dialog betrifft, dieses existiere ebenfalls schon.
Hmhmhm, vielleicht erklärst du mir das Ganze mal näher oder gibst mir genauere Anhaltspunkte in der Delphi- Hilfe.
Danke schonmal.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#6
  Alt 15. Mai 2003, 22:22
Es scheinen viele hier Probleme mit der Hilfe zu haben, ich persönlich finde sie sehr gut!

So initialisiert man eine Klasse zu einem Objekt:
Delphi-Quellcode:
var
  Pointer : THilfeLesenKannKeinSchwein;
begin
  Pointer := THilfeLesenKannKeinSchwein.create;
  Pointer.show;
  // über das Zerstören des Objektes sollte man sich auch Gedanken machen
end;
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#7
  Alt 15. Mai 2003, 23:40
Hi,

wunderbar! Danke, klappt prima!
Nur hast du vergessen, dass du dem create nen Parameter (ich hab self genommen) übergeben musst.
Danke nochmal!

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#8
  Alt 16. Mai 2003, 11:15
Wobei der Parameter 'self' nicht sich selber meint, sondern das Formular wo das Create ausgerufen wird!

Wird gerne verwechselt!
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#9
  Alt 16. Mai 2003, 11:42
Schau dir mein Pointer-Tut an (unter www.x-spy.net/personal)... da wird genau das gemacht was du willst - Multiple Instanzen einer Form
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#10
  Alt 16. Mai 2003, 14:13
Hi,

jo, das mit dem self weiß ich zum Glück (bin da bei meiner ersten Komponente drüber gestolpert).
@Motzi:
Ufffff. Bin ja mal gespannt ob ich mich da dieses Wochenende wohl dran setz. Scheinst dir aber ganz schön Arbeit gemacht zu haben, deine Seite is auch nich schlecht.
Aber auch so nochmal danke für eure Ideen, bin begeistert wie leicht das ohne viel Code funktioniert hat.
Hoffe mein Prog so bald wie möglich fertig zu bekommen, damit ichs hier vorstellen kann.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  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 21:23 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