Ir ao conteúdo
  • Cadastre-se

carlos_aps

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

4
  1. dentro deste exemplo, pergunto, é possivel fazer um loop em um listbox e com isso colorir as celulas correspondente, uma vez que a stringgrid esta completa com numeros de 00 a 100. a ideia é que cinco numeros constantes do listobox, indique as celulas que devem ser coloridas. ?
  2. Ficou claro obrigado....mais uma coisa interessante. Ate ontem funcionou bem um procedimento que visava o seguinte.: Apos o usuario criar os cartoes necessarios, ele poderia carregar os numeros de sua preferência de um arquivo texto, o que era feito da seguinte forma,,,,Na criaçao do cartao será criado tb um Tmemo e um Tedit que ficam associados ao determinado cartao pela semelhança dos ultimos 2 digitos do nome.>>>>Ao clicar em um cartao, pega-se o nome do dito cujo e joga para o LABEL1....Desta forma pode-se dar um With stringaligngrid(Findcomponent(label1.caption). do para que o cartao do interesse tenha as celulas coloridas com os numeros carregados do arquivo no Memo1 (open dialog1.execute) . OS MEMOS criados em tempo de execuçao servem para quando o usuario colore ou seja preenche os cartoes clicando nas celulas dos mesmos. Desta forma poderao ser salvos individualmente cada conjunto de numeros marcados em cada cartao. Em tempo: Delphi 5.0 grade_virtual.zip
  3. Excelente companheiro. funcionou perfeitamente, embora ainda nao saiba bem o porque......mais valeu
  4. Como atribuir focus a componente criado em tempo de execuçao, conforme abaixo: As stringAligGrid representarão volantes vazios da lotomania , que serão preenchidos depois. então suponha que o usuario precise de 10 volantes,,,,ele clica 10 vezes e constroi os volantes vazios. Após criar os volantes ele vai preenche-los um a um. Ao clicar em determinado numero (celula) a referida deverá ficar verde. Não consigo colorir a celula da stringgrid (volante) clicada, O EVENTO ACONTECE ou seja a celula fica marcada mais ao invés disso acontecer na stringaliggrid clicada acontece na ultima stringAligngrid CRIADA, como se apos o ultimo volante SER criado ele ficara preso na memoria.. e nao consigo dar o setfocus ou acessar nenhum outro volante que foi criado em tempo de execuçao. ....Obrigado unit grade_virtual; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, Aligrid, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure colorir(Sender :TObject); procedure ENCHER; procedure colorir_celula(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var grade:TStringAlignGrid; ESQUERDA:Integer; ALTura:Integer; CONTADOR:Integer; numeral:Integer; col,lin:Integer; cor:tcolor; x1:string; compcomponent:TStringAlignGrid; {$R *.DFM} procedure tform1.colorir(Sender :TObject); begin //grade.ColorCell[col,lin]:=clGreen; end; procedure tform1.colorir_celula(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin grade.SetFocus; col:=acol; lin:=arow; grade.ColorCell[col,lin]:=clGreen; end; procedure TForm1.Button1Click(Sender: TObject); begin grade:=TStringAlignGrid.Create(form1); grade.top:=ALTura; grade.LEFT:=10 +esquerda; grade.RowCount:=10; grade.ColCount:=10; grade.FixedRows:=0; grade.FixedCols:=0; grade.DefaultColWidth:=20; grade.DefaultRowHeight:=20; grade.Width:=215; grade.Height:=215; grade.Parent:=Self; //grade.Name:='Grade_' + FormatFloat('00',numeral); grade.OnSelectCell:=colorir_celula; grade.OnClick:=colorir; grade.hint:='grade.name'; grade.ShowHint:=True; ENCHER; Inc(CONTADOR); Inc(numeral); if (contador > 0) and (CONTADOR <6) then begin esquerda:= esquerda + 220; end; if CONTADOR > 5 then begin contador:=1; esquerda:=10; altura:= ALTura +230; end; end; procedure TForm1.FormActivate(Sender: TObject); begin CONTADOR:=1; ESQUERDA:=10; altura:=70; end; procedure Tform1.ENCHER; var i,c,l:integer; N:STRING; begin c:=0; l:=0; for i:=1 to 100 do begin N:=FORMATFLOAT('00',I); if i=100 then begin grade.Cells[c,l]:='00'; exit; end; if i<>100 then begin GRADE.Cells[c,l]:=N; end; C:=C+1; if c=10 then begin L:=L+1; if i=100 then begin grade.Cells[10,10]:='00'; end; c:=0; end; end; end;

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...