![]() |
Problem bei Erstellen von banaler GUI
Nabend zusammen.
Bisher habe ich mich ausschlißlich mit der Konsole beschäftigt. Nun soll jedoch das GUI folgen, und ich habe gleich beim ersten Versuch ein Problem. Die Struktur eines GUI-Codes wurde kaum/nicht erklärt(in dem Kurs in dem ich mich vorarbeite), mein Fehler stammt also wohl daher.
Delphi-Quellcode:
Wär nett wenn mir wer helfen könnte. :)
unit moyenne;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) edtA: TEdit; edtB: TEdit; btnCalculer: TButton; lblMoy: TLabel; procedure btnCalculerClick(Sender: TObject); {procedure FormCreate(Sender: TObject); } private { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.btnCalculerClick(Sender: TObject); var aux1,aux2:integer; MOY:real; begin aux1:=StrToInt(edtA.Text); aux2:=StrToInt(edtB.Text); MOY:=(aux1+aux2)/2; lblMoy.Caption:=FloatToStr(MOY); end; end. mfg diavy |
AW: Problem bei Erstellen von banaler GUI
was ist denn Dein Problem ?
|
AW: Problem bei Erstellen von banaler GUI
Hallo...
was geht denn nicht ? :zwinker: Ich tippe mal auf einen Fehler beim "Umrechnen" eines falschen Wertes in einem der Edits... |
AW: Problem bei Erstellen von banaler GUI
Mein Problem ist, dass mein Label leer bleibt.
BTW: Das FormCreate ist in Akkoladen, da ich es in einem Beispiel gesehen habe und somit dachte es wäre von Nöten. Ich bekam jedoch mehrere Fehlermeldungen beim Ausführen, deshalb hab ich es mal zum Probieren in Akkoladen getan. |
AW: Problem bei Erstellen von banaler GUI
ist Deine caption auf visble:= true im Objekt Inspector ?
|
AW: Problem bei Erstellen von banaler GUI
Leider ja.
|
AW: Problem bei Erstellen von banaler GUI
erzeuge mal Dir mal die
Delphi-Quellcode:
durch DoppelKlick im Objektinspektor ...
procedure TfrmMain.FormCreate(...);
dann
Delphi-Quellcode:
dort einfügen. Ist das Label/Text jetzt sichtbar ?
lblMoy.Caption:= 'nur ein kleiner Test';
|
AW: Problem bei Erstellen von banaler GUI
Ist das Event auch mit dem Button verbunden?
Schau mal in den OI, ob es beim Button im OnClick auch wirklich drinsteht. :stupid: Es wurde zwar schonmal erwähnt... Zitat:
|
AW: Problem bei Erstellen von banaler GUI
Tut mir leid kommt nicht mehr vor, ich hab das halt recht hurtig und unsauber geschrieben da ich nur kontrollieren wollte ob es hinhaut. Also bedeutet Event verbinden bei OnClick 'btnCalculerClick' auszuwählen?
Ich hab das auf jeden Fall jetzt mal gemacht. Ich kann jedoch nicht mehr kontrollieren ob es geht, da wenn ich nun F9 drücke mein Quellcode inklusive zu bearbeitender Form einfach noch mal neu aufgeht, ich also kurz gesagt nichts eingeben kann. Ich bin ganz konfus. |
AW: Problem bei Erstellen von banaler GUI
Zitat:
Wie die Methode/Funktion heißt, ist vollkommen egal. Wenn man auf den Button drauf klickst, dann wird das aufgerufen, was im OnClick drinsteht. (ebenso bei den anderen Events, jenachdem wofür sie da sind) Steht dort nichts drin, dann wird auch nichts aufgerufen und demnach auch nicht ausgeführt. Nja, hier isses ja noch nicht so schlimm, aber du wirst ja bestimmt auch mal komplexeren Code schreiben und wenn man dann dort nicht mehr durchsieht, was wie wo abläuft, dann isses nicht so gut. OK, wenn du dich selber durch solchen Code wurschteln willst, dann darfst du es gerne machen, aber erwarte dann nicht, daß sich noch jemand anderes den Code ansieht, wenn irgendwas nicht läuft, denn auch wir hätten gern ein bissl Überblick, um mal schnell drübergucken zu können. Ansonsten könnte es sein, daß alle einfach nur wieder die Seite schließen und keiner antwortet. :zwinker: |
AW: Problem bei Erstellen von banaler GUI
Okay dann wär das jetzt mal geklärt. :)
Bleibt noch die Frage wieso das Programm nicht mehr richtig startet? Wenn ich die Datei ganz normal lade und dann F9 drücke, verschwinden für einen Augenblick "Object TreeView", "Object Inspector" und meine Form auf die ich per Drag&Drop die Objekte plaziert habe. Oben links im Delfi-Fenster, wo normal Delphi 6 - Project 1 steht, steht dann Delphi 6 - Project 1 [Running], und nach weniger als 1 Sekunde ist wieder alles beim Alten. Edit: Kann es damit zu tun haben, dass oben links das Delphi-Fenster Delphi 6 - Project 1 heißt und nicht Delphi 6 - moyenne ? In anderen Worten wäre das Programm nicht richtig ausgewählt und somit würde ein leeres Programm gestartet? Wenn ja, wieso ist das Programm denn nichts ausgewählt obwohl ich es normal über "open" geöffnet habe? |
AW: Problem bei Erstellen von banaler GUI
Wenn du in die Projektoptionen schaust, dann gibt es dort doch einen Tab/Seite "Formulare", oder so.
Was ist dort zu sehen? [edit] Schau mal in die Projektverwaltung. Delphi kann nicht nur ein Projekt geladen haben. |
AW: Problem bei Erstellen von banaler GUI
Falls du das Problem aus dem ersten Beitrag immer noch hast:
Delphi-Quellcode:
procedure TfrmMain.btnCalculerClick(Sender: TObject);
var aux1,aux2:integer; MOY:real; begin aux1:=StrToInt(edtA.Text); aux2:=StrToInt(edtB.Text); MOY:=(aux1+aux2)/2; lblMoy.Caption:=FloatToStr(MOY); lblMoy.Refresh; <-- NEU end; |
AW: Problem bei Erstellen von banaler GUI
Liste der Anhänge anzeigen (Anzahl: 1)
So sieht's aus:
|
AW: Problem bei Erstellen von banaler GUI
Zitat:
|
AW: Problem bei Erstellen von banaler GUI
Liste der Anhänge anzeigen (Anzahl: 1)
Okay, hatte ich falsch verstanden. Mein programm "moyenne" ist da komischerweise nicht aufgelistet obwohl ich es geöffnet habe.
|
AW: Problem bei Erstellen von banaler GUI
Du hast nur das Formular(.dfm + .pas) mit Delphi geöffnet, nicht aber das Projekt (.dpr).
|
AW: Problem bei Erstellen von banaler GUI
Okay das hilft mir weiter. :)
Bleibt nur noch die Frage warum es beim Speichern nicht als project gespeichert wurde? Ich habe "normal" unter File -> Save as gespeichert, es sind jedoch nur folgende Dateien gespeichetr worden: moyenne.~dfm moyenne.~pas moyenne.dcu moeyenne.dfm moyenne.pas Was hätte ich beim Speichern also anders tun sollen damit es als project gespeichert worden wäre? |
AW: Problem bei Erstellen von banaler GUI
Höchstwahrscheinlich, weil du kein Projekt (keine Anwendung) sondern "nur" ein Formular erzeugt hast
|
AW: Problem bei Erstellen von banaler GUI
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab mal zwei Screenshots angehängt für ein neues Projekt und das Speichern
Gruß K-H |
AW: Problem bei Erstellen von banaler GUI
Genial, Danke für die Mühe. :)
|
AW: Problem bei Erstellen von banaler GUI
Könnte mir bitte wer genau schildern wie ich vorgehen muss um ein Programm mit GUI zu speichern und zu laden?
Ich bekomm es nämlich mittlerweile hin ein Programm zu schreiben, wenn ich es jedoch ein ander mal editiere (ergo speichere und lade) funktionniert nie was. Also step by step: Wenn ich das Programm mit Form erstellt habe (File -> New -> Application), die Form so gestaltet habe wie ich es mir vorgestellt habe und die Unit korrekt bearbeitet habe, wie speichere ich richtig? Mir wurde hier gesagt ich sollte nicht File -> Save As benutzen, sondern File -> Save Project As benutzen. Zunächst mal, da werde ich dazu aufgefordert 2 verschiedene Dateien zu speichern (die den Icons zu Folge verschiedene Dateitypen sind). Ganz kegg gefragt, was soll das? Wieso benötige ich 2 verschiedene Dateien? Oder benötige ich eigenltich nicht 2? Wenn das Speichern nun vollzogen ist, und ich Delphi das nächste mal starte, was tue ich dann? File -> Open oder File -> Open Project und zwar welche der beiden Dateien? Oder beide öffnen? Und welches mit Open und welches mit Open Project öffnen? Tut mir leid wenn es euch nervt dass mir anscheinend ein gewisses Grundwissen fehlt, jedoch muss ich zu meinen Gunsten ganz klar sagen dass all dies in meinem Delphi-Kurs regelrecht ignoriert wurde. Ich hoffe es kann mir wer helfen. :) Grüße |
AW: Problem bei Erstellen von banaler GUI
|
AW: Problem bei Erstellen von banaler GUI
Zitat:
Gruß K-H |
AW: Problem bei Erstellen von banaler GUI
Im Grunde gibt es erstmal ein paar Grundtypen an Dateien.
Projektdaten.dpr ... das wird letzendlich die EXE/DLL/BPL (Anwendung/Bibliothek/Package) Diese brauchst du immer. Codedatei.pas ... da steht hauptsächlich dein Quellcode drin (außer man arbeitet nur mit der DPR) Formulardatei.dfm ... das Formular, welches man im Objektdesigner zusammenklickt (dazu gehört immer eine PAS, mit dem Header/Schnittstelle) Und dann gibt es noch Projektgruppen, wo dann mehrere Projekte drin sind. PAS und DFM werden zusammen behandelt und von der IDE für dich ist es wie eine Datei. Wenn du mit der VCL arbeitest, dann ergibt es sich zwangsläufig, daß du mindestens 2 (3) Dateien brauchst. - das Projekt - und mindestens eine Unit / Formularunit Und Formuare alleine kannst du nunmal nicht zu einer EXE kompilieren. - "Formularanwendung" neu erstellen - Projekt speichern (dabei wird auch gleich das speichern der Unit angestoßen) ... - Projekt laden (nicht nur eine Unit) - in Ruhe arbeiten - alles speichern |
AW: Problem bei Erstellen von banaler GUI
Danke für die Hilfe, hab es hinbekommen. :)
Nun stellt sich mir jedoch eine andere Frage, wie kann mehrere Formulare/Units zusammenführen? Ich habe zB das erste Formular fertig, und dann möchte ich, gewisse Informationen die man durchs 1. Formular erhalten hat, im 2. Formular benutzen. Wenn ich die gleiche variable in der 2. Unit benutze, ist die dort unbekannt. Wie kann ich also verschiedene Formulare/Unit "verbinden"? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz