• Nieuwe artikelen

  • Artikelen RSS Feed

    by Published on 07-Jan-15 18:59
    Article Preview

    Op verschillende seminars zie ik leuke dingen van Smart Mobile uitkomen. Inmiddels is versie 2.1 gereleased en verwacht je een leuk product. Gisteren een demo-key aangevraagd voor professional. De enterprise heb ik niet nodig, omdat ik geen datasnap heb en daarvan de prijs nog veel te hoog vind voor een hobby gebruiker.
    Mijn doel is uiteindelijk een webpagina te maken, die gegevens uit een database haalt (via REST) en deze presenteert op het scherm. Uiteindelijk zal het een webpagina zijn, waarvan ik een naam kan selecteren en een frame kan tonen in de browser. Zo kan elke gebruiker zelf een keuze maken wat hij/zij wilt zien (www.caviawatch.nl). Maar eerst een product leren gebruiken. Anders kom je niet ver.
    Welk ontwikkeldialect gebruikt Smart Mobile? PASCAL! Dat is mooi. Ik werk al jaren met Delphi / Lazarus en kan dus wel wat programmeren om een redelijk programma te kunnen tonen. De installatie is simpel. Downloaden van de website, installeren en de demo-key invoeren. Deze key is 35 dagen geldig. Als je niets te doen hebt, heb je zat tijd om alles uit te vogelen. Programma opgestart en het eerste wat je ziet is de IDE. Deze is een beetje opgebouwd op basis van D7, maar ondanks alles neergezet als een single doc, waardoor het een look'n'feel krijgt van D2005+.

    Als eerste ga je kijken naar de demo's. Dat zijn er best wel veel, maar 95% is gerelateerd op client niveau. Ik wil juist op client/server werken, zodat ik resultaat van tabel vanuit mijn databaseserver krijgt in mijn browser. Daar zijn geen demo's van. Een enkele, die een tabel vult vanuit een button, maar ik kan niet zien waar die gegevens staan. Ik zie in de debuggerscherm dat er wel records worden aangemaakt, maar waar geplaatst worden en ik geen idee van.
    Maar het best leren doe je door eigen programma's te maken met behulp van de documentatie.
    Een nieuw visual project opgestart. De IDE komt met een leegscherm wat tevens je formulier is. Geen border, want het is geen echt venster, maar een pagina in je browser. Een beetje gekeken naar welke componenten aanwezig zijn en viel mij een beetje tegen. De standaard (common) componenten zijn een beetje hetzelfde als in Delphi/Lazarus. Ik begrijp alleen niet waarom er een aparte tabblad is voor mobile componenten. De datatab valt een beetje tegen. Daar staat alleen een grid en een chart in. Eigenlijk had ik ook componenten verwacht, zoals TDatabase en TDataset en DBComponenten, die visueel een SQLite database direct kan benaderen. Is een visual IDE niet gemaakt, om de ontwikkelaar het laten vereenvoudigen om met simpele handelingen uit te kunnen voeren. Ik weet dat je een database als MySQL/MariaDB, SQLServer, Firebird/Interbase of Oracle zomaar kan benaderen, omdat deze achter een firewall zitten, maar SQLite is eigenlijk een local database. Maar wie weet.

    Mijn eerste doelstelling: het tonen van een grid met data erin. Component W3Grid gepakt en deze op het formulier geplaatst. Dan zal je verwachten dat je, net zoals een TStringgrid, al een basis grid hebt. Maar het component is leeg. Sterker nog; je MOET zelf de bronbestand van de grid in de uses plaatsen. Vervolgens moet je het zelf declareren in de {private} sector van je formulier. Waarom doet de IDE dat niet voor je! Je moet de Grid zelf in runtime aanmaken. Ziet er dan zo uit:
    Delphi Code:
    1. procedure TForm1.InitializeForm;
    2. begin
    3.   inherited;
    4.   // this is a good place to initialize components
    5.   MyGrid := TW3Grid.Create(Self);
    6.   MyGrid.Visible := True;
    7.   Mygrid.Top := 20;
    8.   Mygrid.Left := 20;
    9.   MyGrid.HeaderHeight := 26;
    10.   MyGrid.RowHeight := 24;
    11. end;
    Dan heb je een Grid gedefineerd zonder kolommen. Deze moet je ook zelf aanmaken. ...
    by Published on 02-Jun-14 13:06
    1. Categories:
    2. Delphi diversen
    Article Preview

    De IDE Insight tool. (Ctrl+(punt) of F6)

    Ik noemde 'm al even kort in deze thread, maar hij verdient wel een aparte tip, denk ik.
    De makkelijkste shortcut is F6, maar een 'betere' is Ctrl+., want "You're in control. Period."


    IDE Insights is beschikbaar vanaf Delphi 2010. In deze versie verschijnt hij nog als een popup-scherm wanneer je de magische toetsaanslag Ctrl+. aanslaat. In latere versies (in ieder geval in XE5) is het een zoekboxje op de toolbar.

    ...
    by Published on 23-Sep-08 13:52
    1. Categories:
    2. Delphi diversen

    Paul van der Ven

    Iedere zichzelf respecterende NLDelphi bezoeker heeft natuurlijk het artikel van Jos Visser gelezen over het maken van een TDataset afgeleide, de TbigInifileDataset. In dat artikel laat Jos zien hoe een ini-bestand te gebruiken is met behulp van een TDataset-afgeleide.

    ...
    by Published on 23-Nov-07 16:57

    Werken met DataCoponenten TTable, TDataSource, en de daaraan gekoppelde TDBEdit TDBGrid en de hele familie, is geweldig in Delphi. Nergens heb ik met zoÔÇÖn gemak met databases gewerkt.
    Allemaal mooi, tot de dag dat je graag wil afwijken van die standaarden, en je ÔÇÿeigenÔÇÖ manier wil opleggen. Wat kun je doen?

    Hier al een begin van Business Objects, en hoe je die in jouw geval kunt gebruiken.

    ...
    by Published on 02-Oct-05 17:06

    Albert de Weerd

    Bijna elke applicatie gebruikt het beeldscherm om de gegevens die worden gemanipuleerd weer te geven. Dit artikel legt de beginselen van zelf tekenen in Delphi uit. Als basis voor de materie wordt eerst het hoe en waarom uitgelegd van schermopbouw en tekenen in het algemeen. Daarna volgt een beschrijving en uitleg van een eenvoudig programma waarin enkele veel voorkomende tekenopdrachten centraal staan.

    ...
    by Published on 04-Mar-04 15:08
    1. Categories:
    2. Delphi diversen

    Marcel van Beuzekom



    Een query gebruik je per definitie om gegevens op te halen. Maar na het ophalen wil
    de gebruiker de data ook manipuleren. De gebruiker wil de data in een lijst zien die hij
    snel kan sorteren op verschillende kolommen, en uiteraard wil hij de data ook wijzigen.
    Een query component is hiervoor al  snel te beperkt. Een query is readonly en om de
    data te sorteren moet de query opnieuw worden uitgevoerd, met een trage performance als
    gevolg.



    De BDE en later ook Interbase Express gaven ons al mogelijkheden om met een query
    ook data te wijzigen, maar deze oplossingen zijn geen van allen perfect. Een BDE live
    query is alleen te gebruiken zolang er geen join wordt gebruikt en is bovendien vrij
    traag, BDE cached updates maken tijdelijke Paradox bestanden aan waarin de data wordt
    opgeslagen (in het ergste geval op het netwerk!) en Interbase Express Cached updates biedt
    weer geen algemene oplossing voor alle databases. De ClientDataSet biedt de mogelijkheid
    om data op te halen, sorteren, wijzigen en weer terug op de server op te slaan.



    ClientDataSet



    ClientDataSet is een component, gemaakt voor het bekijken en wijzigen van data in het
    geheugen. Omdat ClientDataSet erft  van TDataSet, heeft het component alle
    mogelijkheden die een gewone dataset ook heeft: bladeren in data, zoeken, data wijzigen en
    alle data-aware componenten gebruiken. Maar ClientDataSet heeft ook verschillende
    mogelijkheden om data te sorteren en te groeperen. Omdat zowel het zoeken als het sorteren
    allemaal in het geheugen gebeurt is het razendsnel. Pas als de wijzigingen weer moeten
    worden opgeslagen hebben we een server of schijf nodig.



    Dat opslaan kan de ClientDataSet zelf, maar in zeer beperkte mate. Het opslaan is
    alleen mogelijk in één bestand en dat bestand wordt ook altijd helemaal opgeslagen .
    Zelfs als je maar één regel hebt gewijzigd wordt dus het hele bestand opgeslagen. Ook
    het inlezen gebeurt weer met het hele bestand. Los van de performance is dit ook niet
    gewenst in een multi-user omgeving, er kan immers maar één gebruiker tegelijk met het
    bestand werken. Toch is ClientDataSet juist voor een multi-user omgeving gemaakt. Voor het
    inlezen en opslaan van de data heeft hij alleen een tweede component nodig: een
    DataSetProvider.



    DataSetprovider



    Een DataSetProvider is eigenlijk niets meer dan een doorgeefluik tussen een
    ClientDataSet en een 'echte' dataset, bijvoorbeeld een Query. De DataSetProvider laat de
    data ophalen door de Query, vat deze data samen in een pakketje en stuurt dat pakketje
    naar de ClientDataSet.







    wpe3.jpg (5097 bytes)

    Inlezen data van een database naar een ClientDataSet


    ...
    by Published on 25-Sep-03 13:43

    Desiree Willemsen

    Naar aanleiding van al vele voorbeelden op het forum over het gebruik van parameters in een query heb ik het besluit genomen er een artikel over te schrijven. Hierin wordt uitgelegd, wat parameters zijn en hoe je ze kunt gebruiken. Om het makkelijk te maken zal ik er uiteraard ook een voorbeeld bij maken.Ik hoop ook dat er gebruik van gemaakt gaat worden, aangezien het veel speurwerk kan besparen.

    ...