* * * *
17 Visitatori, 1 Utente
 

Autore Topic: LAzRichedit non si installa  (Letto 425 volte)

Narciso

  • Scrittore
  • Full Member
  • *****
  • Post: 108
  • Karma: +0/-0
LAzRichedit non si installa
« il: Agosto 09, 2018, 09:41:19 pm »
quando compilo il pacchetto mi da' errore;

Compile package LazRichEdit 0.1.5: Codice di uscita 1, Errori: 7, avvertimenti: 11, suggerimenti: 43
win32wsrichbox.pas(210,15) Error: Illegal type conversion: "LongWord" to "TStream"
win32wsrichbox.pas(224,10) Error: Illegal type conversion: "LongWord" to "TStream"
win32wsrichbox.pas(240,16) Error: Illegal type conversion: "LongInt" to "TStream"
win32wsrichbox.pas(264,16) Error: Illegal type conversion: "LongInt" to "TStream"
win32wsrichbox.pas(305,10) Error: Identifier not found "UnicodeEnabledOS"
 ed una serie di warning infinita....

il primo e' qua:

 try
    Stream := TStream(dwCookie^);<---------
    pcb := Stream.Write(pbBuff^, cb);
    Result := 0;
  except
    Result := 1;
  end;   

         
ne sapete qlkosa?


bonmario

  • Hero Member
  • *****
  • Post: 613
  • Karma: +1/-1
Re:LAzRichedit non si installa
« Risposta #1 il: Agosto 10, 2018, 09:28:05 am »
Da dove lo hai scaricato?
Sei sicuro che sia ancora in manutenzione?

Ciao, Mario

Narciso

  • Scrittore
  • Full Member
  • *****
  • Post: 108
  • Karma: +0/-0
Re:LAzRichedit non si installa
« Risposta #2 il: Agosto 10, 2018, 09:45:36 am »
wiki.freepascal.org
Download
The latest version is available here: http://sourceforge.net/projects/lazarusfiles/files/lzRichEdit.zip/download


non sono sicuro che sia ancora in manutenzione, mi fidavo del sito.


C'e' qualche alternativa?


A dir il vero mi piacerebbe pure un alternativa a tstringgrid, in modo tale da formattare le celle individualmente, ma mi sa che nun ci sta.


Stavo pensando di farmelo io un bel componente, ci sto studiando ma sto in empasse.


bisognerebbe aggiungere alla cella delle Propreta', tipo : colore, allineamento, colore sfondo.

Per Delphi ci sono,ma per lazarus, non ne ho trovati.

bonmario

  • Hero Member
  • *****
  • Post: 613
  • Karma: +1/-1
Re:LAzRichedit non si installa
« Risposta #3 il: Agosto 10, 2018, 09:55:08 am »
Sul forum ufficiale in inglese, verso la fine del thread, anche altri hanno avuto difficoltà in passato, e gli è stato consigliato il pacchetto RichMemo.
Qui il thread:
https://forum.lazarus.freepascal.org/index.php?topic=15327.0


Per quanto riguarda la StringGrid, non serve un componente aggiuntivo, lo puoi già fare tu sfruttando l'evento "onPrepareCanvas". Ti Copio&Incollo un pezzo di codice che ho in un mio programma:

Codice: [Seleziona]
procedure TForm1.TabellaEsitiPrepareCanvas(sender: TObject; aCol,
  aRow: Integer; aState: TGridDrawState);
var WrkTextStyle:TTextStyle;
    ColoreSfondo, ColoreTesto:TColor;
    WrkDataOggiStr:String;
begin
  //Allineamento delle colonne
  with Sender as TStringGrid do begin
    if (aRow >= FixedRows) then begin
      WrkTextStyle:=Canvas.TextStyle;
      WrkTextStyle.Alignment:=CarthColTabellaEsiti.ArrayCarthCol[aCol].Allineamento;
      Canvas.TextStyle:=WrkTextStyle;
    end else begin
      //Faccio in modo che la testata sia centrata nella colonna
      WrkTextStyle:=Canvas.TextStyle;
      WrkTextStyle.Alignment:=taCenter;
      Canvas.TextStyle:=WrkTextStyle;
    end;
  end;

  //Coloro le righe
  with Sender as TStringGrid do begin
    //Imposto i colori di default
    ColoreSfondo:=clWindow;
    ColoreTesto:=clWindowText;

    //Determino la data di oggi
    WrkDataOggiStr:=MyDateToStr(Trunc(Now()));

    if (aCol >= FixedCols) and (aRow >= FixedRows) then begin
      //Se il documento non ha come "Data di lock" la data di oggi, probabilmente
      //è ststo chiuso male dall'ultima persona che lo ha aperto, quindi lo segnalo
      //colorando lo sfondo in maniera differente
      if (Pos(WrkDataOggiStr, Cells[ColInData, aRow]) = 0) then begin
        ColoreSfondo:=clYellow;
      end;
    end else begin
      //Disegno delle "Celle fisse (testate)"
      ColoreSfondo:=clBtnFace;
      ColoreTesto:=clWindowText;
    end;


    //Ora che ho determinato qual'è il colore da dare allo sfondo ed al testo, li imposto
    if CambiaColoriCella((Sender as TStringGrid), aRow, ColoreSfondo, ColoreTesto, True) then begin
      Canvas.Brush.Color:=ColoreSfondo;
      Canvas.Font.Color:=ColoreTesto;
    end;
  end;
end;

Ciao, Mario

Narciso

  • Scrittore
  • Full Member
  • *****
  • Post: 108
  • Karma: +0/-0
Re:LAzRichedit non si installa
« Risposta #4 il: Agosto 10, 2018, 03:09:51 pm »
bhe, giacche' ci sei perché non mi spieghi come hai impostato la procedura Cambiacoloricella?

poi come hai impostato l'array:

CarthColTabellaEsiti.ArrayCarthCol[aCol].Allineamento;

e poi come fai a colorare una cella?

Per esempio se metto un tbutton:
procedure TForm1.Button1Click(Sender: TObject);
begin
  CambiaColoriCella(stringgrid1,3,4,clred,clyellow,true);
end;

la chiami cosi'?



« Ultima modifica: Agosto 10, 2018, 03:13:28 pm da Narciso »

bonmario

  • Hero Member
  • *****
  • Post: 613
  • Karma: +1/-1
Re:LAzRichedit non si installa
« Risposta #5 il: Agosto 10, 2018, 05:50:14 pm »
Perché sarebbe molto lunga ....
Per farla semplice, CambiaColoriCella è una funzione che in basa ai parametri ricevuti dice a chi la chiama se la cella è da colorare o meno. E' sviluppata in base alle mie esigenze, che sicuramente non serviranno a nessun altro !!!

L'array "CarthColTabellaEsiti.ArrayCarthCol[aCol].Allineamento;" è un semplice array che ha un elemento per ogni colonna della tabella, in cui mi salvo un campo di tipo "TAlignment = (taLeftJustify, taRightJustify, taCenter);", che naturalmente serve per allineare il testo.

Quello che uso per colorare una cella, è nel codice che ho postato prima !!!
Devi gestire l'evento "onPrepareCanvas" della tua stringgrid.
Parti con cose semplici, tipo colorare di giallo solo le celle che che suno su una riga pari, o su una colonna dispari, o roba del genere.
Quando hai capito il funzionamento, cominci a fare cose più complicate.

Ciao, Mario

Narciso

  • Scrittore
  • Full Member
  • *****
  • Post: 108
  • Karma: +0/-0
Re:LAzRichedit non si installa
« Risposta #6 il: Agosto 11, 2018, 06:19:07 am »
ok grazie. Ci studio un po'. IO fino ad oggi avevo fatto cosi':

procedure coloracelle(sg:tstringgrid; ACol, ARow: Integer;  Rect: TRect; mycolor:tcolor);
begin

      //paint the background
      sg.Canvas.Brush.Color := mycolor;
      sg.Canvas.FillRect(Rect);
      sg.Canvas.TextOut(Rect.Left+2,Rect.Top+2,sg.Cells[ACol, ARow]);

end;       


bonmario

  • Hero Member
  • *****
  • Post: 613
  • Karma: +1/-1
Re:LAzRichedit non si installa
« Risposta #7 il: Agosto 11, 2018, 07:45:45 am »
Ok.
Se non ne esci, dimmelo che appena ho tempo ti posto un progettino di esempio.

Ciao, Mario

 

Recenti

How To

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

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.