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

    Problema effetto "gomma"

    Salve a tutti.
    Con delphi nel mio programma ho inserito una drawgrid con una immagine di sfondo(per intenderci è una griglia di una battaglia navale)
    Il problema è che quando un'altra finestra,anche del tutto indipendente dal programma,passa sopra alla griglia,questa fà un effetto gomma sull'immagine(proprio come la gomma di paint) e in pratica ne rimane il colore di default nella griglia...
    Vi prego aiutatemi perchè non sò più come fare e tra pochi giorni devo presentare la tesina

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Come hai disegnato l'immagine di sfondo? E' possibile che questa operazione non sia stata effettuata nel modo corretto. Se è il caso, posta la parte di codice interessata.

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

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

  3. #3
    la procedura per l'inserimento delle immagini è in un timer:

    begin
    o:= TBitmap.Create;
    x:= TBitmap.Create;
    o.LoadFromFile('o.bmp');
    o.Transparent:=true;
    o.TransParentColor:=o.canvas.pixels[0,0];
    x.LoadFromFile('maregriglia.bmp');
    form1.drawgrid1.Canvas.Draw(0,0,x);
    form1.drawgrid2.Canvas.Draw(0,0,x);
    x.LoadFromFile('x2.bmp');
    x.Transparent:=true;
    x.TransParentColor:=x.canvas.pixels[0,0];
    nav.LoadFromFile(obmp[1]);
    nav.Transparent:=true;
    nav.TransParentColor:=nav.canvas.pixels[0,0];
    for i:=1 to 5 do
    begin
    if orient[i]=2 then nav.LoadFromFile(obmp[i]) else nav.LoadFromFile(vbmp[i]);
    form1.drawgrid1.Canvas.Draw(navi[i].col[0]*35,navi[i].row[0]*35,nav);
    end;
    timer1.Enabled:=false;


    maregriglia.bmp è lo sfondo del mare mentre x2.bmp e o.bmp sono le immagini per il colpo a segno o il colpo a vuoto.
    Grazie che mi aiuti

  4. #4
    nessuno mi sà aiutare?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da Marco636
    la procedura per l'inserimento delle immagini è in un timer
    Il disegno di un controllo visuale non può trovare un posto ottimale all'interno di un timer: il tracciamento degli elementi da visualizzare deve avvenire quando necessario e richiesto, ed essere "congelato" quando al contrario questa operazione non è necessaria.

    Per risolvere il tuo problema, potresti fare il tentativo di creare un discendente del controllo TDrawGrid (o della griglia che utilizzi) e ridefinire gli eventi "chiave" del processo di disegno, come il metodo Paint, usando l'apposita direttiva (override).

    Serve qualche nozione di Delphi, dello sviluppo di componenti/controlli e di tematiche collegate per poter attuare la personalizzazione; nulla di esageratamente complesso, s'intende, ma non so da quale base di conoscenza dell'ambiente parti.

    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.