Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Loš redosled prikaza dinamički kreiranih frame-ova

  • 3 odgovora
  • 2.779 pregleda

Najnovija ↓

Loš redosled prikaza dinamički kreiranih frame-ova 12.06.2008. u 12:15 · pre 223 meseca #1
Ovako. Svi znamo kako se ponaša TPageControl - klikom na karticu se prikazuje njen sadržaj. Ono što ja hoću da napravim je da se klikom na karticu prikaže njen sadržaj a odmah ispod i sadržaj narednih kartica ako za taj sadržaj ima mesta na kontroli (ekranu).

Ovo sam uspeo da napravim upotrebom TTabControl i TFrame-ova. Frejmovi se kreiraju dinamicki i prikazuju se po potrebi i po raspoloživom prostoru. Ono što mi nikako ne uspeva je da se ti frejmovi prikazuju u ispravnom redosledu.

U programu kojeg sam atačovao postoji TabControl sa četiri taba. Kada se klikne na prvi tab on prikaže sadržaj prvog frejma, a ako ima mesta pokazuje i sadržaj drugog, i trećeg, itd. Kada se klikne na drugi tab on prikazuje sadržaj drugog frejma, pa onda i trećeg ako ima mesta, i četvrtog itd. Videćete ponašanje programa kada budete povećavali i smanjivali visinu glavnog prozora kao i kada budete menjali tabove.

Problem je što program ne prikazuje frejmove redom: prvi, drugi, treći, četvrti, nego se prikazuju nekim (random) redosledom kojeg ne mogu da utvrdim, a i ne pada mi na pamet kako da utičem na njega.

Da li neko ima lek za ovo?
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Loš redosled prikaza dinamički kreiranih frame-ova 12.06.2008. u 13:15 · pre 223 meseca #2
Koliko sam uspeo da pohvatam, HideFrames je krivac.

Pokusaj ovako

Code:

procedure TxFrameManager.HideFrames;
  var
    i: Integer;
begin
  // sakrivanje svih frameove
  for i := FrameCount - 1 downto 0 do
    FrameInfos[i].Frame.Parent := nil;
end;


Od poslednjeg ka prvom, ako sam dobro shvatio poentu :)
Potpis
TurboDispatchJumpAddressEnd
----
Knocka Fia
----
And so we meet, again in a different time
Re: Loš redosled prikaza dinamički kreiranih frame-ova 12.06.2008. u 14:09 · pre 223 meseca #3
Interesantno - promena redosleda nilovanja je doprinela da se frejmovi prikazuju od poslednjeg ka prvom!

Nažalost - meni treba da se frejmovi prikazuju od prvog ka poslednjem.

Probao sam i da u jednoj petlji prvo pohvatam sve frejmove koji se mogu prikazati, a da onda u drugoj petlji te frejmove i prikažem. I ne vredi :(
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Loš redosled prikaza dinamički kreiranih frame-ova 12.06.2008. u 14:17 · pre 223 meseca #4
Ah, kako je rešenje prosto :) (radi i sa originalnom verzijom HideFrames procedure)

Samo sam nakon prikaza Frema postavio njegov Top na dovoljno veliki broj :)
Code:
procedure TxFrameManager.ShowFrame(pIndex: Integer; pWinControl: TWinControl);
...
      if lCanDraw then begin
        lFrameInfo.ShowFrame(pWinControl);
        lFrameInfo.Frame.Top := 2000; // <- dovoljno veliki broj :)
      end;
...
end;

Hvala nikomak, a hvala i svima ostalima koji su posvetili barem i sekund vremena :)
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme