|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 24.01.2005, 22:27 Titel: Borland C++ VLC - Steuerelemente dynamisch erstellen? |
|
|
Ich bastel gerade an einem kleinen Programm unter Borland C++
und möchte dort während der Laufzeit je nach Bedarf (einstellbar vom Benutzer) eine bestimmte Anzahl an Textfeldern dynamisch erstellen.
Ich hab schon allerlei rumprobiert, auch mit InsertControl, falls das dazu überhaupt gedacht ist, .... Nur hat's bisher nie gefunzt, dass ich dynamisch etwas auf meine Form zaubere, auch nicht mit Buttons.
Bin leider noch nicht allzu geübt mit dem Windows-Fenster-Programmen @ Borland C++.
Aber vielleicht kann mir der eine oder andere bei diesem Problem behilflich sein.
MfG _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 25.01.2005, 14:35 Titel: |
|
|
hm, hat das was mit dem Compilerzu tun? So weit ich weiß (und ich hab den Petzold, allerdings noch nicht alles gelesen) brauchst du für jedes Steuerelement nur ein Handle, und musst dir ne iD merken, das sollte doch nun wircklich nicht schwer sein das dynamisch zu machen.Entweder mit STL oder halt klassisch mit new und delete. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
C++Builder Senior JLI'ler
Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 25.01.2005, 14:39 Titel: |
|
|
nein du kannst keine Objekte wie Editfelder oder Buttons mit new und delete anlegen
eine gaaanz schlechte Variante, du packst tonnen weise von deinen Elementen auf das Formular, machst dir ein Array mit Referenzen auf die Teile und kannst so über die Dinger mit nem Array zugreifen, so kannst du die dann kompfortable mit ner Schleife bei allen Visible = false setzen und nur so viele anzeigen wie du brachst aber das das sehr unflexibel und resourcenraubened ist brauch ich dir ja nicht zu sagen ansonsten hätte das Patrick getan
Zuletzt bearbeitet von C++Builder am 25.01.2005, 14:54, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 25.01.2005, 14:53 Titel: |
|
|
warum soll man ds den nicht mit new oder delete machen können?
du brauchst doch nur ein Handle für Createwindow und musst vieleicht noch die ID zwischenspeichern. Wo soll das den bitteschön nicht gehen? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 25.01.2005, 15:21 Titel: |
|
|
Ich habs auch mal gesehen das es irgendwie funktioniert, war aber bei ner älteren Version, ich nehme aber nicht an das die das weggelassen haben. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 25.01.2005, 17:52 Titel: |
|
|
Dachte, es gäbe vielleicht irgendwo versteckt eine eigene Funktion von Borland.
Das mit den massig Controls draufsetzen kenn ich bereits aus Erfahrung, aber ich möchte bei diesem Projekt eigentlich ~1000 solcher verwenden, da ist das nicht wirklich eine sinnvolle Lösung.
Also wenn's wie ein Teil hier meint, einfach machbar ist, wäre für ein Beispiel dankbar.
Ansonsten kam mir noch die Idee, dass ich die Anzahl an gleichzeitig sichtbaren Feldern einmal draufklatsche und damit mehrere Vortäusche, d.h. Variablen in einem Feld speichere und die Ansicht jeweils anpasse.
MfG _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.01.2005, 15:34 Titel: |
|
|
CPP: | #include <windows.h>
#include <stdio.h>
/*
Dieses Programm erzeugt eine variable Zahl an Buttons
*/
const int NumButtons=1;
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR sParamString, int iCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
char cAppName[]=TEXT("Viele Buttons");
HWND* hButtons=new HWND[NumButtons];
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL, IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL, IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=MainWndProc;
WndClass.lpszClassName=cAppName;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(cAppName,
cAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL, //Menü
hInstance,
NULL);
//jetzt alle Knöpfe erstellen:
for(int i=0; i<NumButtons; i++)
{
hButtons[i]=CreateWindow(TEXT("button"), TEXT("Ok"), BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
10, 10+20*i, 200, 20,
hWnd, (HMENU)i, hInstance, NULL);//i ist die Button ID!
}
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Message, NULL, 0, 0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
delete[] hButtons;
return Message.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_DESTROY:
PostQuitMessage(NULL);
break;
case WM_COMMAND:
{
char Text[32];
sprintf(Text, "Button %i", LOWORD(wParam));
MessageBox(hWnd, Text, TEXT("Knopf gedrückt!"), MB_OK);
}
break;
default:
return DefWindowProc(hWnd, Message, wParam, lParam);
}
return 0;
}
|
Ist das das was du wolltest? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.01.2005, 18:58 Titel: |
|
|
Er nutzt wahrscheinlich den Borland C++ Builder da wird nen ganz anderes System benutzt. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.01.2005, 19:20 Titel: |
|
|
moment, Windows stellt diese funktionen doch so oder so zu Verfügugn, sollte das jetzt etwa Compiler abhängig sein? Das fände ich nun aber sehr seltsam. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|