Oppure

Loading
11/12/06 21:39
Herbert Kilpin
Vorrei creare un programma che calcoli le medie usando la tabella StringGrid(mi serve per fini scolastici): ho pensato di inserire un form a parte al project per inserire le impostazioni, così l'utente seleziona solo le caselle che gli interessa...(2 screenshot) img231.imageshack.us/img231/5235/… img231.imageshack.us/img231/6075/…
L'unico problema è che, visto che non si trovano nella stessa form, non so come poter usare il comando
if CheckBox.checked=true then
ho provato ad usare google e leggere un manuale(in pdf) di delphi, ma non ho trovato nulla... Qualcuno può aiutarmi? Grazie e buona serata!:-|
aaa
11/12/06 22:13
pierotofy
Supponendo l'esistenza di due ipotetici TForm1 e TForm2, per accedere agli elementi di TForm1 da TForm2 essendo Delphi un linguaggio Object Oriented l'unica maniera è passare un riferimento di TForm1 a TForm2.

Modifica il costruttore di TForm2 in modo che accetti un parametro di tipo TForm1, una cosa del genere insomma:

constructor TForm2.Create(AOwner: TComponent; ParentWin: TForm1);
begin
  self.ParentWin = ParentWin;
  inherited Create(AOwner);
end;

// ...

ParentWin.Checkbox1.Checked = true;

// ...
Ultima modifica effettuata da pierotofy 13/12/06 15:02
Il mio blog: piero.dev
12/12/06 14:32
Anonymous
o sennò puoi prendere un semplice listbox, un edit e 2 bottoni per fare il tutto... allora nell'edit inserisci di volta in volta un valore(ad esempio 8,7,4,7,4,3 ecc) poi clicchi sul bottone ad esempio BtnCarica e in automatico ti sposta il valore inserito nella listbox cosi da avere i voti in fila nella listbox. Poi per fargli fare la media clicchi sull'altro bottone che ti fa la somma di tutti i numeri inseriti nel listbox (usando un ciclo for to do per fargli controllare tutto contenuto) e dopo alla somma gli dividi il numero totale dei voti che lo trovi dando l'istruzione listbox1.count-1 (cioè ti conta tutte le righe della listbox toglendone 1 perchè il conteggio parte da 0)

se qualcosa nn è chiaro riferisci che semplifico magari anche con qualche codice
aaa
12/12/06 17:59
Herbert Kilpin
Grazie 1000! Dopo provo!;)
aaa
13/12/06 14:25
Herbert Kilpin
Postato originariamente da pierotofy:

Supponendo l'esistenza di due ipotetici TForm1 e TForm2, per accedere agli elementi di TForm1 da TForm2 essendo Delphi un linguaggio Object Oriented l'unica maniera è passare un riferimento di TForm1 a TForm2.

Modifica il costruttore di TForm2 in modo che accetti un parametro di tipo TForm1, una cosa del genere insomma:

constructor TForm2.Create(AOwner: TComponent; ParentWin: TForm1){
  self.ParentWin = ParentWin;
  inherited Create(AOwner);
}

// ...

ParentWin.Checkbox1.Checked = true;

// ...


il problema è : come si modifica il costruttore di una form?
Ultima modifica effettuata da Herbert Kilpin 13/12/06 14:44
aaa
13/12/06 15:03
pierotofy
:-|

Modifichi il codice, ovviamente. Siccome TForm1 e' derivata da TForm, implementa gia' un costruttore predefinito, quindi devi aggiungerne tu uno.

Nella sezione interface:

type
TForm1 = class(TForm)
//...
constructor Create(AOwner: TComponent; ParentWin: TForm2);
end;

e nella sezione implementation:

constructor TForm1.Create(AOwner: TComponent; ParentWin: TForm2);
begin
//...
end;

Il resto voglio che tu lo scopra e lo impari da solo. Questa e' una buona traccia per approfindire l'argomento ereditarieta' e polimorfismo del Delphi.
Il mio blog: piero.dev
13/12/06 15:14
Herbert Kilpin
Postato originariamente da pierotofy:

:-|

Modifichi il codice, ovviamente. Siccome TForm1 e' derivata da TForm, implementa gia' un costruttore predefinito, quindi devi aggiungerne tu uno.


Avevo capito male, ovvero che avrei dovuto modificare il costruttore predefinito... :-| Grazie 1000 e buona serata! :D
aaa