Ga naar inhoud

Delphi program probleem


Aanbevolen berichten

Ik probeer als beginner mezelf Delphi bij te brengen en als je dan tegen een probleem aanloopt dan is dat zonder hulp vervelend. Aangezien dit board mijn enige hulp is stel ik mijn vragen hier. Ik gebruik het boek "Basiscursus Delphi 6' van Maarten Sfefanski als hulp. Ik heb geprobeerd een memo te maken met daarin een aantal regels met een rekenkundige bewerking. Het programma zou een schoon memoblad moeten weergeven met daarop dan de regels, het memoblad wordt echter niet schoongemaakt en de procedure voor weergeven van de regels werkt ook niet. Bij compilatie worden geen fouten gemeld. Waar gaat het fout in de onderstaande listing. ================== unit unmemo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender:TObject); var Kop: String; i: integer; begin Memo1.Clear; Kop:= 'Waarde'+#9#9+'Kwadraat'+#9#9+'Wortel'; Memo1.Lines.Add(Kop); for i:=1 to 100 do Memo1.Lines.Add(Format('%d'+#9#9+'%d'+#9#9+'%10.6f', [i,sqr(i),sqrt(i)])); end; end. ===========
Link naar reactie
VOlgens mij geeft WimB de goede oplossing. Ik vermoed dat je alleen wat meer uitleg wilt hebben. Wanneer je een event gebruikt (en dat doe je eigenlijk met de functie FormCreate die reageert op event onCreate), dan moet je die functie wel koppelen aan die event. Dat betekent in Delphi dat je die niet zelf toevoegt aan je source door die functie in te tikken. Het betekent dat je die event in het form moet "activeren". Delphi maakt de basis voor je. Je kan wel het een en ander zelf in elkaar knutselen, alleen moet je dan niet vergeten om dan ook alles zelf te doen (zoals ook de dfm bestanden modificeren ...). Dat is het gebruik van de object inspector in Delphi met Properties en Events een stuk makkelijker.
Link naar reactie
Dus [code:1:4eb07c66d7] unit unmemo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender:TObject); var Kop: String; i: integer; begin Memo1.Clear; Kop:= 'Waarde'+#9#9+'Kwadraat'+#9#9+'Wortel'; Memo1.Lines.Add(Kop); for i:=1 to 100 do Memo1.Lines.Add(Format('%d'+#9#9+'%d'+#9#9+'%10.6f', [i,sqr(i),sqrt(i)])); end; end. [/code:1:4eb07c66d7]
Link naar reactie
Het programma stopt inderdaad niet op het breakpoint en de procedure FormCreate is dus niet geactiveerd. Ik heb dat geprobeerd bij de properties maar dat werk niet, in het boek en in de help van Delphi kom ik er niets van tegen dat mij verder helpt en zo moeilijk moet dat toch niet zijn in de eerste schreden van Delphi. Ik laat het hier even bij want hier zou ik toch uit moeten kunnen komen. Ik ga eerst verder zoeken.
Link naar reactie
[quote:0ad558bba1="peter444"]Het programma stopt inderdaad niet op het breakpoint en de procedure FormCreate is dus niet geactiveerd.[/quote:0ad558bba1]Dan denk ik dat je iets fout hebt gedaan. Let heel goed op voor welk onderdeel je OnCreate instelt. Omdat je de functie al hebt geschreven is de controle heel simpel. Ga naar het gewenste item (tenminste dat denk je), kies de onCreate event, en dan dubbelclick. Wanneer je de goede hebt, springt die gelijk naar je functie. EN anders krijg je er wel een functiebody bij die vanzelf verdwijnt bij het compileren als je er niks inzet. Oh ja, volgens mij klopt het voorbeeld niet helemaal. De functie FormCreate zou Form1Create moeten zijn. Het is best een gepuzzel. Het verstandigste is om event functies via de Object inspector te maken. Dan klopt de naam altijd. Vervolgens de informatie toevoegen. Het boek beschrijft kennelijk niet duidelijk wat precies de bedoeling is. Je tikt dapper alles in, terwijl bepaalde onderdelen juist niet ingetikt zouden moeten worden ...
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...