Autor Beitrag
gta_iv
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 27.11.08 14:40 
Hi Leute,
ich hier als Neuling habe mal eine Frage ;)
Wir programmieren gerade in Informatik (mit Delphi 5) einen Vokabeltrainer mit dem Karteikartenprinzip.
Das klappt auch jetzt schon alles (bis auf SPEICHERN/LADEN) und ich wollte fragen, ob es möglich ist, dass wenn man die Datei öffnet (Project2.exe), dass dann ein kleiner Begrüßungstext kommt (vielleicht mit einer Anleitung), den sollte man dann wegklicken können und man ist im Hauptprogramm.

Im Anhang ist das Programm, sodass Ihr Euch das mal anschauen könnt.

Vielen Dank für Eure Hilfe

Gruß, GTA_IV
Einloggen, um Attachments anzusehen!
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 27.11.08 14:55 
Ja das ist möglich. Du brauchst ein zweites Formular Form2 oder frmGreet, wo du z.B. eine RTF-Datei lädst (-> RichEdit). Und dann stellst du BorderStyle von Form2 auf bsDialog. Und bei Form1.FormCreate schreibst du dann:

ausblenden Delphi-Quelltext
1:
Form2.ShowModal;					


Schließlich legst du auf Form2 noch einen BitButton.
Gewuerzgurke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 152

Win XP
Lazarus
BeitragVerfasst: Fr 28.11.08 10:16 
Also ich habe immer meine Probleme, wenn ich ein Programm mit zwei 'normalen' Formularen erstellen möchte. Das Zweite wird dann nämlich einfach nicht erstellt. Das war bei Delphi 2 schon so und ist bei Delphi 2005 immer noch so. Erst wenn man den Compiler vorher ein wenig ärgert, werden beide Formulare erstellt:
- Man erstellt eine Formularanwendung.
- Man fügt zu dem ersten Formular noch ein Zweites hinzu, so dass in der DPR-Datei dann zwei mal CreateForm steht (Das zweite Formular wird aber nicht erstellt).
- Man stellt bei dem zweiten Formular bei FormStyle fsMDIChild ein (Unter Umständen kommt dabei schon eine Warnmeldung)
- Man klickt trotzdem auf Run und das Programm erzeugt einen Exeption.
- Danach stellt man wieder fsNormal, fsStayOnTop oder fsMDIForm ein und es werden beide Formulare erzeugt :wink:

Verwende diese Methode aber lieber nicht...
Es ist gewiss nur noch eine Frage von Sekunden, bis die ersten Kritikbeiträge dazu kommen.

Mich interessiert jetzt, wie man das ohne Exeption hinbekommt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 11:23 
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Und bei Form1.FormCreate schreibst du dann:

ausblenden Delphi-Quelltext
1:
Form2.ShowModal;					
Das geht nicht, in dem Moment, in dem FormCreate ausgeführt wird, ist das zweite Formular noch gar nicht erstellt. Das passiert in der Projektdatei ja erst danach und auch nur, wenn man die Standardeinstellungen dazu nicht verändert hat.
ausblenden Delphi-Quelltext
1:
2:
Application.CreateForm(TForm1, Form1); // <-- hier bist du beim FormCreate von Form1
Application.CreateForm(TForm2, Form2); // und hier wird Form2 erst erstellt
Deshalb kann man Form2 an der Stelle noch nicht verwenden. Erst in FormShow von Form1 kann man auf Form2 dann zugreifen. Soll das zweite Formular also beim Start angezeigt werden kann man den von user profile iconJakob_Ullmann geposteten Quelltext in FormShow schreiben, d.h. auf Form1 klicken und dann links unten im Objektinspektor unter Ereignisse doppelt auf OnShow klicken und dort den Quelltext eintragen.

user profile iconGewuerzgurke hat folgendes geschrieben Zum zitierten Posting springen:
[einiges wirres Zeug]
:mrgreen:
Mit solchen Umstellungen an sich wirst du nicht viel erreichen, das ist dann Zufall gewesen, dass du es dann richtig aufgerufen hast.

Beim reinen Einstellen von fsMDIChild kommt keine Warnmeldung, denn dass kein Formular mit fsMDIForm existiert weiß ja Delphi an der Stelle nicht bzw. prüft es nicht, sonst müsste man die Einstellungen ja in einer bestimmten Reihenfolge machen (außerdem: Plugins usw.). Dass dann beim Ausführen eine Exception kommt ist klar, denn wo sollte ein Kindfenster hin, wenn es kein passendes Formular mit fsMDIForm hat. Dass die Exception beim Ausführen auftritt ändert aber am Quelltext nix.

Erzeugt werden die Formulare schon beide, aber wenn du es nicht aufrufst, dann siehst du davon nix, und wenn du es bei FormCreate von Form1 aufrufst ist es aus dem oben von mir erläuterten Grund noch nicht da.
Gewuerzgurke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 152

Win XP
Lazarus
BeitragVerfasst: Fr 28.11.08 13:21 
Zitat:
das ist dann Zufall gewesen, dass du es dann richtig aufgerufen hast

Nein, Zufall ist das nicht. Bei mir funktioniert dieser "Trick" immer wieder. Form2.ShowModal; ist natürlich besser, nur kann man sich dies nach dem Exeption anscheinend sparen. Bisher ist mir auch keine Veränderung am Quelltext aufgefallen.

Ich expreimentier' noch ein wenig herum; wenn ich dabei herausfinden sollte, warum das zweite Formular nach dem Exeption sichtbar ist, schreibe ich das noch.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 13:41 
Wie wäre es, wenn du ein Projekt vorher und eins nach diesem Trick anhängen würdest? Das einzige, was mir einfällt ist, dass die Eigenschaft Visible geändert worden sein könnte, vielleicht wird es dann angezeigt, aber das passiert bei mir nicht. So wie du es beschreibst funktioniert es bei mir nicht. :nixweiss:
Gewuerzgurke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 152

Win XP
Lazarus
BeitragVerfasst: Fr 28.11.08 13:45 
Zitat:
was mir einfällt ist, dass die Eigenschaft Visible geändert worden sein könnte

Genau, bim einstellen von fsMDIChild wird dieser Wert auf true gesetzt.

Hätte mir ja mal früher auffallen können :eyes:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 14:00 
Das ist nämlich eine Möglichkeit um ein anderes Formular beim Start sichtbar zu haben: im zweiten Formular Visible im Objektinspektor auf True setzen.

In diesem Fall hier bringt dies aber nix, da man ja dieses zweite Fenster Modal haben soll und danach nach dem Wegklicken dann das erste angezeigt werden soll.
gta_iv Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 29.11.08 10:19 
Hallo Leute (Experten),
vielen Dank erstmal für Eure Antworten.
Leider habe ich vieles davon nicht verstanden ;)
Also am Montag bekommen wir vom Lehrer die B-Note, dass heißt, es wird nur das Layout benotet, wie ergonomisch alles passt usw. Die Funktionen kommen in der nächsten Woche dann.

Was meint Ihr denn, was kann ich am Layout noch verändern, damit es besser wird? Ist es schon übersichtlich?

Ich möchte jetzt folgendes machen:
Wenn man das Programm startet, dann soll es ganz normal starten (wie mein oben gepostetes Programm)...
Dann möchte ich einen Button (oder ähnliches) hinzufügen, wo drauf steht "Anleitung".
Wenn man dann dadraufklickt, dann soll sich ein kleines Fenster öffnen (wie ein Pop-Up), wo dann ein Text drin steht, den ich vorher eingegeben habe.

Vielen Dank
Gruß, Marvin
gta_iv Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 29.11.08 13:11 
Hallo,
mein Vokabeltrainer ist nun fast fertig...
Hab das Layout komplett geändert und ein Hintergrundbild eingefügt.
Wie findet Ihr das neue Design?

Jetzt brauch ich nur noch die "Anleitung-Funktion"...
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 29.11.08 13:14 
Ja, im Buttonclick Form2.ShowModal;, dann wird das Formular Form2 angezeigt, wenn dies der Name deines Anleitungsformulars ist.
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Sa 29.11.08 16:52 
Es wird hier wohl kaum einer eine exe runterladen...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 29.11.08 17:21 
Doch ich, auf nen virtuellen PC. ;-)