/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Egen funktion vil ikke i Formen TBrugerfla~
Fra : Gugge


Dato : 08-08-02 09:23

Jeg er ikke helt klar over hvad der er galt.
void TBrugerflade::InsertMemoFelter(int screen)
skulle nu gerne være en del af formen TBrugerflade, men
alligevel vil den ikke du'...
Ved en knap tryk og nøjagtigt det samme i koden virker
det fint...hmm..

Funktionen InsertMemoFelter(screen) skal nu kaldes
med Brugerflade->InsertMemoFelter(screen); for at det
virker, det er da også lidt pudsigt...
Den vil ikke kendes ved funktionen uden..

Er der nogen der kan sige hvorfor det kun er knapfunktionen
der vil virke og ikke min egen insertfunktion, som automatisk
skulle træde i kraft..?????

Mvh

Gugge...............


Her er gui.h, og de 2 funktioner...:
//--------------------------------------------------------------------------
-
#ifndef GuiH
#define GuiH
//--------------------------------------------------------------------------
-
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <ComCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
//--------------------------------------------------------------------------
-
class TBrugerflade : public TForm
{
__published: // IDE-managed Components
TMainMenu *MainMenu1;
TMenuItem *File;
TMenuItem *Exit;
TButton *Button1;
void __fastcall ExitClick(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);


private: // User declarations

public: // User declarations
__fastcall TBrugerflade(TComponent* Owner);
void TBrugerflade::InsertMemoFelter(int screen);
};
//--------------------------------------------------------------------------
-
extern PACKAGE TBrugerflade *Brugerflade;
//--------------------------------------------------------------------------
-
#endif

void InsertObjectsToForm(int screen)
{
TPageControl *PageControl1 = new TPageControl(Brugerflade);
PageControl1->Parent = Brugerflade;
PageControl1->Left = 100;
PageControl1->Top = 300;
PageControl1->Width = 400;

TTabSheet *One = new TTabSheet(PageControl1);
One->PageControl = PageControl1;
One->Enabled = true;
One->Caption = "2Pers";
One->Height = 300;
One->Width = 400;

Brugerflade->InsertMemoFelter(screen);
}
//------------------------------------------------------------------
void TBrugerflade::InsertMemoFelter(int screen)
{
char const *ToPersFile = "2PrsStk.bin";
FILE *f;
char buffer[10];
char charantal2prsmemo[10];
int antal2persmemofelter;

f=fopen(ToPersFile,"r");
if(f)
{
while(fgets(buffer,(int)sizeof buffer, f) != NULL)
{
sscanf(buffer,"%s",charantal2prsmemo);
}
antal2persmemofelter = atoi(charantal2prsmemo);
}
fclose(f);
char namebuffer[20];
char nameLabel[20];

int memotop = 100;
int memoleft = 250;
int labeltop = 100;
for(int x=1; x<antal2persmemofelter+1; x++)
{
sprintf(namebuffer,"objekt%d",x);
sprintf(nameLabel,"%d",x);

TMemo *namebuffer = new TMemo(this);
namebuffer->Height = 25;
namebuffer->Width = 200;
namebuffer->Left = memoleft; //
HER ER FORSØGT BÅDE MED this
namebuffer->Top = memotop; // OG
Brugerflade, men intet virker..
namebuffer->Parent = this;
// Der må mangle noget...
memotop += 35;

TLabel *nameLabel = new TLabel(Brugerflade);
nameLabel->Top = labeltop;
nameLabel->Height = 25;
nameLabel->Caption = "Tekst.....";
nameLabel->Parent = Brugerflade;
labeltop += 35;
}
}
//--------------------------------------------------------------------------
-


void __fastcall TBrugerflade::Button1Click(TObject *Sender)
{
char const *ToPersFile = "2PrsStk.bin";

FILE *f;
char buffer[10];
char charantal2prsmemo[10];
int antal2persmemofelter;
f=fopen(ToPersFile,"r");
if(f)
{
while(fgets(buffer,(int)sizeof buffer, f) != NULL)
{
sscanf(buffer,"%s",charantal2prsmemo);
}
antal2persmemofelter = atoi(charantal2prsmemo);
}
fclose(f);
char namebuffer[20];
char nameLabel[20];

int memotop = 100;
int memoleft = 450;
int labeltop = 100;
for(int x=1; x<antal2persmemofelter+1; x++)
{
sprintf(namebuffer,"objekt%d",x);
sprintf(nameLabel,"%d",x);

TMemo *namebuffer = new TMemo(this);
namebuffer->Height = 25;
namebuffer->Width = 200;
namebuffer->Left = memoleft;
namebuffer->Top = memotop;
namebuffer->Parent = this;
memotop += 35;

TLabel *nameLabel = new TLabel(this);
nameLabel->Top = labeltop;
nameLabel->Parent = this;
nameLabel->Height = 25;
labeltop += 35;
nameLabel->Caption = "Text.....";
}
}
//--------------------------------------------------------------------------
-




 
 
Ivan Johansen (08-08-2002)
Kommentar
Fra : Ivan Johansen


Dato : 08-08-02 17:09

Gugge wrote:

> Funktionen InsertMemoFelter(screen) skal nu kaldes
> med Brugerflade->InsertMemoFelter(screen); for at det
> virker, det er da også lidt pudsigt...
> Den vil ikke kendes ved funktionen uden..


Det er fordi den bliver kaldt fra en funktion, der ikke er en del af
samme klasse.

> Er der nogen der kan sige hvorfor det kun er knapfunktionen
> der vil virke og ikke min egen insertfunktion, som automatisk
> skulle træde i kraft..?????


Det du viser er en blanding af den der virker og den der ikke virker.
Det er derfor svært at forstå hvad du egentligt vil. Jeg har prøvet at
rette lidt i det som jeg tror at du vil have det:

--- Unit1.h ---
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TBrugerflade : public TForm
{
__published:
// IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private:
// User declarations
public:
   // User declarations
__fastcall TBrugerflade(TComponent* Owner);
void InsertObjectsToForm();
void InsertMemoFelter(TWinControl *Control);
};
//---------------------------------------------------------------------------
extern PACKAGE TBrugerflade *Brugerflade;
//---------------------------------------------------------------------------
#endif



--- Unit1.cpp ---
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <ComCtrls.hpp>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TBrugerflade *Brugerflade;
//---------------------------------------------------------------------------
__fastcall TBrugerflade::TBrugerflade(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TBrugerflade::InsertObjectsToForm()
{
TPageControl *PageControl1 = new TPageControl(Brugerflade);
PageControl1->Parent = Brugerflade;
PageControl1->Left = 10;
PageControl1->Top = 30;
PageControl1->Width = 600;
PageControl1->Height = 400;

TTabSheet *One = new TTabSheet(PageControl1);
One->PageControl = PageControl1;
One->Enabled = true;
One->Caption = "2Pers";

Brugerflade->InsertMemoFelter(One);
}
//------------------------------------------------------------------
void TBrugerflade::InsertMemoFelter(TWinControl *Control)
{
char const *ToPersFile = "2PrsStk.bin";
FILE *f;
char buffer[10];
char charantal2prsmemo[10];
int antal2persmemofelter =4;

f=fopen(ToPersFile,"r");
if(f)
{
while(fgets(buffer,(int)sizeof buffer, f) != NULL)
{
sscanf(buffer,"%s",charantal2prsmemo);
}
antal2persmemofelter = atoi(charantal2prsmemo);
}
fclose(f);
char namebuffer[20];
char nameLabel[20];

int memotop = 100;
int memoleft = 250;
int labeltop = 100;
for(int x=1; x<antal2persmemofelter+1; x++)
{
sprintf(namebuffer,"objekt%d",x);
sprintf(nameLabel,"%d",x);

TMemo *namebuffer = new TMemo(Control);
namebuffer->Height = 25;
namebuffer->Width = 200;
namebuffer->Left = memoleft;
namebuffer->Top = memotop;
namebuffer->Parent = Control;
memotop += 35;

TLabel *nameLabel = new TLabel(Control);
nameLabel->Top = labeltop;
nameLabel->Height = 25;
nameLabel->Caption = "Tekst.....";
nameLabel->Parent = Control;
labeltop += 35;
}
}
//--------------------------------------------------------------------------
void __fastcall TBrugerflade::Button1Click(TObject *Sender)
{
InsertObjectsToForm();
}
//--------------------------------------------------------------------------



Hvis du stadig har problemer, så prøv at forklare hvordan det skal
virke, i stedet for at bare at skrive at det ikke virker. Jeg håber du
kan bruge det.

Ivan Johansen


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste