Toon posts:

Borland c++ menu van panels maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het bouwen van een applicatie, echter levert het grafisch nog een paar problemen op.
De applicatie gaat er zo uit zien: Afbeeldingslocatie: http://home.kliksafe.nl/g.vandennoort/1.jpg

Mijn idee was om het menu aan de linker kant op te bouwen uit een aantal panels. Deze wil ik dan met code plaatsen, omdat ik van tevoren niet weet hoeveel er moeten komen.
Terwijl het programma draait een panel plaatsen is menog neit gelukt, misschien is het wel heel simpel, maar ik kom er even niet uit, iemand een tip.

Of misschien is het wel helemaal niet handig een zo'n menu met panels te bouwen

Verwijderd

ik zou niet weten of dat kan (net ff geprobeerd met een kale pointer en new object. dat wil iig niet)
maar zo moet het ook kunnen:

-zet 100 panels op je form.
-maak een array (TPanel *Panels[100]) (.h file)
-zet ze eenmalig in dat array (kan bijv bij de constructor van je form)
Panels[0] = Panel0;
Panels[1] = Panel1;
Panels[2] = Panel2;
-maak een for loop bij de oncreate waar je ze in "goed" zet: Panels[i]enabled=false en Panels[i]visible=false. evt de boundaries enzo nog regelen

[ Voor 3% gewijzigd door Verwijderd op 24-06-2006 09:19 ]


Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 24 juni 2006 @ 09:19:
ik zou niet weten of dat kan (net ff geprobeerd met een kale pointer en new object. dat wil iig niet)
maar zo moet het ook kunnen:

-zet 100 panels op je form.
-maak een array (TPanel *Panels[100]) (.h file)
-zet ze eenmalig in dat array (kan bijv bij de constructor van je form)
Panels[0] = Panel0;
Panels[1] = Panel1;
Panels[2] = Panel2;
-maak een for loop bij de oncreate waar je ze in "goed" zet: Panels[i]enabled=false en Panels[i]visible=false. evt de boundaries enzo nog regelen
Zoiets kan zou inderdaad kunnen, echter had ik het liever met zelfgemaakte componenten gedaan. Dat moet volgens mij ook kunnen, echter is hier weinig info over te vinden. Volgens mij kan het met componenten heel simpel, ik kom er niet uit, maar misschien heeft iemand anders nog een tip

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Runtime componenten op je form plaatsen kan wel gewoon, je moet alleen ff opletten dat je de parent enzo instelt. Voorbeeldje uit oude code van mij:

C++:
1
2
3
4
5
6
7
8
TShape *verk_tafels[100]; 

verk_tafels[vrij] = new TShape(frmVerkoop);
verk_tafels[vrij]->Parent = frmVerkoop->zaalPanel;
verk_tafels[vrij]->Top = 10; verk_tafels[vrij]->Left = 10;
verk_tafels[vrij]->Height = 20; verk_tafels[vrij]->Width = 20;
verk_tafels[vrij]->Visible = true;
verk_tafels[vrij]->BringToFront();

[ Voor 14% gewijzigd door Bigs op 24-06-2006 10:42 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19-02 19:53

Creepy

Tactical Espionage Splatterer

Hoi G.vandennoort en welkom op GoT :)

Hier op GoT gana we er vanuit dat je eerste zelf aan de slag bent gegaan. In dit geval gaan we er dus vanuit dat je zelf bezig bent geweest met het schrijven van code. Dus wat heb je nu al aan code geprobeerd en wat lukte daar niet mee?

Daarnaast is het tijdens runtime plaatsen van componenten op een form voor zowel Delphi als C++ Builder (die allebei de VCL gebruiken) al regelmatig voorbij gekomen. Als je de search gebruikt moet je vast wel een aantal topics kunnen vinden hierover. Staat hier niks bruikbaars tussen? Wat vaak wordt vergeten na creeeren van het component is om naast de owner (vaak meegegeven in de constructur) ook nog de parent te zetten (waar het component op komt te staan).

Eigenlijk verwachten we een aantal dingen van je voordat je hier een topic opent. Deze zaken staan genoemd in Programming Beleid en dan met name in Programming Beleid - De Quickstart. Als je hier eens naar zou willen kijken :)

[ Voor 10% gewijzigd door Creepy op 24-06-2006 11:32 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Je kan die hele applicatie, die vier kolummen, vervangen door een listview. Aan een listview koppel je dan vier kolommen en die vul je met de juiste data. Je hebt dan alleen standaard wat weinig controle over hoe de kolommen uitzien. Je kunt volle controle krijgen door zelf te tekenen, de zogenaamde ownerdraw manier. Maar om hetzelfde resultaat te krijgen als in je screenshot is dat niet zo een twee drie gedaan. Maar er zijn genoeg voorbeelden op internet te vinden om je op weg te helpen.

Verwijderd

Ken C++ niet, ben zelf meer een delphi mens.
Heb je al eens gekeken naar een string- of drawgrid ? Daarmee zou je mooi de linker en rechterkant van je form mee kunnen vullen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:53
Verwijderd schreef op zaterdag 24 juni 2006 @ 12:28:
Je kan die hele applicatie, die vier kolummen, vervangen door een listview. Aan een listview koppel je dan vier kolommen en die vul je met de juiste data. Je hebt dan alleen standaard wat weinig controle over hoe de kolommen uitzien. Je kunt volle controle krijgen door zelf te tekenen, de zogenaamde ownerdraw manier. Maar om hetzelfde resultaat te krijgen als in je screenshot is dat niet zo een twee drie gedaan. Maar er zijn genoeg voorbeelden op internet te vinden om je op weg te helpen.
Hetgeen de topicstarter wil, is blijkbaar niet echt een listview. Links heeft hij een soort 'grid', waar hij blijkbaar iets kan aanklikken, en dan ziet hij aan de rechterkant daar de details van.

At runtime componenten aanmaken kan; Bigs legt het al uit, het is dus niets meer dan een object instantieren van de class die je wilt (TPanel bv), en deze dan aan de goede control collection toevoegen (door bv de parent van je control te zetten).

https://fgheysels.github.io/


Verwijderd

whoami schreef op zaterdag 24 juni 2006 @ 12:56:
[...]
Hetgeen de topicstarter wil, is blijkbaar niet echt een listview. Links heeft hij een soort 'grid', waar hij blijkbaar iets kan aanklikken, en dan ziet hij aan de rechterkant daar de details van.
Idd, ik zie het nu ja. Maar dan is een listview juist nog handiger. De eerste twee kolommen zet je in een listview, ipv runtime panels aan te maken en verwijderen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:53
Je zal wel geen 2 lijnen tekst onder elkaar in één listViewItem krijgen, tenzij je misschien met custom drawing aan de slag gaat.
Verder is het ook zo moeilijk niet om die panels of knoppen at runtime aan te maken, zoals de TS wil doen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Creepy schreef op zaterdag 24 juni 2006 @ 11:30:
Hoi G.vandennoort en welkom op GoT :)

Hier op GoT gana we er vanuit dat je eerste zelf aan de slag bent gegaan. In dit geval gaan we er dus vanuit dat je zelf bezig bent geweest met het schrijven van code. Dus wat heb je nu al aan code geprobeerd en wat lukte daar niet mee?

Daarnaast is het tijdens runtime plaatsen van componenten op een form voor zowel Delphi als C++ Builder (die allebei de VCL gebruiken) al regelmatig voorbij gekomen. Als je de search gebruikt moet je vast wel een aantal topics kunnen vinden hierover. Staat hier niks bruikbaars tussen? Wat vaak wordt vergeten na creeeren van het component is om naast de owner (vaak meegegeven in de constructur) ook nog de parent te zetten (waar het component op komt te staan).

Eigenlijk verwachten we een aantal dingen van je voordat je hier een topic opent. Deze zaken staan genoemd in Programming Beleid en dan met name in Programming Beleid - De Quickstart. Als je hier eens naar zou willen kijken :)
Bedank voor de info, 'k had al op de forums gezocht alleen blijkbaar niet op de juiste woorden.
Deze link moet mij de oplossing kunnen bieden:
http://gathering.tweakers...%2B%2Cruntime%2Ccomponent
Pagina: 1