Ik ben voor school bezig met het leren van C#, maar ondanks het internet en de mij verstrekte informatie kom ik nog niet helemaal uit het volgende:
Ik probeer een soort vector tekenprogramma te schrijven, hierin kan vooralsnog alleen nog maar een lijn worden getrokken. Deze lijn kan worden getekend door op een punt te klikken (het beginpunt), en vervolgens op een ander punt (het eindpunt). Nadat er op het eerste punt is geklikt verschijnt er ook een als het ware tijdelijke lijn, tussen het beginpunt en het punt waar de muis cursor zich op dat moment bevind.
In princiepe heb ik bovenstaande perfect werkend gekregen, maar ik weet niet of mijn aanpak juist is. Ik heb namelijk een een classe genaamd "tekenenalgemeen" gemaakt, waarvan nu alleen nog maar de tekenklasse voor de lijn erft, genaamd "tekenlijn". Maar later gaan hier ook andere klassen zoals "tekenvierkant" "tekencirkel" etc van erven. In deze tekenenalgemeen staan een aantal protected fields, die van toepassing zijn op alle ervende klassen (nu dus alleen nog maar tekenlijn). Volgens mij was dit allemaal nog de bedoeling. Maar nu komt mijn probleem: Er moeten uiteraard meerdere lijnen worden getekend, al deze lijnen moeten op de één of andere manier worden opgeslagen in een list, zodat ze bij bv minimaliseren en weer openen van het venster opnieuw kunnen worden getekend. Wat kan ik dan het beste opslaan in deze list? Want het tekenen van een lijn wordt nu gedaan door twee keer een functie in de tekenlijn klasse aan te roepen, die dan zelf bijhoud of het de eerst klik is (en de doorgegeven locatie het beginpunt is), of de tweede klik is (en de doorgegeven locatie het eindpunt is en de lijn moet worden getekend). Moet ik dan gewoon beide aanroepen van de van de functie in de tekenlijn klasse opslaan in die list, en dan aanroep voor aanroep uit die list weer opnieuw doen? Dit lijkt mij niet de meest handige methode, aangezien het later ook mogenlijk moet worden lijnen te verwijderen, en dan moet je dus uit gaan zoeken welke twee aanroepen die lijn tekenden, om die vervolgens uit de list te verwijderen...
Ik weet verder ook niet of dit de beste manier van bijhouden welke klik het is (dus de eerste of tweede)...
Als er verder nog dingen niet kloppen aan mijn manier van programmeren hoor ik dat natuurlijk ook graag.
Ik probeer een soort vector tekenprogramma te schrijven, hierin kan vooralsnog alleen nog maar een lijn worden getrokken. Deze lijn kan worden getekend door op een punt te klikken (het beginpunt), en vervolgens op een ander punt (het eindpunt). Nadat er op het eerste punt is geklikt verschijnt er ook een als het ware tijdelijke lijn, tussen het beginpunt en het punt waar de muis cursor zich op dat moment bevind.
In princiepe heb ik bovenstaande perfect werkend gekregen, maar ik weet niet of mijn aanpak juist is. Ik heb namelijk een een classe genaamd "tekenenalgemeen" gemaakt, waarvan nu alleen nog maar de tekenklasse voor de lijn erft, genaamd "tekenlijn". Maar later gaan hier ook andere klassen zoals "tekenvierkant" "tekencirkel" etc van erven. In deze tekenenalgemeen staan een aantal protected fields, die van toepassing zijn op alle ervende klassen (nu dus alleen nog maar tekenlijn). Volgens mij was dit allemaal nog de bedoeling. Maar nu komt mijn probleem: Er moeten uiteraard meerdere lijnen worden getekend, al deze lijnen moeten op de één of andere manier worden opgeslagen in een list, zodat ze bij bv minimaliseren en weer openen van het venster opnieuw kunnen worden getekend. Wat kan ik dan het beste opslaan in deze list? Want het tekenen van een lijn wordt nu gedaan door twee keer een functie in de tekenlijn klasse aan te roepen, die dan zelf bijhoud of het de eerst klik is (en de doorgegeven locatie het beginpunt is), of de tweede klik is (en de doorgegeven locatie het eindpunt is en de lijn moet worden getekend). Moet ik dan gewoon beide aanroepen van de van de functie in de tekenlijn klasse opslaan in die list, en dan aanroep voor aanroep uit die list weer opnieuw doen? Dit lijkt mij niet de meest handige methode, aangezien het later ook mogenlijk moet worden lijnen te verwijderen, en dan moet je dus uit gaan zoeken welke twee aanroepen die lijn tekenden, om die vervolgens uit de list te verwijderen...
Ik weet verder ook niet of dit de beste manier van bijhouden welke klik het is (dus de eerste of tweede)...
Als er verder nog dingen niet kloppen aan mijn manier van programmeren hoor ik dat natuurlijk ook graag.