[Delphi] Frames

Pagina: 1
Acties:

  • Hmmm
  • Registratie: Mei 2003
  • Laatst online: 23-03 14:04
Ik heb een probleempje met wat frames. Het moet op zich best simpel zijn maar ik heb er weinig over kunnen vinden (of totaal overheen gekeken maar dat lijkt me stug).

Ik heb een form waarop een frame staat waarin andere frames geplaatst worden. Deze frames worden d.m.v. een druk op de knop aangemaakt. Mijn probleem is echter dat ik niet goed meer bij de diverse componenten op een willekeurig frame kan komen. Ik heb al vanalles geprobeerd maar zonder resultaat.

De code waarmee ik een frame aanmaak:

code:
1
2
3
4
5
6
7
8
  Inc(aantal_frames);
  with Tframe_naam.Create(Self) do
  begin
    Name := 'frame_naam' + IntToStr(aantal_frames);
    Parent := frame_naam_basis;
    Top := 8 + (aantal_frames * 200);
    Height := 200
  end


Op frame_naam staan dus een aantal componenten als een combobox e.d. Verder bevat de variabele aantal_frames het aantal aangemaakte frames. Hiermee zou ik in feite door al mijn frames heen moeten kunnen gaan om de waarde van de diverse comboboxen etc. uit te lezen. En dat is dus precies wat ik wil hebben: alle velden uitlezen van alle gemaakte frames. Heeft iemand misschien de regel code die wonderen kan verrichten?

Ik kna 300 woodren pre mniuut tpynen.


  • Paul
  • Registratie: September 2000
  • Laatst online: 02-05 07:01
Je kunt niet zomaar Thuppeldepup.Create aanroepe, je moet het ergens aan toekennen.
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  AantalFrames: Integer;
  FrameArray: array of TMyOwnFrame;

[..]

Inc(AantalFrames);
SetLength(FrameArray, AantalFrames);
FrameArray[AantalFrames - 1] := TMyOwnFrame.Create(Self);
with FrameArray[AantalFrames - 1] do
  begin
    Parent := frame_naam_basis;
    Top := 8 + (AantalFrames * 200);
    Height := 200;
  end;

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • CyeZ
  • Registratie: September 2001
  • Laatst online: 10-09-2025

CyeZ

Vroem vroem!!!

Paul Nieuwkamp schreef op zondag 19 juni 2005 @ 15:46:
Je kunt niet zomaar Thuppeldepup.Create aanroepe, je moet het ergens aan toekennen.
[...code...]
Nee dat is niet waar, door het gebruikt van het with blok kan het wel degelijk op die manier.
Je moet alleen zorgen dat de juiste properties ingesteld worden. In de meeste gevallen Owner en Parent. Later kun je het component wel weer opzoeken in de Components container van het formulier.
Maar frames zijn aparte dingen, waarschijnlijk moet hier nog wat extra's gebeuren...

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Alles kan. Of je bij een component via de naam van het component kan komen is ook niet anders bij een frame. Of je slaat een referentie op naar het component zoals Paul voorsteld. Of je komt er via de Parent (Controls property) of Owner (Components property) structuur zoals CyeZ voorsteld. Of je gebruikt functies als FindComponent.

We adore chaos because we like to restore order - M.C. Escher