Spørgsmål om delphi

Tags:    delphi

I diverse nybegynder artikler fokuseres der ofte på hvordan delphi skal håndteres, og efter det vises hvordan man laver en bestemt handling. (noget kode)
En ting jeg ikke rigtig har fået en forklaring på endnu, er hvordan "grundkoden" skal tolkes.

Det drejer sig om dette:
Fold kodeboks ind/udKode 


step by step ?
Jeg forstår kun type og variabel erklæringerne.

En anden ting jeg ikke forstår ved delphi, er de filer når man gemmer. Hvad indeholder den række filer som ved standard bliver gemt?
Fold kodeboks ind/udKode 
?

Indeholder nogle af dem info om formen og de objekter der er i formen, og indeholder nogen koden til selve programmet? Eller hvordan hænger det sammen? Så vidt jeg kan se, så er programmet som sådan ikke afhængig af disse filer.

Det ville være rart at få en logisk forklaring på det helt grundlæggende.

Et link til en guide er ganske udemærket.

På forhånd tak.



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
I diverse nybegynder artikler fokuseres der ofte på hvordan delphi skal håndteres, og efter det vises hvordan man laver en bestemt handling. (noget kode)
En ting jeg ikke rigtig har fået en forklaring på endnu, er hvordan "grundkoden" skal tolkes.

Det drejer sig om dette:
Fold kodeboks ind/udKode 


step by step ?
Jeg forstår kun type og variabel erklæringerne.

En anden ting jeg ikke forstår ved delphi, er de filer når man gemmer. Hvad indeholder den række filer som ved standard bliver gemt?
Fold kodeboks ind/udKode 
?

Indeholder nogle af dem info om formen og de objekter der er i formen, og indeholder nogen koden til selve programmet? Eller hvordan hænger det sammen? Så vidt jeg kan se, så er programmet som sådan ikke afhængig af disse filer.

Det ville være rart at få en logisk forklaring på det helt grundlæggende.

Et link til en guide er ganske udemærket.

På forhånd tak.



Jeg ved ikke det hele man kan forklare det mest basale af det. Ret mig hvis jeg er forkert på den, da jeg ikke selv har brugt det så længe.

unit Unit1; <- dit gemte filnavn :D


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

Uses er et kald til de *.dll filer som dit program kræver af windows for at køre. Hvis man f.eks. skal programmere noget i openGL kræver det at man fortæller programmet at man skal bruge noget fra openGL.dll (eller hvad den nu hedder), og derfor skal tilføje openGL til din uses list.

implementation <- Det er herefter at din egen kode kommer. Slår man ordet op i ordbogen vises :

implementation sb gennemførelse, udførelse, virkeliggørelse.


08-05-2004 16:00 188 Project1.dpr <- Er filen der holder sammen på dit projekt.

08-05-2004 15:57 329 Unit1.dfm <- Er din form/vindues kode. Hvis dit program ikke brugte forms så var denne fil ikke eksisterende.

08-05-2004 16:00 310 Unit1.pas <- Det er heri at koden til den enkelte unit står. Blandt anden alt du har skrevet i den.

Det var vidst alt jeg ved om det :P hvis jeg kommer i tanke om mere så ændrer jeg denne post.

-----------------------------------------------
Sex er som Quake, Singleplayer er godt. Men multiplayer er bare bedre.
-----------------------------------------------



Fold kodeboks ind/udKode 

Forklaringen på dette er:
Den første linie fortæller hvad filen hedder, og at det er en "unit", som er en fil.

"Uses" er en liste over de headers din unit skal bruge. Dvs. Hvis det er en form du arbejder med skal den ihvertfald bruge "forms" og "windows". Hvis fks. bruger JPG filer i din form så skal den bruge et bibliotek der kan fortælle programmet hvad JPG filer er. Alle disse filer ligger i din Delphi mappe under mappen Lib.

Resten har jeg ikke nogen forklaring på.



Fold kodeboks ind/udKode 


.cfg filen indeholder oplysnigner om dit projekt. Den fil kan man ikke bruge til ret meget. Men din project fil kræver den.

.dof filen indeholder dine instillinger for dit projekt. Dem kan du ændre i Delphi under: Project->Options-

.dpr filen er dit projekt. Det er nærmest hoved filen. Det er ud fra den Delphi compiler dit program. I .dpr filen er der en liste over de ting programmet gør, når det starter.

.res er filen hvor fks. dine ikoner og billeder ligger i. Dvs. hvis du har brugt et ikon til dit program, så ligger det her i.

dfm. filer er Form filer. De indeholder data over hvordan en form ser ud.

.pas filer er kode filer. De indeholder koden for dit program, og der er som regel altid knyttet sådan en til hver form.
Man kan da også godt bruge pas filer uden en form, fks. når man laver en Console Application.


Dit færdige program kræver INGEN af disse filer, for at kunne køre.



Håber det var svar nok.. jeg er ikke ekspert, men dette er hvad jeg selv har fundet frem til.



damn... jeg er for langsom til at skrive :P



damn... jeg er for langsom til at skrive :P


:P men dit var bedre forklaret :D

ps :D første gang jeg hjælper i en post :P /host host nøøøb mig

Mvh
Lasse
-----------------------------------------------
Sex er som Quake, Singleplayer er godt. Men multiplayer er bare bedre.
-----------------------------------------------

[Redigeret d. 08/05-04 16:30:40 af Lasse]



damn... jeg er for langsom til at skrive :P



Bare rolig ... i får begge points :)
Godt nok svarede Lasse først, men du, Kasper gav lidt mere forklaring.
I får begge 20, så må det være rimeligt.



damn... jeg er for langsom til at skrive :P


Bare rolig ... i får begge points :)
Godt nok svarede Lasse først, men du, Kasper gav lidt mere forklaring.
I får begge 20, så må det være rimeligt.



Vi lever trods alt i et demokratisk samfund :D

Mvh
Lasse Aka Sunken
-----------------------------------------------
Sex er som Quake, Singleplayer er godt. Men multiplayer er bare bedre.
-----------------------------------------------



unit "Navn" - Fortaeller kompileren at foelgende tekst er kode til i en unit. Grunden til at uniten skal navngives er fordi at kompileren registre din units saa den kan kaldes fra andre uints under uses!

interface - fortaeller kompileren at du vil designe et interface til din unit. Dette kan ogsaa sammen lignes med en en header. Alt der bliver skrevet her vil kunne ses af andre units.

Uses betyder paa dansk "bruger"! Det vil i denne sammenhaeng mene at her under kan man tilfoeje andre units som din applikation (program) skal bruge. En unit er en *.pas fi!

En "usynlig" unit som man ikke kan se er din System unit. Den indeholder alle reserverede ord og de mest grundlaeggende funktioner og procedure der findes i Delphi.

Som det foerste er Windows. Denne unit er en grundlaeggende unit. Ud fra den er alle de andre ubts der end matte vaere blevet bygget ud fra. Det er selvfolig en Interface til Windows Operativ system og indeholder derfor en masse DLL filer som foelger med din Windows! I realiteten kunne du noejes med kun at havde denne unit inkluderet!

Hvis du hojere klikker paa en af dine units og vaelger "Find Declaration" vil den aabne denne unit, men kun hvis *.pas filen eksitere paa din harddisk. *.pas filen er nemlig filen er nemlig en ASCII fil (Tekst fil) mens *.dcr filen er den kompilede unit og er derfor en binaer fil. Du vil derfor som resultat af at kompile faa en *.dcr fil liggende ved siden af din *.pas fil og den samme fil kompilet ind i din exe fil! *.dcr filer er gode hvis du eksempelvis vil lave en komponent til en anden men samtidig ikke er interesseret i at han eller hun skal kunne se din kildekode!

type fortaeller delphi at du vil definere eller "erklaere" nogle datastrukture i form af records, objects eller klasser - eller noget helt andet! Ofte skriver man et start "T" foran alle sine typer! Dette er selvfoelig kun bestemt for en faelles hjaelp! En type kan sammenlignes med en opskrift, hvor paa varianter kan blive erklaeret udfra.

TForm1 = class(TForm)

Dette definere en ny klasse kaldet for "TForm1". Denne klasse arver alle egenskaber fra en tidligere klasse kaldet for "TFom" (Denne klasse liger i din "Forms" unit). Det reserverede ord "class" stammer fra din kompiler og IKKE fra din unit "Classes" - selv om det ville vaere meget naerliggende at tro!

private er en ogsaa en reseverede ord. Detn bliver brugt af klasser og objekter. Alt der bliver skrevet herunder vil kun kunne laeses af procedure og funktioner af denne unit, men vil blive gemt vaek for andre units!

public derimod vil kunne ses af alle units og er derfor din klassens "ansigt"!

end; afslutter selvfolig klassen "TForm1".

var herunder vil alle varianter og variabler blive defineret. Disse vil bilve brugt direkte i dit kode og stammer alle fra en type (En opskrift)! I dette tilfaelde er Form1 defineret af klassen (typen) TForm1!

Alle varianter der bliver defineret her kaldes for glabale varianter. De kan nemlig blive laest fra andre units!

Implementation fortaeller kompileren er at alt kode herunder vil blive dit kode der implementere ("skaber") dit program.

{$R *.dfm} fortaeller kompileren at der skal hentes information fra projektets tilknyttede *.dfm fil. $R staar for resource. Saa *.dfm er egentligt en resource fil der indeholder propertioner til en TForm!

end. Afslutter dit projekt. Laeg maerke til at der skrives et punktum "." efter "end" og ikke en semikollon ";"!

*.dpr filer indeholder selve projektet. Ud fra denne fil alene kunne du faktisk lave hele dit program ud fra. Hvis du trykker Ctrl+F12 vil der poppe en liste frem, derindeholder alle units der er inkluderet i dit projekt (men ikke dem du inkludere under uses). Hvis du dobbelt klikker paa "Project" vil den aabne din *.dpr fil! Og i den vil du kunne se at den indeholder din "Unit1"!

*.res er din resource fil. Den indeholder blandt andet ikonet for dit program!

*.pas er alle dine units filer, der indeholder laesebar koder (ASCII fil)!

*.cfg staar for configuration og indeholder bare information omkring dit projekt og har ikke rigtigt noget med den kompilede exe fil at goere.

*.dof fil indeholder ogsaa information omkring dit projekt.

Haaber det gav en mere klarhed over situationen! Husk at man laere ikke Delphi paa bare et par dage. De folk der paastaar andet, aner ikke hvad de snakker om! Delphi er et objekt orienteret sprog paa ligefod med C++ og det tager lang tid inden man helt har forstaaet principperne bag dem. Jeg vil anbefale dig at laere Delphi's hjaelpefil og dens soege funktion. Denne hjaelpefil er den bedste dokumentation og resource for nybegynder. Den beskriver detaljeret hvordan Delphi er opbygget, som nybegyndere og erfarne kan havde stor glaede af!

Held og Lykke
Soren Klit Lambaek

PS: Hvis programmering er spaende er 3D programmering tre gange saa spaende :D



Søren Klit Lambæk:

... Du er vidst en hård mand til Delphi :D (eller... det er du jo).

Tak for den detaljerede beskrivelse. Nu er det vidst også til at forstå.
Du må desværre undvære UP's, men det betyder vel heller ikke så meget? :)



t