Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

TDD o Test-Driven Development
immagine docker per lavorare con lazarus e free pascal
Indice
Installare lazarus su mac osx sierra
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non)
Advanced Record Syntax: un esempio pratico
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
DB concetti fondamentali e DBGrid
Advanced Record Syntax
DB concetti fondamentali e ZeosLib
DB concetti fondamentali e connessioni standard
guida all'installazione di fpc trunk da subversion in linux gentoo
Creare un server multithread
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Free Pascal e Lazarus sul Raspberry Pi
fpcup: installazioni parallele di lazarus e fpc
Ubuntu - aggiornare free pascal e lazarus
Come interfacciare periferica twain
Lazarus 1.0
Aspetto retrò (Cmd Line)
Disporre le finestre in un blocco unico (come Delphi)
Zeos ... dietro le quinte (prima parte)
Lavorare con file in formato JSON con Lazarus
Overload di operatori
Dataset virtuale
Linux + Zeos + Firebird
Pascal Script
La gestione degli errori in Lazarus
Indy 10 - Invio email con allegati
Brute force
Le permutazioni
Da DataSource a Excel
StatusBar - aggirare l'errore variabile duplicata
Visualizzare un file Html esterno
Evidenziare voci TreeView
Toolbar
Direttiva $macro
Indy gestiore server FTP lato Client
TImage su Form e Panel
PopUpMenu sotto Pulsante (TSpeedButton)
Conversione numerica
Proprietà
Funzioni a parametri variabili
Overload di funzioni
Liste e puntatori
Conferma di chiusura di un applicazione
Il file: questo sconosciuto
UIB: Unified Interbase
System Tray con Lazarus
Intercettare tasti premuti
LazReport, PDF ed immagini
Lazarus e la crittografia
Ampliare Lazarus
Generare controlli RUN-TIME
TTreeview e Menu
TTreeView
Utilizzare Unità esterne
Lavorare con le directory
Realizzare programmi multilingua
Codice di attivazione
File INI
Esempio lista in pascal
Stabilire il sistema operativo
Recuperare codice HTML da pagina web
Trascinare un file nel programma
Mandare mail con Lazarus
Welcome to Italian community of Lazarus and Free Pascal. Please login or sign up.

Recenti

How To

Utenti
Stats
  • Messaggi totali: 20.582
  • Totale discussioni: 2.471
  • Online today: 310
  • Online ever: 5.949 (Luglio 30, 2026, 09:49:59 PM)
Utenti online
  • Users: 0
  • Guests: 11
  • Total: 11
11 Visitatori, 0 Utenti

Spostare immagini e passare dal grafico al CRT

Aperto da Loryea, Ottobre 19, 2011, 03:43:50 PM

Discussione precedente - Discussione successiva

Loryea

Salve, volevo chiedervi come posso spostare un immagine fattasenza chiudere, riaprire la finestra grafica indicando la nuova posizione.
Volevo anche sapere come é possibile passare dalla finestra grafica alla normale (crt) senza comunque chiudere la grafica.

Grazie.

xinyiman

Detta così non ci ho capito molto a dir la verità!
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

Inoltre l'immagine dove si trova? In una picture box? Tu vuoi spostare la TPicture o la Form che contiene la TPicture?
Ieri è passato, domani è futuro, oggi è un dono...

Loryea

Intendevo dire un'immagine in generale, ad'esempio:
Rectangle(0,0,375,883);

E poi non é importante questo nella mia domanda, se ad esempio scrivo:


{...}
Var GD,GM:Integer;
{...}
GD:=detect;
initgraph(Gd,Gm,'C:\FPC');
{Anche se non scrivo nient'altro, come faccio ad attivare (ovvero mostrare in primo piano) la finestra CRT senza usare 'Closegraph'?
Se no, si potrebbe ridurre la finestra grafica ad icona?}


Capito ora?


Riguardo invece la prima domanda, volevo chiedere qual'é il codice che bisogna scrivere per effettuare uno spostamento di una qualsiasi immagine (come ad esempio: Rectangle(0,0,375,883);) in un'altra posizione (ad esempio Rectangle(375,883,999,321);)
Senza fare così:                                 

{...}
Rectangle(0,0,375,883);
Delay(1000);
Closegraph;
Rectangle(375,883,999,321);
{...}


Capito ora?


Grazie.

P.S.: Per qualsiasi risposta seguire l'esempio Rectangle per farmi capire un po meglio.

xinyiman


procedure TForm1.Button1Click(Sender: TObject);
Var
   GD,GM:SmallInt;
begin
  {...}
  {...}
  GD:=detect;
  GM:=detect;
  initgraph(Gd,Gm,'C:\FPC');
  {Anche se non scrivo nient'altro, come faccio ad attivare (ovvero mostrare in primo piano) la finestra CRT senza usare 'Closegraph'?
  Se no, si potrebbe ridurre la finestra grafica ad icona?}
  Rectangle(0,0,375,883);
  delay(10000);
[b]  Closegraph;
  initgraph(Gd,Gm,'C:\FPC');
[/b]  Rectangle(375,883,999,321);
end;   


Per far funzionare il tuo codice però bisogna reinizializzarlo dopo averlo chiuso. Non capisco qual'è il tuo problema, così funziona. Altri modi non ne conosco. Non so se esiste una funzione che ti pulisce il graph, perchè nel caso ci fosse non si necessita di chiuderlo e riaprirlo. Dammi un po' più di tempo per vedere se ci riesco.
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman


Var
   GD,GM:SmallInt;
begin
  {...}
  {...}
  GD:=detect;
  GM:=detect;
  initgraph(Gd,Gm,'C:\FPC');
  {Anche se non scrivo nient'altro, come faccio ad attivare (ovvero mostrare in primo piano) la finestra CRT senza usare 'Closegraph'?
  Se no, si potrebbe ridurre la finestra grafica ad icona?}
  Rectangle(0,0,375,883);
  delay(10000);
[b]  //Closegraph;[/b]
  initgraph(Gd,Gm,'C:\FPC');
  Rectangle(375,883,999,321);


Se ometti la parte in grassetto, che io ho commentato ti togli anche quel fastidioso chiudi/apri della finestra su qui stai disegnando.
Ieri è passato, domani è futuro, oggi è un dono...

Loryea

#6
Grazie tanto, ma credo di aver capito male.
Se io scrivo ad esempio:

{...}
Initgraph(Gd,Gm,'C:\FPC');
Rectangle(0,0,10,10);
dealy(10000);
Gd:=detect;
Initgraph(Gd,Gm,'C:\FPC');
Rectangle(10,10,20,20);
{...}

Dovrebbe disegnarmi un rettangolo a coordinate 0,0,10,10 e poi, dopo 10 sec. spostarlo in 10,10,20,20?

Credo che ci siamo capiti male.

Il mio scopo era quello di SPOSTARE una figura disegnata in graph di posizione, senza chiudere e riaprire la grafica.

Ma facendo una ficerca, traducendo qualche pagina del freepascal originale, ho capito che "Deletegraph" é una specie di clrscr per grafica e così si risolve uno dei miei due problemi.

(rectangle(0,0,10,10); delay(1000); deletegraph; rectangle(10,10,20,20);)

xinyiman

Citazione di: Loryea il Ottobre 20, 2011, 09:46:08 PM

Ma facendo una ficerca, traducendo qualche pagina del freepascal originale, ho capito che "Deletegraph" é una specie di clrscr per grafica e così si risolve uno dei miei due problemi.

(rectangle(0,0,10,10); delay(1000); deletegraph; rectangle(10,10,20,20);)

Buono a sapersi. Per la seconda problematica, non saprei proprio. Io la grafica l'ho sempre bazzicata poco. Bisogna aspettare il parere di qualcuno più afferrato, mi sa!

Sorry
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

Ciao, per la seconda tua domanda. Ovvero tornare alla schermata originale senza chiudere quella che hai lanciato penso che può esserti d'aiuto questo:

http://wiki.freepascal.org/Asynchronous_Calls

Prova, io non ne ho avuto il tempo. Però secondo logica dovrebbe essere quello che cercavi. Oppure spulciati la programmazione multithreading dovrebbe fare al caso tuo. Scusa ma in questo momento non riesco a fare una prova.
Ieri è passato, domani è futuro, oggi è un dono...

Loryea

http://translate.google.it/translate?hl=it&sl=en&u=http://www.freepascal.org/docs-html/rtl/index.html&ei=ZJ2hTt3jIo2Mswbv76yPAw&sa=X&oi=translate&ct=result&resnum=1&ved=0CB8Q7gEwAA&prev=/search%3Fq%3DUnits%2B%2BBaseUnix%2B%2B%2B%2BBasic%2Bunix%2Bfunctionality%2BClasses%2B%2B%2B%2BBasic%2Bclasses%2Bfor%2BRTL%2Bclocale%2B%2B%2B%2BInitialize%2Binternationalization%2Bsettings%2Bfrom%2Bthe%2BC%2Blibrary%2Bcmem%2B%2B%2B%2BMemory%2Bmanager%2Breplacement%2Busing%2Bthe%2BC%2Bmemory%2Bmanager%2BCrt%2B%2B%2B%2BCRT%2B-%2BTurbo%2BPascal%2Bscreen%2Band%2Bkeyboard%2Bhandling%2Bunit%2Bcthreads%2B%2B%2B%2BInitialize%2Bthe%2Bthread%2Bmanager%2Bwith%2Ba%2BPOSIX%2Bthread%2Bmanager%2Bctypes%2B%2B%2B%2BCommon%2BC%2Btype%2Bdefinitions%2Bcwstring%2B%2B%2B%2BImplement%2Bthe%2Bwidestring%2Bmanager%2Bwith%2Ba%2BC%2Blibrary%2Bbased%2Bimplementation%2Bdateutils%2B%2B%2B%2BDate/Time%2Bmanipulation%2Broutines.%2BDos%2B%2B%2B%2BDOS%2B-%2BTurbo%2BPascal%2BMS-DOS%2Binterface%2Bdxeload%2B%2B%2B%2BLoad%2BDXE%2Bfile%2Bin%2Bto%2Bmemory%2Bdynlibs%2B%2B%2B%2BCross-platform%2Bsupport%2Bfor%2Bdynamically%2Bloadable%2Blibraries%2Bemu387%2B%2B%2B%2BLoad%2Bcoprocessor%2Bemulation%2Bsupport%2Bexeinfo%2B%2B%2B%2BReturn%2Bexecutable%2Binformation%2Bgetopts%2B%2B%2B%2BGNU%2Bcompatible%2Baccess%2Bto%2Bcommand-line%2Boptions.%2Bgo32%2B%2B%2B%2BGO32%2B-%2Bacces%2Bto%2Bthe%2B32-bit%2BDOS%2Bextender%26hl%3Dit%26client%3Dsafari%26rls%3Den%26prmd%3Dimvns

Ecco il madornale link della traduzione di una pagina che credo risolva il primo problema.

Non vorreei essere troppo indiscreto, ma hai citato la TPicture, cos'é? Come funziona?

xinyiman

...è un oggetto per vedere le immagini in una form...niente che riguardi il tuo discorso. Solo che quando l'ho nominata non avevo capito dove volevi arrivare tu.
Ieri è passato, domani è futuro, oggi è un dono...

Loryea

Ho capito.

Pensavo fosse un programma per tradurre immagini in un'elenco di coordinate, sarebbe davvero bello un programma così!

xinyiman

Citazione di: Loryea il Ottobre 22, 2011, 01:01:06 PM
Ho capito.

Pensavo fosse un programma per tradurre immagini in un'elenco di coordinate, sarebbe davvero bello un programma così!

Spiegati meglio...magari esiste già. O si potrebbe pensare di farlo. Ma ho bisogno di più dettagli perchè io di grafica non ho mai fatto nulla.
Ieri è passato, domani è futuro, oggi è un dono...

Loryea

Non so se esista un programma del genere ma sarebbe davvero bello se esistesse, il programma che intendo, é un editor di immagini (come ad esempio picasa, Paint, visualizzatore live messanger, ecc.) dove si può tradurre l'immaggine (es. cartina geografica del mondo, muta);
in un elenco di pixel - cosa da sapere che tramite una procedura o funzione che non mi ricordo ma che sta scrita sicuramente sul sito di freepascal (-->documentation --> run time library--> Graph --> functions and procedure)  con cui si può colorare un pixel di un determinato colore, così da fare: Funzione( e copiarlo tantissime volte, copiare l'elenco di pixel, incollarlo nel codice e chiudere tutte le function aperte, non so se sono stato abbastanza chiaro-
Il risultato é che posso copiare un'immagine nel mio archivio e utilizzarla nei miei programmi, come se fosse html, indicando nel codice tutti i pixel che deve colorare e magari anche di che colore.

xinyiman

Scusa, ma sarò tonto io perchè non capisco proprio  :'(
Ieri è passato, domani è futuro, oggi è un dono...

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.