?
Solved

TFrame Function Problem

Posted on 2009-05-13
4
Medium Priority
?
222 Views
Last Modified: 2012-05-06
Hi I'd like to be able to activate a action within a function within a tframe. though for some reason I can't do it?
object Frame2: TFrame2
  Left = 0
  Top = 0
  Width = 320
  Height = 240
  TabOrder = 0
  TabStop = True
  object Edit1: TEdit
    Left = 72
    Top = 48
    Width = 121
    Height = 21
    TabOrder = 0
    Text = 'Edit1'
  end
  object Button1: TButton
    Left = 72
    Top = 75
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 1
    OnClick = Button1Click
  end
end
 
 
 
 
==========================================================
 
 
 
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TFrame2 = class(TFrame)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
implementation
 
{$R *.dfm}
 
function Start:string;
begin
frame2.edit1.text:='tt';
end;
 
function finish:string;
begin
start;
 
 
end;
 
 
procedure TFrame2.Button1Click(Sender: TObject);
begin
finish;
end;
 
end.

Open in new window

0
Comment
Question by:eNarc
  • 2
  • 2
4 Comments
 
LVL 38

Expert Comment

by:Geert Gruwez
ID: 24377849
why do you mix methods and proc/funcs like this ?
what are you trying to achieve ?

next to that your function results are not defined ...

this may be just a sample but it brings just more questions than simplify

when calling a function from a frame from within the form and this is not a method of the frame, it is better to pass the form and/or frame as a parameter
0
 
LVL 38

Accepted Solution

by:
Geert Gruwez earned 2000 total points
ID: 24377892
something like this ?
object Frame2: TFrame2
  Left = 0
  Top = 0
  Width = 320
  Height = 240
  TabOrder = 0
  TabStop = True
  object Edit1: TEdit
    Left = 72
    Top = 48
    Width = 121
    Height = 21
    TabOrder = 0
    Text = 'Edit1'
  end
  object Button1: TButton
    Left = 72
    Top = 75
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 1
    OnClick = Button1Click
  end
end
 
 
 
 
==========================================================
 
 
 
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TFrame2 = class(TFrame)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
implementation
 
{$R *.dfm}
 
function Start(aFrame: TFrame):string;
begin
  //it's a function, so return a result 
  // or change it to a procedure
  Result := '';
  if aFrame is TFrame2 then 
    Result := TFrame2(aFrame).Edit1.Text;
  //frame2.edit1.text:='tt';
end;
 
function finish(aFrame: TFrame):string;
begin
  Result := start(aFrame);
end;
 
 
procedure TFrame2.Button1Click(Sender: TObject);
begin
  finish(Self);
end;
 
end.

Open in new window

0
 
LVL 5

Author Comment

by:eNarc
ID: 24378823
thankyou, your a life saver, you truly are, I thought it was something self, though when I did self, it declared it as being unknown, and now I see how you've done it :D and yea, it has to be declared, should have known hehe thankyou :D
0
 
LVL 5

Author Closing Comment

by:eNarc
ID: 31581111
thankyou :)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Integration Management Part 2
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …
Suggested Courses
Course of the Month15 days, 21 hours left to enroll

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question