|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
|
|