anoniem Geplaatst: 31 juli 2005 Delen Geplaatst: 31 juli 2005 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. =========== Quote Link naar reactie
anoniem Geplaatst: 31 juli 2005 Auteur Delen Geplaatst: 31 juli 2005 Peter, peter, peter, peter, Kijk eens bij je vorige vraag: [url]http://forum.computertotaal.nl/phpBB2/viewtopic.php?t=147648[/url]. Hierop is een antwoord gegeven wat hierop ook het antwoord kan zijn. Leer van je fouten :roll: , maar leer er wel van :evil: Groeten, Maarten Quote Link naar reactie
anoniem Geplaatst: 1 augustus 2005 Auteur Delen Geplaatst: 1 augustus 2005 Kennelijk heb ik nog niet van mijn fouten geleerd. Ik heb een Memo op het ontwerpformulier gezet en heb verder Delphi het werk laten doen. De procedure staat bij type vermeldt en ik heb niets aan de declaraties gewijzigd, waar ik nu de fout moet zoeken zie ik nog steeds niet. Quote Link naar reactie
anoniem Geplaatst: 1 augustus 2005 Auteur Delen Geplaatst: 1 augustus 2005 Zet de cursor op: Memo1.Clear; en druk op F5 om een breakpoint te plaatsen. Start dan het programma met F9. Waarschijnlijk stopt het niet op het breakpoint en is de procedure TForm1.FormCreate niet verbonden met de form. wimb Quote Link naar reactie
anoniem Geplaatst: 1 augustus 2005 Auteur Delen Geplaatst: 1 augustus 2005 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. Quote Link naar reactie
anoniem Geplaatst: 2 augustus 2005 Auteur Delen Geplaatst: 2 augustus 2005 en plaats voortaan je code tussen [code] [/code] Quote Link naar reactie
anoniem Geplaatst: 2 augustus 2005 Auteur Delen Geplaatst: 2 augustus 2005 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] Quote Link naar reactie
anoniem Geplaatst: 5 augustus 2005 Auteur Delen Geplaatst: 5 augustus 2005 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. Quote Link naar reactie
anoniem Geplaatst: 5 augustus 2005 Auteur Delen Geplaatst: 5 augustus 2005 [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 ... Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen