Results 1 to 6 of 6

Thread: Cookbook 2nd edition; embeede forms en tabcontrol

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,325

    Cookbook 2nd edition; embeede forms en tabcontrol

    Een klein gaatje gevonden in de tijd om even het Cookbook second edition te lezen. Zo las ik in hoofdstuk 'Delphi Basics' een stukje over tabbed control en forms. Meestal maak ik gebruik van Pagecontrols om in runtime tabsheets aan te maken en daar aan een form te koppelen.
    Tabbedcontrol maakt gebruik van TStrings, waarin objecten heel makkelijk zijn toe te voegen/selecteren/verwijderen.
    Als ik in het boek lees, moet er in de embedded form deze procedure komen te staan:
    Delphi Code:
    1. procedure TEmbeddableForm.Show(AParent: TPanel);
    2. begin
    3. Parent := AParent;
    4. BorderStyle := bsNone;
    5. BorderIcons := [];
    6. Align := alClient;
    7. Show;
    8. end;
    Dit compileert niet. Show kan niet nog een keer worden aangeroepen, omdat de parameters niet overeenkomen. Ook krijg je volgens mij een circular reference, omdat de aanroep van show dezelfde code oproept. Ook kan je procedure show niet gebruiken, want dat is een eventhandler naar formshow en stuurt intern een aantal properties aan in de form om deze te kunnen tonen op het scherm.

    Maar wat is de juiste procedure met het opstarten van een form? Ik heb zelf maar de procedure show veranderd in tabshow. Daarin roep ik dan event show op. Dat werkt prima.

    Is er ook bij elk hoofstuk een stukje code, wat gedownload kan worden?
    Delphi is great. Lazarus is more powerfull

  2. #2

  3. #3
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    190
    Dit compileert niet. Show kan niet nog een keer worden aangeroepen, omdat de parameters niet overeenkomen.
    In TEmbeddableForm is de procedure Show met een overload directive gedeclareerd. Op deze manier compileert het.
    Code:
    procedure Show(AParent: TPanel); overload;

    Is er ook bij elk hoofstuk een stukje code, wat gedownload kan worden?
    Zeker. De code van Cookbook Third Edition is op internet beschikbaar.
    https://github.com/PacktPublishing/D...-Third-Edition

    Het voorbeeld met EmbeddabbleForm staat in hoofdstuk 1, recept 6:
    https://github.com/PacktPublishing/D...owserInterface

  4. #4
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,325
    Kijk. Dat haalde je niet uit het voorbeeld in het boek. Ik had al zo'n vermoeden. Maar je verwacht wel dat de code in het boek wel werkt. Niet altijd is broncode beschikbaar.
    Delphi is great. Lazarus is more powerfull

  5. #5
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,325
    Dit truukje kende ik nog niet.
    Delphi Code:
    1. (Owner as TForm).Perform(WM_EMBEDDED_FORM_CLOSE, NativeUInt(Self), 0);
    Nu maak ik nooit gebruik van messages, maar in dit contxt is het wel handig.

    Zal dit ook zo werken in Lazarus/FPC?
    Delphi is great. Lazarus is more powerfull

  6. #6
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,292
    Perform is gewoon een sendmessage naar jezelf.

    Quote Originally Posted by jkuiper View Post
    Zal dit ook zo werken in Lazarus/FPC?
    Het lijkt me dat ze dat wel geïmplementeerd hebben in TControl.
    TMemoryLeak.Create(Nil);

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •