alexsme Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Pessoal, preciso disso urgente! Fiz um pequeno editor com um Memo e preciso mostrar na Statusbar o número dalinha em que se encontra o cursor. Assim como em qualquer editor. alguém tem alguma idéia? Não encontrei nenhuma propriedade do TMemo que faz isso.AbraçosAlex Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Olá,Veja se te ajuda Memo1.Lines.Count; Conta as linhas do MemoAbs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Já tentei esta função, mas ela só conta o total de linhas. mas não sei como usar ela e vcerificar em qual linha está o cursor piscando... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Olá,Depois você olha a propriedade CaretPos do Memo... olha no helpTenta assim: ShowMessage('Linha: '+IntToStr(Memo1.CaretPos.Y)); ShowMessage('Coluna: '+IntToStr(Memo1.CaretPos.X)); qualquer coisa posta aeAbs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexsme Postado Abril 27, 2005 Autor Denunciar Share Postado Abril 27, 2005 Pode crer, com essa função funciona sim. Mas o problema é funcionou só com o showmessage(). Eu to jogando isso lá pra statusbar.panel.itens[0].text, e aí fura o negocio, ele não funicoan direito e não entendi porque!Mas valeu mano..se tiver mais alguma idéia posta aí.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Olá,Funciona sim, é q você tem q colocar no Evento onClick do Memo... procedure TForm1.Memo1Click(Sender: TObject); begin StatusBar1.Panels[0].Text:='Linha: '+IntToStr(Memo1.CaretPos.Y) + ' Coluna: '+IntToStr(Memo1.CaretPos.X); end; Abs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexsme Postado Abril 27, 2005 Autor Denunciar Share Postado Abril 27, 2005 Beleza cara, funciona mesmo. Só que só funciona no onclick, ou seja, com o mouse.Se for com as flechinhas do teclado não vai. Já coloquuei no onChenge do memo, mas também não funciona direito...AbraçosAlex Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Abril 27, 2005 Denunciar Share Postado Abril 27, 2005 Testa ai...No OnKeyDown (Para qualquer tecla...) procedure TForm1.MemoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin StatusBar1.Panels[0].Text:='Linha: '+IntToStr(Memo.CaretPos.Y) + ' Coluna: '+IntToStr(Memo.CaretPos.X); end; Abs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexsme Postado Abril 28, 2005 Autor Denunciar Share Postado Abril 28, 2005 Também não funcionou direito, mas deixa quieto, com o Onclick já quebra um galho...Outra coisa é:eu tenho uma função que tá me retornando a posição de um caractere dentro do memo.Tipo assim: eu digitei um texto e esse texto tem um totoal de 521 caracteres, aí essa função me retorna o numero 473 que seria o respectivo caractere...como eu faço pra descobrir em qual linha está este caractere?? Deu pra entender? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Abril 28, 2005 Denunciar Share Postado Abril 28, 2005 Olá,Ao invés de você usar no Evento OnKeyDown... Coloque no OnKeyUP...Creio q assim resolverá o problema... Explica melhor essa sua segunda dúvida ai....Abs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexsme Postado Abril 28, 2005 Autor Denunciar Share Postado Abril 28, 2005 Beleza! A parte da linha na statubar foi resolvida, era só colocar no evento onkeyup como você disse....mas outra questão que eu coloquei por ultimo(de pegar o numero da linhaa a partir da posição em caracteres dentro do memo) é que tá complicado....de qualquer forma valeu Kikonanet, to te devendo uma...precisando é só falar...AbraçosAlex Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Abril 28, 2005 Denunciar Share Postado Abril 28, 2005 pegar o numero da linhaa a partir da posição em caracteres dentro do memoFaça um for somando o Length das linhas até ser >= à posição em caracterres. A linha será o índice desse for Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alexsme Postado Abril 29, 2005 Autor Denunciar Share Postado Abril 29, 2005 Valeu brother!Essa deve funcionar, mas eu resolvi de outro jeito.eu fiz um FOR percorrendo toda a minha string de texto caractere por caracter e quando encontrar um enter(#13) conta 1 linha, até chegar a posição determinada.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alexsme
Pessoal, preciso disso urgente!
Fiz um pequeno editor com um Memo e preciso mostrar na Statusbar o número dalinha em que se encontra o cursor. Assim como em qualquer editor.
alguém tem alguma idéia? Não encontrei nenhuma propriedade do TMemo que faz isso.
Abraços
Alex
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.