Autor Beitrag
Camal
Hält's aus hier
Beiträge: 5

WIN!
D7 Prof.
BeitragVerfasst: So 03.10.04 14:48 
hi,

also zuerst, ich schreibe morgen eine programmier arebit...naja die praxis kann ich ja..aber mein leher meinte wir machen noch ein wenig theorie mit...also sprich, er gibt uns ein paar begriffe und wir sollen sie erklären..nunja..ich habe dann mein buch nach begriffen durchsucht..aba das buch ist ziemlich weak...deswegen wollte ich euch mal paar dinge fragen...und wenn es geht könntet ihr mir erklären was sie bedeuteten...

begriffe :

deklaration, ich weiss das man variabeln deklarieren muss..aba was bedeutet deklarieren genau ?

definition, ?

für was braucht man "with form1 do" ? also ein bespiel wäre nett..was wäre wenn man es nicht nutzen würde ?

was sind ressorcen ?

wenn man ein normels projekt hat...und es abspeichert sind die dateien :

Project1.cfg
Project1.dof
Project1.dpr
Project1.res
Unit1.dfm
Unit1.pas

doch was steht in den jeweiligen datein..was bewirken sie..in unit1.pas steht der source von dem formular, oder ?


----paar fragen zu diesem source

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.


okay, für was steht am anfang unit Unit1 ?

was bedeutet das interface ? ich weiss das es schnittstelle heisst..aba was bewirkt es ?

wird mit der uses etwas eingebunden ?

was bedeutet das type ?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

was wird hier gemacht..und für was steht das private..etc. ?

ausblenden Delphi-Quelltext
1:
2:
var
  Form1: TForm1;

Ist dieses erste var ein deklaration von globalen variabeln..? und was hat die Form da zutun ?

was bedeuten die letzten anweisungen "implementation" und "{$R *.dfm}" ?


ich weiss es ist viel..aber bitte helft mir...ich darf die arbeit nicht verhauen..danke!



Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.


Zuletzt bearbeitet von Camal am So 03.10.04 14:54, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 03.10.04 14:51 
Hallo!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:

Richtlinien hat folgendes geschrieben:
1.2 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei Deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Grüße
Christian :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: So 03.10.04 15:01 
Hi,

also fangen wir mal an:

Deklaríeren bedeutet, dass du dem Compiler sagst: Hallo, ich möchte eine Variable mit dem Namen ... vom Typ ... haben, die ich meinem Projekt zum Speichern von variablen (also nicht konstanten) Informationen verwenden möchte.

Definition - weiß ich nicht genau, was du damit meinst

with do. Du kannst den Code

ausblenden Delphi-Quelltext
1:
2:
3:
Form2.Panel1.ListBox1.Add('Bla');
Form2.Panel1.ListBox1.Add('Blub');
Form2.Panel1.ListBox1.Add('Blabla');

durch
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
with Form2.Panel1.ListBox1 do begin
  Add('Bla');
  Add('Blub');
  Add('Blabla');
  end;

vereinfachen.

Wegen den Dateien würd ich mal in der Delphihilfe nachschauen. pas ist eine Unit, dpr das Projekt, cfg die Projektkonfiguration, res die Ressourcen - nach meinem Wissen.

Dann zum Code: Unit muss am Anfang jeder Unit stehen - sonst wärs keine Unit ;) Unit1 ist der Name der Unit.

interface ist der teil, in dem du deine funktionen, Typen etc. definierst, im Implementationteil schreibst du dann den Code der Funktionen etc. hin (sorry für die sch.formulierung).

type ist eine Typendeklaration (-> Delphihilfe)

TForm1 wird deklariert, private sind private, public öffentlih zugägnliche Eigenschaften (-> Hilfe).

Zu den Variablen: ja.

{$R *.dfm} bindet deine Form (dfm-Datei) als Ressource ein.

Viel Glück beim Test
AXMD
Camal Threadstarter
Hält's aus hier
Beiträge: 5

WIN!
D7 Prof.
BeitragVerfasst: So 03.10.04 15:06 
danke für deine antworten..also ich weiss net was mein lehrer damit meinte..er meinete nur irgendwas mit defintion von funktion oda so..also falls jemand irgendwas besser erklären kann oda so..bitte posten.. :x
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: So 03.10.04 15:09 
Achso: eine Funktion definierst du im interface-Teil
ausblenden Delphi-Quelltext
1:
function Bla(ErsterParameter: Integer): LongInt;					


und im implementation-Teil sagst du dem Compiler, was die Funktion macht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function Bla(ErsterParameter: Integer): LongInt;
begin
  ...
end;

AXMD
Camal Threadstarter
Hält's aus hier
Beiträge: 5

WIN!
D7 Prof.
BeitragVerfasst: So 03.10.04 15:13 
für was steht den jetzt nochma das implementation ? und was das var
Form1: TForm1;
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: So 03.10.04 15:31 
Im interface-Teil sagst du dem Compiler, welche Funktionen du definieren möchtest, im implementation-Teil sagst du dem Compiler, was welche Funktion genau macht. var Form1:TForm1 hängt mit OOP zusammen - ich weiß nicht, ob es dir etwas sagt, wenn ich dir erzähle, dass Delphi TForm1 automatisch von TForm (forms.pas) ableitet, private- und public-Eigenschaften hinzufügt, dann eine Variable vom Typ TForm1 deklariert, die deiner Form entspricht und diese dann zur Laufzeit anzeigt. Deine Form ist eben keine Form, sondern eine modifizierte Form - also heißt sie TForm1, TForm2,... etc.

AXMD
Camal Threadstarter
Hält's aus hier
Beiträge: 5

WIN!
D7 Prof.
BeitragVerfasst: So 03.10.04 15:35 
okay danke mann du hast mir echt geholfen! :D
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: So 03.10.04 16:04 
Zu DEKLARATION

Du bestimmst was für ein Datentyp eine Variable hat. Es gibt z.B. Integer- und Realzahlen oder Strings. Die kann man wiederum unterteilen. Integer z.B. in ShortInt, Integer, LongInt, Int64. Durch deklarieren sagst du dem Compiler was für ein Datentyp es ist. Es gibt auch den Variant. Auch der muß bei Delphi deklariert werden. Allerdings entscheidet das system selbst um was für einen Datentyp es sich handelt. Da das System es jedes mal prüfen muß, ist ein Programm mit Variants langsammer als wenn es gleich richtig deklariert wird. Weiterhin kann es, wenn auch weniger bei Delphi, zu Mißverständnissen kommen. Eine 123 kann eine Zahl, aber auch eine Zeichenkette sein.


Zu with form1 do

Aus der Hilfe "Eine with-Anweisung stellt eine einfache und bequeme Möglichkeit dar, die Felder eines Record oder die Felder und Methoden eines Objekts zu referenzieren. Innerhalb einer with-Anweisung brauchen die Felder einer oder mehrerer Record-Variablen nur über ihre Feldbezeichner referenziert zu werden."

Wenn du also in einer Prozedur schreiben mußt:

ausblenden Delphi-Quelltext
1:
form1.Label1.Caption := 'Hallo';					


dann kannst du es auch so abkürzen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
with form1 do
begin
  Label1.Caption := 'Hallo';
end;

Für eine einzige Anwendung lohnt sich das nicht. wenn du aber fünf Labels ansprechen mußt und jedes mal vorher form1 schreiben mußt, dann kannst du dir viel schreibarbeit sparen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
form1.Label1.Caption := 'Hallo1';
form1.Label2.Caption := 'Hallo2';
form1.Label3.Caption := 'Hallo3';
form1.Label4.Caption := 'Hallo4';
form1.Label5.Caption := 'Hallo5';


oder besser

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
with form1 do
begin
  Label1.Caption := 'Hallo1';
  Label2.Caption := 'Hallo2';
  Label3.Caption := 'Hallo3';
  Label4.Caption := 'Hallo4';
  Label5.Caption := 'Hallo5';
end;


Ein weiterer Vorteil ist, daß du im falle einer Umbenennung von form1 nur ein eiziges mal den Namen ändern mußt.

zu RESSOURCEN

Ressourcen sind eine Art Bagage die an das Programm gehängt werden. Ressource kann ein Bild oder eine Wav sein oder ein Text. Ressourcen sind aber auch Formulare die man sieht. Sie sind als Ressource abgespeichert (je nach Programmiersprache). Man kann aber eigentlich alles als Ressource anhängen. Sogar ein zweites Programm kan man als Ressource drannhängen. Das besondere an Ressourcen ist, daß man sie wieder aus dem Programm extrahieren kann. Da Programm selbst bietet Möglichkeiten ein Bild oder eine Wav aus den Ressourcen auszulesen und sie im Programm zu nutzen.

Zu den Dateiendungen

Ich glaube Luckie hat hier ein FAQ Beitrag geschrieben und die Bedeutung den endungen beschrieben. Wenn nicht, dann ist das auf seiner Seite. Aber mal kurz. Res ist für die Ressourcen. Es gibt Res Dateien die Automatisch von Delphi angelegt werden (die darf man nicht ändern) und dann gibt es eigene Ressourcedateien die man in das Programm ienbindet. Pas ist die Abkürzung für ein Pascall Programm oder für eine Unit. Dfm enthällt die definition für ein Formular. Dpr ist die Projektdatei. Es gibt immer nur eine Dpr Datei. Sie wird zuerst geöffnet. Dcu ist eine vorkompilierte Unit.

Zu UNIT

Unit ist eine Art Modul in dem Prozeduren, Funktionen, Constanten, usw. abgelegt sind. Eben eine Unit. Es gibt immer eine Main-Unit, soweit es sich um ein Programm mit Formularen handelt. Sie wird ausgewertet. In ihr wird auch das Formular deklariert. Siehe type TForm1 = class(TForm). Ein Formular ist also ein Sklave der Unit, nicht andersrum. In der Unit wird ein Objekt vom Typ Formular erstellt und man hat ein Formular auf dem Fenster.

zu - Für was steht die Unit am Anfang.

Die Unit sagt aus, daß es eben eine Unit (Einheit) des Programms ist. Ein Teil. In der Dpr steht Programm am anfang und der Programmname. Es kann nur ein Programm pro Programm geben, aber viele Units. Die Unit sagt also aus, daß es eine Einheit ist. Hinter der Unit steht der Name der Unit. Sie ist identisch mit dem Dateinamen (plus Endung). Ändert man den Namen hinter der Unit, dann funktioniert die Unit nicht mehr.

Zu Interface

Hier würde ich dir enpfehelen ein Wörterbuch zu nehmen und plötzlich wird alles klar. Unit = Einheit, Interface = Schnittstelle, Inmplementation = Durchführung. Es gibt noch, wenn auch nicht automatisch eingefügt und in der Regel am Ende der Unit, die Initialization = Vorbereitung und Finalization = Beendigung. Das Interface ist dazu gedacht eine schnittstelle zwischen den Units zu sein. Was auserhalb des Interface deklariert oder definiert wird, daß ist für andere Units unsichtbar. Inmplementation, wie der Name schon sagt, für die durchführung des Programms. Hier wird das Programm geschrieben (oder Funktionen und Prozeduren). Initialization vird als erstes noch vor Inmplementation ausgeführt. Finalization wird beim beenden der Unit als letztes ausgeführt.

Zu TYPE

Unter Pascal kann man sich seine eingen Variablentypen erstellen. Darunter fallen auch Klassen, wie z.B. TForm1 = class(TForm). Man könnte aber auch Records usw. hier definieren. Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type
 TDateRec = record
   Year: Integer;
   Month: 1..12;
   Day: 1..31;
 end;


Private sagt aus, daß alle alles was hier deklariert und definiert wird, nur für die Klasse selbst sichtbar ist.
Public ist wie Interface. Was hier deklariert und definiert wird, daß sehen auch andere.

Zu VAR
"Ist dieses erste var ein deklaration von globalen variabeln..?" Nein, aber jede VAR in Interface Teil ist eine globale Varaible und kann auch in anderen Units benutzt werden. "und was hat die Form da zutun ?" Form ist nur eine Objektvariable.
Man kann übrigens auch im implementation Teil Variablen deklarieren.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
implementation

Var
  x: Integer;


Das ganze ist immer noch eine globale Variabele, aber nicht mehr in anderen Units sichtbar. Nur innerhalb der eigenen Unit. Lokale Variable hast du nur innerhalb eine Prozedur oder Funktion

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function abc: String;
var
  a: Integer;
begin
  ...


Zu "{$R *.dfm}"

Das ist eine Ressourcedatei die eingebunden wird. In diesem fall ist es eine Formulardatei.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 03.10.04 17:17 
Zur Definition von Funktionen:

Ich glaub dein Lehrer möchte eher wissen, worin der Unterschied zwischen einer Funktion und einer Prozedur liegt.

Funktion, Prozedur: Ein "Unterprogramm", dass überall aus dem Hauptprogramm aufgerufen werden kann und dem man verschiedene Parameter, also Werte, übergeben kann.
Eine Funktion gibt jedoch einen Rückgabewert zurück, der im Hauptprogramm ausgewertet werden kann. Die Funktion speichert den Rückgabewert in der Variablen result.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.10.04 18:54 
Ein Anfängerbuch wäre in diesem Fall wohl ganz angebracht.