Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Problem bei Erstellen von banaler GUI (https://www.delphipraxis.net/169351-problem-bei-erstellen-von-banaler-gui.html)

diavy 13. Jul 2012 19:21

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:
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.
Wär nett wenn mir wer helfen könnte. :)

mfg
diavy

bernhard_LA 13. Jul 2012 19:26

AW: Problem bei Erstellen von banaler GUI
 
was ist denn Dein Problem ?

haentschman 13. Jul 2012 19:27

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...

diavy 13. Jul 2012 19:36

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.

bernhard_LA 13. Jul 2012 19:47

AW: Problem bei Erstellen von banaler GUI
 
ist Deine caption auf visble:= true im Objekt Inspector ?

diavy 13. Jul 2012 19:48

AW: Problem bei Erstellen von banaler GUI
 
Leider ja.

bernhard_LA 13. Jul 2012 19:57

AW: Problem bei Erstellen von banaler GUI
 
erzeuge mal Dir mal die
Delphi-Quellcode:
procedure TfrmMain.FormCreate(...);
durch DoppelKlick im Objektinspektor ...
dann
Delphi-Quellcode:
lblMoy.Caption:= 'nur ein kleiner Test';
dort einfügen. Ist das Label/Text jetzt sichtbar ?

himitsu 13. Jul 2012 21:31

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:

Und 'ne halbwegs ordentliche Codeformatierung macht das alles bestimmt lesbarer.

diavy 13. Jul 2012 21:51

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.

himitsu 13. Jul 2012 22:07

AW: Problem bei Erstellen von banaler GUI
 
Zitat:

Zitat von diavy (Beitrag 1174644)
Also bedeutet Event verbinden bei OnClick 'btnCalculerClick' auszuwählen?

Jupp.

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:

diavy 13. Jul 2012 22:23

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?

himitsu 13. Jul 2012 23:39

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.

Andreas L. 14. Jul 2012 09:28

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;

diavy 14. Jul 2012 11:09

AW: Problem bei Erstellen von banaler GUI
 
Liste der Anhänge anzeigen (Anzahl: 1)
So sieht's aus:

Andreas L. 14. Jul 2012 12:00

AW: Problem bei Erstellen von banaler GUI
 
Zitat:

Zitat von diavy (Beitrag 1174666)
So sieht's aus:

Ein Screenshot vom Project Manager (Menü > View > Project manager / explorer) wäre besser.

diavy 14. Jul 2012 12:06

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.

Andreas L. 14. Jul 2012 12:19

AW: Problem bei Erstellen von banaler GUI
 
Du hast nur das Formular(.dfm + .pas) mit Delphi geöffnet, nicht aber das Projekt (.dpr).

diavy 15. Jul 2012 12:11

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?

mkinzler 15. Jul 2012 12:14

AW: Problem bei Erstellen von banaler GUI
 
Höchstwahrscheinlich, weil du kein Projekt (keine Anwendung) sondern "nur" ein Formular erzeugt hast

p80286 15. Jul 2012 12:55

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

diavy 15. Jul 2012 15:25

AW: Problem bei Erstellen von banaler GUI
 
Genial, Danke für die Mühe. :)

diavy 26. Jul 2012 11:48

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

hathor 26. Jul 2012 11:52

AW: Problem bei Erstellen von banaler GUI
 
Lies mal was!

http://www.stelzmann-duesseldorf.de/.../Crashkurs.pdf
http://zeus.nyf.hu/~bajalinov/my_spe...erhandbuch.pdf
http://de.wikibooks.org/wiki/Datei:P...Delphi_1.1.pdf
http://www.christian-stelzmann.de/in...ials_crashkurs

p80286 26. Jul 2012 12:20

AW: Problem bei Erstellen von banaler GUI
 
Zitat:

Zitat von diavy (Beitrag 1175967)
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.

Das hat ja eigentlich wenig mit Delphi zu tun, sondern ist eher ein "Problem" der IDE. Und zumindestens in D7 gab es da ein paar Infos in der Online Hilfe.

Gruß
K-H

himitsu 26. Jul 2012 12:45

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

diavy 11. Aug 2012 10:39

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 06:38 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