PDA

Visualizza la versione completa : [delphi] ridimenzionamento


FinalFantasy
17-12-2004, 18:27
procedure TForm1.ResizeText(Name: String );
var Prova: TRichEdit;
begin
Prova := TRichEdit.Create(Self) ;
Prova.Name := Name;
Prova.Height := tabcode.Height - 7;
Prova.Width := tabcode.Width - 7;
end;

Questo codice dovrebbe, secondo me, ridimensionare tutti gli oggetti (RichEdit) all'interno di ogni tab...però appena arriva sulla 6a riga, si blocca l'esecuzione del programma...Come mai?

alka
17-12-2004, 19:01
Originariamente inviato da FinalFantasy
Questo codice dovrebbe, secondo me, ridimensionare tutti gli oggetti (RichEdit) all'interno di ogni tab...

A quali Tab ti riferisci? Un "background" di quello che stai realizzando sarebbe utile a comprendere meglio il panorama.

Quali RichEdit, visto che vengono tutti creati al volo?

Inoltre, non viene assegnata una posizione a questi RichEdit, senza contare che manca pure l'assegnazione del controllo Parent.


Originariamente inviato da FinalFantasy
però appena arriva sulla 6a riga, si blocca l'esecuzione del programma...Come mai?
Cosa intendi per "si blocca"?
Viene notificato un errore? il programma si congela?

Dettagli, dettagli, dettagli... :ciauz:

FinalFantasy
17-12-2004, 19:11
Infatti, gli richedit vengono creati al volo e anche il suo nome. Quindi credevo che qst codice fosse adatto per ridimensionare tutti i richedit creati al momento dell'esecuzione del programma...

Spunta un messaggio di errore ed ad un certo punto dice "RICHEDIT0 ALREADY EXISTS"...

Cos'ha di errato qst codice?

alka
17-12-2004, 19:14
Originariamente inviato da FinalFantasy
Spunta un messaggio di errore ed ad un certo punto dice "RICHEDIT0 ALREADY EXISTS"...
Cos'ha di errato qst codice?
Che attribuisci lo stesso nome a due componenti distinti (in questo caso, RichEdit0).

FinalFantasy
17-12-2004, 19:16
Si lo so che significa quella frase...quello che intedevo io...dov'è che sbaglio?
In sostanza...come faccio a modificare i parametri di un ogetto creato al volo?

alka
17-12-2004, 19:17
Originariamente inviato da FinalFantasy
Si lo so che significa quella frase...quello che intedevo io...dov'è che sbaglio?
Come faccio a dirlo se non riporti il codice... :rollo:

FinalFantasy
17-12-2004, 19:19
Originariamente inviato da alka
Come faccio a dirlo se non riporti il codice... :rollo:
Ma io il codice te lo dato qualche post fa...se ti servono altre porzioni di codice dimmi quale ti devo riportare

alka
17-12-2004, 19:23
Originariamente inviato da FinalFantasy
Ma io il codice te lo dato qualche post fa...

A parte gli errori che conteneva, assegni al RichEdit un nome che viene passato come parametro, quindi la causa è nel codice che genera tale nome (che ne genera uno doppio).


Originariamente inviato da FinalFantasy
se ti servono altre porzioni di codice dimmi quale ti devo riportare
Quella che esegue un ipotetico ciclo e richiama ripetutamente la ResizeText.

Ciao! :ciauz:

FinalFantasy
17-12-2004, 19:25
procedure TForm1.FormResize(Sender: TObject);
var i:integer;
begin
tabcode.Height:=form1.Height - 130;
tabcode.Width:=form1.Width-30;
if indice > 0 then
begin
for i:=0 to indice do
begin
ResizeText('RichText'+ inttostr(i));
end;
end;
end;

alka
17-12-2004, 19:29
Hai troppa fretta di scrivere e lasci a chi risponde il compito di interpretare informazioni che non vengono fornite.

Se io impiego tempo a rispondere, dovresti almeno prenderne un po' tu per scriverne, no?

Da dove proviene la variabile indice? Quante volte viene richiamata la tua funzione? Viene richiamata più di una volta? Se sì, i controlli precedenti vengono distrutti o permangono?

Loading