Newsgroup: it.comp.lang.delphi
Titolo: [D2010] Invalid Image Size ?

Non riesco a determinare perché senza un apparente motivo non mi riesce 
più di aprire delle form in cui c'è una griglia derivata dalla 
JvUltimDBGrid. Delphi mi restituisce il seguente errore:
 
Error creating form: Invalid image size.
 
a) Non ho toccato il codice del componente derivato.
b) Se provo, su un nuovo progetto, a posizionare la griglia derivata mi 
viene restituita una dialog con l'errore "Invalid image size" e i due 
pulsanti Ok e Details.
Se visualizzo i dettagli non capisco come investigarli per scoprire il 
problema.
 
Cosa può essere successo?
 
Grazie.
 
Ciao.

Posta i dettagli.
 
A.


Nessun dettaglio :(
 
Semplicemente non si aprono più le form che contengono la griglia 
derivata (TmxZDBGrid) comparendo l'errore che ho postato.
 
Il progetto parte e le parti che a design time non riesco più ad aprirle 
vengono visualizzate e funziona regolarmente!
 
Se provo ad aggiungere un form al progetto e tento di metterci sopra una 
griglia derivata (TmxZDBGrid) mi viene fuori lo stesso errore. Se 
ricompilo il package che contiene la griglia tutto fila liscio senza 
neanche una warning!
 
 
Non ho alcun codice da mostrare perché è il file .dfm che non si apre, 
lo posto di seguito aprendolo con il blocco note:
 
inherited frmADocumenti: TfrmADocumenti
   Caption = 'Anagrafe Documenti gestibili'
   ClientWidth = 662
   ExplicitWidth = 678
   ExplicitHeight = 515
   PixelsPerInch = 96
   TextHeight = 13
   inherited ctrlbr1: TControlBar
     Width = 662
     ExplicitWidth = 662
   end
   inherited ScrollBox1: TScrollBox
     Width = 662
     ExplicitWidth = 662
     object lbl1: TLabel
       Left = 82
       Top = 10
       Width = 77
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Codice:'
     end
     object lbl2: TLabel
       Left = 82
       Top = 32
       Width = 77
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Descrizione:'
     end
     object lbl3: TLabel
       Left = 82
       Top = 82
       Width = 77
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Richiede:'
     end
     object lbl10: TLabel
       Left = 47
       Top = 207
       Width = 112
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Spese addebitate:'
     end
     object lbl11: TLabel
       Left = 47
       Top = 228
       Width = 112
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'IVA sulle spese:'
     end
     object Label1: TLabel
       Left = 47
       Top = 55
       Width = 112
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Causale:'
     end
     object Label2: TLabel
       Left = 56
       Top = 304
       Width = 103
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Modello di stampa:'
     end
     object Label3: TLabel
       Left = 82
       Top = 104
       Width = 77
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Movimenta:'
     end
     object Label4: TLabel
       Left = 11
       Top = 276
       Width = 148
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'IVA sulle spese di Trasporto:'
     end
     object Label5: TLabel
       Left = 3
       Top = 255
       Width = 156
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Spese di Trasporto Addebitate:'
     end
     object Label6: TLabel
       Left = 24
       Top = 331
       Width = 135
       Height = 13
       Alignment = taRightJustify
       AutoSize = False
       Caption = 'Pu'#242' essere trasformato in:'
     end
     object mxDBID1: TMxDBIDEdit
       Left = 165
       Top = 7
       Width = 44
       Height = 21
       CharCase = ecUpperCase
       Color = clInfoBk
       DataField = 'ID'
       DataSource = dmADocumenti.dsADocumenti
       MaxLength = 4
       TabOrder = 0
       AutoDisabilitaModo = admEditModes
     end
     object dbedtDESCRIZIONE: TMxDBEdit
       Left = 165
       Top = 29
       Width = 393
       Height = 21
       DataField = 'DESCRIZIONE'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 1
     end
     object dbedtSPESE_INCASSO: TMxDBEdit
       Left = 165
       Top = 204
       Width = 68
       Height = 21
       DataField = 'SPESE'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 8
     end
     object jvdblkcb1: TJvDBLookupCombo
       Left = 165
       Top = 226
       Width = 334
       Height = 21
       Color = clInfoBk
       DataField = 'lkIvaSpese'
       DataSource = dmADocumenti.dsADocumenti
       LookupDisplay = 'ID;DESCRIZIONE'
       TabOrder = 9
     end
     object MxDBEdit1: TMxDBEdit
       Left = 165
       Top = 52
       Width = 371
       Height = 21
       DataField = 'CAUSALE'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 2
     end
     object dbcbContropartita: TJvDBComboBox
       Left = 165
       Top = 79
       Width = 169
       Height = 21
       Color = clInfoBk
       DataField = 'CONTROPARTITA'
       DataSource = dmADocumenti.dsADocumenti
       ItemHeight = 13
       Items.Strings = (
         'Cliente'
         'Fornitore'
         'Nulla'
         'Manuale'
         'Manuale + Cliente')
       TabOrder = 3
       Values.Strings = (
         'C'
         'F'
         'N'
         'M'
         'E')
       ListSettings.OutfilteredValueFont.Charset = DEFAULT_CHARSET
       ListSettings.OutfilteredValueFont.Color = clRed
       ListSettings.OutfilteredValueFont.Height = -11
 
ListSettings.OutfilteredValueFont.Name
 = 'Tahoma'
       ListSettings.OutfilteredValueFont.Style = []
       OnChange = dbcbContropartitaChange
     end
     object JvDBComboBox2: TJvDBComboBox
       Left = 165
       Top = 101
       Width = 137
       Height = 21
       Color = clInfoBk
       DataField = 'MOVIMENTA'
       DataSource = dmADocumenti.dsADocumenti
       ItemHeight = 13
       Items.Strings = (
         'Nulla'
         'Scarico +'
         'Scarico -'
         'Carico +'
         'Carico -'
         'Ordine +'
         'Ordine -'
         'Impegno +'
         'Impegno -')
       TabOrder = 4
       Values.Strings = (
         '0'
         '1'
         '2'
         '3'
         '4'
         '5'
         '6'
         '7'
         '8')
       ListSettings.OutfilteredValueFont.Charset = DEFAULT_CHARSET
       ListSettings.OutfilteredValueFont.Color = clRed
       ListSettings.OutfilteredValueFont.Height = -11
 
ListSettings.OutfilteredValueFont.Name
 = 'Tahoma'
       ListSettings.OutfilteredValueFont.Style = []
     end
     object dbchkNumerazione: TDBCheckBox
       Left = 165
       Top = 128
       Width = 205
       Height = 17
       Caption = 'Numera Automaticamente i documenti'
       DataField = 'NUMERAZIONE'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 5
       ValueChecked = 'True'
       ValueUnchecked = 'False'
     end
     object dbchkScontrino: TDBCheckBox
       Left = 165
       Top = 152
       Width = 337
       Height = 17
       Caption =
         'Emette lo Scontrino (se c'#39#232' collegamento al 
registratore di cass' +
         'a)'
       DataField = 'SCONTRINO'
       DataSource = dmADocumenti.dsADocumenti
       Enabled = False
       TabOrder = 6
       ValueChecked = 'True'
       ValueUnchecked = 'False'
     end
     object dbchkPartite: TDBCheckBox
       Left = 165
       Top = 176
       Width = 113
       Height = 17
       Caption = 'Gestisce le Partite'
       DataField = 'PARTITE'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 7
       ValueChecked = 'True'
       ValueUnchecked = 'False'
     end
     object MxDBEdit2: TMxDBEdit
       Left = 165
       Top = 252
       Width = 68
       Height = 21
       DataField = 'TRASPORTO'
       DataSource = dmADocumenti.dsADocumenti
       TabOrder = 10
     end
     object JvDBLookupCombo2: TJvDBLookupCombo
       Left = 165
       Top = 274
       Width = 334
       Height = 21
       Color = clInfoBk
       DataField = 'lkIvaTrasporto'
       DataSource = dmADocumenti.dsADocumenti
       LookupDisplay = 'ID;DESCRIZIONE'
       TabOrder = 11
     end
     object dbceModelloStampaReport: TJvDBComboEdit
       Left = 165
       Top = 301
       Width = 252
       Height = 21
       Color = clInfoBk
       DataField = 'REPORT'
       DataSource = dmADocumenti.dsADocumenti
       ImageKind = ikEllipsis
       TabOrder = 12
       OnButtonClick = dbceModelloStampaReportButtonClick
     end
     object mxZDBGrid1: TmxZDBGrid
       Left = 165
       Top = 328
       Width = 337
       Height = 76
       DataSource = dmADocumenti.dsADocumentiDocs
       TabOrder = 13
       TitleFont.Charset = DEFAULT_CHARSET
       TitleFont.Color = clWindowText
       TitleFont.Height = -11
       TitleFont.Name = 'Tahoma'
       TitleFont.Style = []
       AlternateRowColor = clMoneyGreen
       SelectColumnsDialogStrings.Caption = 'Select columns'
       SelectColumnsDialogStrings.OK = '&OK'
       SelectColumnsDialogStrings.NoSelectionWarning = 'At least one 
column must be visible!'
       EditControls = <>
       RowsHeight = 17
       TitleRowHeight = 17
       Columns = <
         item
           Expanded = False
           FieldName = 'lkDocumento'
           Width = 304
           Visible = True
         end>
     end
   end
   inherited mmMenu: TMainMenu
     Left = 599
   end
   inherited frReport1: TfrReport
     Left = 627
     ReportForm = {18000000}
   end
   inherited pmPopupMenu1: TPopupMenu
     Left = 563
   end
   inherited actlst1: TActionList
     Left = 533
   end
end
 
Grazie.
 
Ciao.

qui c'è il detail della dialog che mi appare (quella per postare il 
problema a embarcadero):
[502ADAF6]{vcl140.bpl  } ImgList.TCustomImageList.Initialize (Line 311, 
"ImgList.pas" + 3) + $1C
[5029FF4D]{vcl140.bpl  } Controls.TDragImageList.Initialize (Line 13369, 
"Controls.pas" + 1) + $2
[502ADA10]{vcl140.bpl  } ImgList.TCustomImageList.CreateSize (Line 287, 
"ImgList.pas" + 7) + $4
[0FE5528B]{Medisoft2010.bpl} Umxzjvdbgrid.TmxZJvDBGrid + $AB
[0FE5EB5F]{Medisoft2010.bpl} Umxzjvdbultimgrid.TmxZJvDBUltimGrid + $2F
[2188FB4F]{delphicoreide140.bpl} 
CompPalMgr.TComponentPalettePageItemDelegate.CreateComponent (Line 2551, 
"CompPalMgr.pas" + 2) + $7
[20DC9CCA]{designide140.bpl} 
ComponentDesigner.TComponentRoot.DoCreateComponent (Line 2318, 
"ComponentDesigner.pas" + 10) + $17
[20DC96FE]{designide140.bpl} 
ComponentDesigner.TComponentRoot.CreateComponent (Line 2179, 
"ComponentDesigner.pas" + 1) + $1C
[2188C6F4]{delphicoreide140.bpl} CompPalMgr.TPalettePageItem.Execute 
(Line 1257, "CompPalMgr.pas" + 4) + $1E
[209235A2]{coreide140.bpl} ToolFrm.TToolForm.DoItemExecute (Line 2658, 
"ToolFrm.pas" + 3) + $1
[2091FBF4]{coreide140.bpl} ToolFrm.TToolForm.PaletteButtonClicked (Line 
1230, "ToolFrm.pas" + 15) + $8
[5031B19D]{vcl140.bpl  } CategoryButtons.TCategoryButtons.DoItemClicked 
(Line 1999, "CategoryButtons.pas" + 13) + $A
[5031AF5A]{vcl140.bpl  } CategoryButtons.TCategoryButtons.MouseUp (Line 
1922, "CategoryButtons.pas" + 13) + $C
[5000A0DC]{rtl140.bpl  } System.@CallDynaInst (Line 9885, "System.pas" + 
3) + $0
[50296810]{vcl140.bpl  } Controls.TControl.DoMouseUp (Line 7306, 
"Controls.pas" + 2) + $28
[5029688C]{vcl140.bpl  } Controls.TControl.WMLButtonUp (Line 7319, 
"Controls.pas" + 9) + $6
[20D8C74E]{designide140.bpl} DeskUtil.SetFocusHook (Line 454, 
"DeskUtil.pas" + 4) + $C
[50295E70]{vcl140.bpl  } Controls.TControl.WndProc (Line 7062, 
"Controls.pas" + 91) + $6
[502BF674]{vcl140.bpl  } Forms.TCustomForm.WndProc (Line 3960, 
"Forms.pas" + 191) + $5
[50295A94]{vcl140.bpl  } Controls.TControl.Perform (Line 6840, 
"Controls.pas" + 10) + $8
[502CA3F1]{vcl140.bpl  } Forms.TApplication.DispatchAction (Line 10942, 
"Forms.pas" + 9) + $A
[502C7C06]{vcl140.bpl  } Forms.TApplication.WndProc (Line 9347, 
"Forms.pas" + 97) + $E
[214CAF33]{vclactnband140.bpl} ActnMenus.CallWindowHook (Line 743, 
"ActnMenus.pas" + 20) + $F
[50299FCB]{vcl140.bpl  } Controls.TWinControl.IsControlMouseMsg (Line 
9596, "Controls.pas" + 1) + $9
[50076408]{rtl140.bpl  } Classes.StdWndProc (Line 13015, "Classes.pas" + 
8) + $0
[5029A738]{vcl140.bpl  } Controls.TWinControl.WndProc (Line 9819, 
"Controls.pas" + 144) + $6
(0003B78D){CnWizards_D14.dll} [09BBC78D]
(0003B7F4){CnWizards_D14.dll} [09BBC7F4]
(0003B8A5){CnWizards_D14.dll} [09BBC8A5]
[5031C86B]{vcl140.bpl  } CategoryButtons.TCategoryButtons.WndProc (Line 
2822, "CategoryButtons.pas" + 24) + $4
[50299DD8]{vcl140.bpl  } Controls.TWinControl.MainWndProc (Line 9540, 
"Controls.pas" + 3) + $6
[50076408]{rtl140.bpl  } Classes.StdWndProc (Line 13015, "Classes.pas" + 
8) + $0
[2091F884]{coreide140.bpl} ToolFrm.TToolForm.PaletteHook (Line 1098, 
"ToolFrm.pas" + 14) + $22
[50076408]{rtl140.bpl  } Classes.StdWndProc (Line 13015, "Classes.pas" + 
8) + $0
[50307AFF]{vcl140.bpl  } AppEvnts.TMultiCaster.GetAppEvents (Line 653, 
"AppEvnts.pas" + 1) + $5
(0000CC0C){IDEFixPack.dll} [0B69DC0C]
[502C87BA]{vcl140.bpl  } Forms.TApplication.HandleMessage (Line 9790, 
"Forms.pas" + 1) + $4
[502C8AE5]{vcl140.bpl  } Forms.TApplication.Run (Line 9927, "Forms.pas" 
+ 26) + $3
[004369AE]{bds.exe     } bds.bds (Line 200, "" + 8) + $FFFB

Ho dato un occhio alla unit e ho trovato questi pezzi di codice:
 
procedure TCustomImageList.Initialize;
const
  MaxSize = 32768;
begin
  FClients := TList.Create;
  if (Height < 1) or (Height > MaxSize) or (Width < 1) then
    raise EInvalidOperation.Create(SInvalidImageSize);
 
....
 
 
procedure TCustomImageList.CheckImage(Image: TGraphic);
begin
  if Image <> nil then
    with Image do
      if (Height < FHeight) or (Width < FWidth) then
        raise EInvalidOperation.Create(SInvalidImageSize);
end;
 
Questo codice è perso dalla unti di xe3.
Ovviamente ( ma non per tutti) quello della versione di delphi che stai usando tu potrebbe essere diverso.
 
 
Io proverei un trace con un progetto scemo che crea la tua griglia a runtime in modo da capire qualcosa in più.
 
Ma prima di tutto il resto, sei ASSOLUTAMENTE proprio certo di non aver toccato proprio nulla? Magari hai spostato delle cartelle, cambiato qualche immagine che è caricata a runtime da file o da risorse...?
 
 
A.

Pardon..nella fretta non avevo letto che usi d2010.
Serve un caffe... :-|
 
A.


 
 
Il problema NON si presenta runtime, si presenta *solo designtime*.
 
Se lancio il programma, riesce a lavorare correttamente, apre e lavora 
regolarmente sulle form che già contengono la griglia derivata!
 
Il problema è che il progetto NON è ultimato e comunque dovrei manutenerlo!
 
In effetti prima che scoprissi il problema ho modificato in parte un 
*altro* componente (ho aggiunto una property published: TDataSource) 
facente parte dello stesso package che contiene la griglia e ho dato una 
build per far apparire la nuova property e mi era uscito un errore 
VCL140.bpl se non erro. Sono uscito da Delphi e sembrava non riuscire a 
salvare le modifiche al file contenente il componente (un DBEdit 
modificato) modifiche che ho trovato al rientro.
 
Ho provato a escludere la griglia dal progetto, disintallandola, 
reincludendola e reinstallandola ma, nulla.
 
Il problema continua a ripresentarsi *solo* design time.
 
Grazie.
 
Ciao.

 modificato) modifiche che ho trovato al rientro.
 
Ah...Allora se puoi:
 
1) disinstalla il package da delphi
2) ***chiudi delphi***
3) cancella il bpl e l'eventuale dcp del package
4) apri il tuo package
5) rimuovi dal package il componente che hai modificato; 
6) se prp ti serve anche sto componente dbedit, crea un altro package specifico
6) prima di fare una rebuild del package, dal dpk togli tutte le reference dei packages richiesti
7) lo salvi
8) fai una rebuild
9) lo rerinstalli
 
Se durante queste fasi qualcosa zompa e va ai festini del nano di arcore, cerca di trovarne le cause, risolvi e poi RIFATTI TUTTO STO GIRO DALL'INIZIO.
 
Lo so che sembra una cosa idiota, ma cosi' vai giu come un rullo compressore e dopo hai una situazione pulita.
 
A.

Ho disinstallato ogni mio componente, disinstallando tutto il mio package.
 
Ho creato un nuovo package contenente la sola griglia, compilo, installo 
e ...
 
Stesso problema! :(
 
Ciao.

> Stesso problema! :(
 
Non ho capito se hai fatto TUTTA la sequenza che ti ho indicato prima.
Comuqnue, aggiungo un pezzettino che mea culpa avevo dimenticato.
Tra i punti 3 e 4 CANCELLA IL FILE .RES DEL DPK.
 
 
A.


Ho fatto, credo, di meglio:
a) Disinstallato tutti i miei componenti;
b) Cancellato tutti i files inerenti il package (Nomepackage.*) compreso 
il package stesso.
c) Sono uscito da Delphi;
d) ho spento il PC
e) ho riacceso il PC
f) ho riavviato Delphi
g) Ho creato un nuovo package con solo la griglia;
 
h) *Stesso problema*
 
Ciao.
 
 

ok..ma il res?
 
A.


 
Anche quello.
 
Però mi è venuta l'idea di verificare l'integrità del file di risorse da 
cui attinge la griglia per disegnare i simboli dei vari tipi di campo 
non visualizzabili e, bam ho risolto :)
 
Si era danneggiato questo file, una volta sostituito con quello 
originale dal pacchetto delle Jvcl tutto si è risolto.
 
Grazie.
 
Ciao.