Newsgroup: it.comp.lang.delphi
Titolo: gestione componente sul frame figlio dal frame madre

programma gestito con frame:
sul main_frame ho un pulsante che esegue determinate attività, vorrei
includere in queste attività la gestione di un pulsante presente in un
frame figlio
in pratica: ButtonMainFrame = ON -> ButtonChildFrame.visible := true;
ButtonMainFrame = OFF -> ButtonChildFrame.visible := False;
risultato: [Pascal Error] AA_Main.pas(1039): E2096 Method identifier
expected
ho provato anche ad inserire il tutto in una procedura sul
ChildFrame ... ma non riesco a capire come richiamarla
ovviamente i due frame sono collegati con gli 'uses'

scriptors pisze:

velocemente...
nella sezione public di TChildFrame
property ButtonEnabled:boolean read GetButtonEnabled write SetButtonEnabled;
dichiari la procedure SetButtonEnabled
procedure TChildFrame.SetButtonEnabled(aValue:Boolean);
begin
   ButtonChildFrame.visible := aValue;
end;
e la funzione GetButtonEnabled
nella MainFrame nell' evento OnMainButtonClick
   ChildFrame.ButtonEnabled:=true;
e dovrebbe andare


grazie mille, ho capito qualcosa in più ;)
credo che manchi qualcosa anche nel MainFrame ...
[Pascal Error] AA_Main.pas(1018): E2233 Property 'ButtonEnabled'
inaccessible here
???
read GetButtonEnabled  serve necessariamente o posso inserirlo solo se
devo 'leggere' lo stato del pulsante ?

 devo 'leggere' lo stato del pulsante ?
Serve solo per leggere lo stato del pulsante


tutto nel ChildFrame
    procedure SetButtonEnabled(aValue:Boolean);
...
    public
    { Public declarations }
    ScreenDC: HDC;
    property ButtonEnabled:boolean write SetButtonEnabled;
    constructor Create(AOwner: TComponent); override;
...
procedure TColorMap.SetButtonEnabled(aValue:Boolean);
begin
   Btest.visible := aValue;
end;

scriptors pisze:

Nella unit della mainframe
uses ChildFrameUnit
...
ChildFrame.ButtonEnabled:=true/false
...
dovrebbe funzionare


l'ho scritto nel primo post, i due frames sono ovviamente collegati
tra loro
potrebbe essere inerente alla visualizzazione o meno del ChildFrame ?
(magari devo mettere il tutto in un IF .. THEN che verifica se il
ChildFrame è attivo o meno ???)

 ChildFrame è attivo o meno ???)
magari :)
ma piu` che attivo se esiste


per esistere esiste di sicuro ;)
faccio qualche prova questa sera e poi vediamo
ps. grazie per le risposte
per il momento ho ovviato gestendo dal ChildFrame una verifica sul
pulsante del MainFrame (così funziona tranquillamente, purtroppo non
il contrario), se il pulsante è attivo (c'è un led verde) allora il
pulsante sul ChildFrame è visibile ... un po macchinoso ma devo
provare il funzionamento di altre procedure e mi serviva una cosa
veloce ... anche se risolta in maniera molto 'farraginosa'

ho combinato poco :(
ho risolo momentaneamente inserendo una variabile pubblica nel
TMainForm, modificata in base all'attivazione del pulsante, e
verificata dal TCustomPageFrame dove rendo visibile o meno il secondo
pulsante presente solo sul frame in questione.
Sicuramente ho sbagliato a descrivere il problema in quanto trattasi
di modificare la proprietà di un pulsante presente in una
TCustomPageFrame dal TMainForm (non MainFrame come erroneamente
scritto)
se riesco a risolvere da solo, come sempre, posterò la soluzione

 se riesco a risolvere da solo, come sempre, posterņ la soluzione
Puoi ridescrivere il problema?
Da quanto ho capito hai un main (form) e un child (frame)
Crei la main e su di essa ci attacchi il child
Il child e` visibile
Vuoi attivare e disattivare un componente sul child

 Vuoi attivare e disattivare un componente sul child
dunque, ho il MainForm e, su di esso, ho numerosi Frame (attivati in
base ai vari menu del programma)
sul MainForm ho dei pulsanti e, uno di questi, mi attiva il
collegamento RS232
su di un ben specifico Frame ho un TButtonSendData che invia dati
sulla RS232, ovviamente per farlo il collegamento deve essere attivo
il problema è che il TButtonSendData deve essere visibile solo se il
pulsante sul MainForm è attivo e/o viene cliccato passando da OFF a ON
diciamo pure che ci sono numerose 'soluzioni' ma, quelle che ho
provato, sono 'pezze sporche a tappare il buco'
quando il pulsante sul MainForm viene cliccato un Tpanel su di esso
passa da Rosso a Verde (o viceversa) e una Tlabel cambia da
Disconnected a Connected (o viceversa), ovviamento poi c'è il codice
che verifica se la connessione va a buon fine o meno. Diciamo il
classico pulsante con LED fatto in maniera artigianale
;-)
in pratica dal MainForm voglio attivare o disattivare un pulsante
presente su di un TCustomPageFrame