Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [DELPHI]DbCtrlGrid

    Ciao!
    Non riesco a far funzionare a dovere un DBCtrlGrid che contiene un DBEdit e un DBImage.
    Uso i componenti DBExpress per l'accesso al database.
    Ho inserito:
    -un TSqlConnection
    -un TSimpleDataset
    -un TDatasource
    -un TDBCtrlGrid
    Ho collegato il DBCtrlGrid al Datasource ed ho impostato la query nel SimpleDataset.
    Ho inserito DataField e DataSource (lo stesso già indicato per il DBCtrlGrid) per ciascuno dei due controlli DBEdit e DBImage.
    Quando avvio l'applicazione mentre i vari DBEdit funzionano bene perché presentano ciascuno un record diverso come indicato nella mia query, il DBImage è sempre uguale: si tratta del primo record ripetuto in tutti i panel del DBCtrlGrid.
    La query è:
    "SELECT campo1,campo2 FROM tabella"
    In questa tabella ho :
    campo1->testuale, rappresentato dal DBEdit
    campo2->testuale (=percorso immagine), rappresentato dal DBImage.

    Credo che se ci fosse un problema nel percorso dell'immagine non se ne visualizzerebbe nessuna, neanche la prima.

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Ma il TDBImage come preleva l'immagine da visualizzare? Generalmente, il controllo sfrutta un campo BLOB del database in cui sono presenti le informazioni binarie dell'immagine stessa.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Le mie immagini non sono memorizzate all'interno del db in un campo Blob: ho memorizzato solo il percorso delle immagini.
    Questo è il codice per visualizzare le immagini:
    codice:
     
    var 
    ImageFileName: string;
    begin
    ImageFileName:= simpledataset1.FieldByName('Campo2').AsString;
    dbimage1.Picture.LoadFromFile('E:\CATASTOAUSTRIACO\Quadri\'+ ImageFileName);
    end;

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Tutto dipende da dove è inserito il codice che hai riportato...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    codice:
    procedure TformGalleria.FormCreate(Sender: TObject);
    var
      ImageFileName: string;
    begin
       SQLConnection1.Connected:=true;
       SimpleDataset1.Active:=true;
       dbctrlgrid1.DataSource:=datasource1;
       dbimage1.AutoDisplay:= true;
       ImageFileName:= simpledataset1.FieldByName('Q_jpg').AsString;
       dbimage1.Picture.LoadFromFile('E:\CATASTOAUSTRIACO\Quadri\'+ ImageFileName);
       end;

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Se nel FormCreate imposti un'immagine nel controllo, questa verrà caricata solo alla creazione del form - ovviamente - e il controllo visuale verrà replicato così com'è all'interno della griglia.

    Invece, andrebbe caricato quando viene creata la cella specifica per un singolo record all'interno del controllo TDBCtrlGrid.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    T ringrazio tantissimo! Ho inserito il percorso per caricare le immagini nell'evento DBCtrlGrid1PaintPanel ed in effetti ho ottenuto la visualizzazione di tutte le differenti immagini contenute nella tabella.
    Mi chiedevo, inoltre, se è normale che quando richiamo il form la mia DBCtrlGrid (che occupa interamente il form) si compone pannello dopo pannello e non tutta in una volta.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da vicky
    Mi chiedevo, inoltre, se è normale che quando richiamo il form la mia DBCtrlGrid (che occupa interamente il form) si compone pannello dopo pannello e non tutta in una volta.
    Suppongo sia dovuto al fatto che, man mano che i record vengono scanditi, si accede al percorso fisico e si carica l'immagine referenziata dal record corrente.

    P.S.: direi che, in questo caso, un TDBImage non serve e potrebbe essere sostituito da un normale TImage.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.