Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#4111
Arriba te indiqué un software capaz de desempacar un installer NSIS, pero como ya dije, para hacer lo que quieres una vez extraido los archivos y reemplazado los .ini, tendrías que descargar NSIS para desarrollar tu mismo el script de instalación, no creo que haya otra manera más sencilla.

Se que es una jodienda, pero esa es la manera. Aquí tienes por donde empezar:
http://nsis.sourceforge.net/Simple_tutorials

Saludos!
#4112
Cita de: Meta en 23 Diciembre 2015, 09:58 AMNo puedo desplazar nada porque no se muestra la barra del lateral o scroll.

Eso lo podrías resolver tu mismo...


Repasa los otros miembros de la class RichTextBox.

Saludos
#4113
Cita de: Meta en 23 Diciembre 2015, 06:30 AMDesde que sustituí a richTextBox, se acabaron los problemas, lo curioso que me dicen que use el santo ListBox, ese no me gusta mucho porque eliges línea a línea.

Hombre, el (Rich)TextBox (o EditControl) sirve para representar texto editable o no, y el ListBox para representar elementos de texto estáticos seleccionables para el usuario, como ves no tienen mucho que ver...

El ejemplo no puedo probarlo ya que no manejo esas cosas de electrónica, pero te curraste muchísimo la publicación, es de 10,
eso si, desde el 2008 y que todavía se te resistan estas cositas de los timers... eso baja la nota :P.

Saludos!
#4114
.NET (C#, VB.NET, ASP) / Re: Temporizador C#
23 Diciembre 2015, 06:42 AM
Cita de: Meta en 23 Diciembre 2015, 06:26 AMParece más complicado de lo que creía.

Es algo facil, mira un ejemplo:

Vb.Net:
Código (vbnet) [Seleccionar]
Public NotInheritable Class Form1 : Inherits Form

   Private stopwatchs As Stopwatch() = Enumerable.Repeat(New Stopwatch, 15).ToArray
   Friend Timer1 As New Windows.Forms.Timer With {.Interval = 1000, .Enabled = False}

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       AddHandler Me.Timer1.Tick, AddressOf Timer1_Tick
   End Sub

   Private Sub Button1_Click() Handles Button1.Click

       ' Iniciar stopwatchs...
       For Each stw As Stopwatch In Me.stopwatchs
           stw.Start()
       Next stw

       Me.Timer1.Enabled = True
       Me.Timer1.Start()

   End Sub

   Private Sub Button2_Click() Handles Button2.Click

       ' Detener stopwatchs...
       For Each stw As Stopwatch In Me.stopwatchs
           stw.Stop()
       Next stw

       Me.Timer1.Stop()
       Me.Timer1.Enabled = False

   End Sub

   Private Sub Timer1_Tick(sender As Object, e As EventArgs)

       For Each stw As Stopwatch In Me.stopwatchs
           Console.WriteLine(stw.Elapsed.ToString)
       Next stw

   End Sub

End Class


C#:
Código (csharp) [Seleccionar]

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public sealed class Form1 : Form
{

private Stopwatch[] stopwatchs = Enumerable.Repeat(new Stopwatch(), 15).ToArray;
internal Windows.Forms.Timer Timer1 = new Windows.Forms.Timer {
Interval = 1000,
Enabled = false

};
private void Form1_Load(object sender, EventArgs e)
{
this.Timer1.Tick += Timer1_Tick;
}


private void Button1_Click()
{
// Iniciar stopwatchs...
foreach (Stopwatch stw in this.stopwatchs) {
stw.Start();
}

this.Timer1.Enabled = true;
this.Timer1.Start();

}


private void Button2_Click()
{
// Detener stopwatchs...
foreach (Stopwatch stw in this.stopwatchs) {
stw.Stop();
}

this.Timer1.Stop();
this.Timer1.Enabled = false;

}


private void Timer1_Tick(object sender, EventArgs e)
{
foreach (Stopwatch stw in this.stopwatchs) {
Console.WriteLine(stw.Elapsed.ToString);
}

}
public Form1()
{
Load += Form1_Load;
}

}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================
#4115
Cita de: Meta en 23 Diciembre 2015, 05:31 AMEn cuanto al usar TextBox,lo hacía antiguamente por el 2008 y prsenté este vídeo. Como verás, no había forma de quitar caracteres raros del principio y fin que muestra este vídeo como prueba.

No se nada de electrónica, pero creo que lo que el video prueba es que estuviste tratando incorrectamente los datos recibidos.

Primero debes tratar los bytes al formar el string eligiendo la codificación correcta (eliminar todas las terminaciones nulas enviadas por el dispositivo), y luego mostrarlo en el TextBox o control deseado.

Si volvieses a hacer el experimento, simplemente mide la longitud del String construido ( String.Length() ) y verás que se cuentan más caracteres de los que realmente crees que tiene; el TextBox simplemente representó esos caracteres nulos que no eliminaste y que no se ven a simple vista.

Quizás esto te sirva:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.discardnull%28v=vs.110%29.aspx

Saludos.
#4116
Primero las soluciones:

1. Tanto en WinForms cómo WPF puedes utilizar el método AppendText:
Código (vbnet) [Seleccionar]
rtb.AppendText("Hello World" & Environment.NewLine)

2. En WPF, para asignar el texto de un control RichTextBox debes crear un FlowDoc:
Código (vbnet) [Seleccionar]
FlowDocument doc = new FlowDocument();
doc.Blocks.Add(new Paragraph(new Run("Hello World" + Environment.NewLine)));

rtb.Document = doc;


3. Para desplazarte hasta el final del documento, puedes utilizar el método ScrollToEnd:
Código (vbnet) [Seleccionar]
rtb.ScrollToEnd();




Segundo, las recomendaciones, aunque intuyo que no me vas a hacer caso...

1. Para lo que quieres hacer, es un error utilizar un RichTextBox ya sea en WinForms o WPF, ya que como el nombre del control indica por si mismo su finalidad es mostrar texto con formato rich, pero si no lo utilizas con este fin entonces estarás sobrecargando la aplicación sin motivo coherente.

En su lugar debes utilizar un control TextBox, el cual además en WPF si que encontrarás la propiedad Text para mayor comodidad. (y también el método ScrollToEnd)
Nota: Asegúrate de modificar la propiedad TextBox.MaxLength para tus necesidades, ya sea en tecnología WinForms o WPF.

2. Los nombres de los controles (o mejor dicho, de los miembros marcados con visibilidad internal/Friend) los escribes en Camel-Case, pero se deben escribir en Pascal-Case; esto sería así:
NombreDeControl
o
RichTextBox1


Tal vez te parecerá una tontería, pero siguiendo correctamente las directrices de nomenclatura te acostumbrarías mucho mejor al lenguaje en cuestión, y aprovecharias el potencial para ser mejor programador, ya que reforzarías este aspecto que un programador debe tener presente.

Te dejo un link interesante sobre los beneficios generales de esto:
https://en.wikipedia.org/wiki/Naming_convention_%28programming%29

Saludos.
#4117
.NET (C#, VB.NET, ASP) / Re: Temporizador C#
23 Diciembre 2015, 00:46 AM
Un Timer no es un "cronómetro" con el que medir intervalos de tiempo, y, aunque si que se puede utilizar con dicha finalidad, resultaría muy ineficiente en la medida.

Solución:
Utiliza la class StopWatch para medir, y el Timer para notificar del transcurso actual del StopWatch.

Saludos
#4118
Cita de: bybaal en 22 Diciembre 2015, 22:14 PMLo siento mucho, pero la imagen sale completamente sin transparencia, no importa el porciento que se le ponga

Hasta donde lo probé funcionó correctamente. ¿Puedes mostrar la imagen en cuestión o especificar los detalles técnicos del formato de imagen que tiene?.

Saludos!
#4119
Aquí tienes un ejemplo:

Código (vbnet) [Seleccionar]
Imports System.Drawing.Imaging

Public NotInheritable Class Form1 : Inherits Form

   Private srcImg As Image ' Source image.
   Private tmpImg As Image ' Transparent image.

   Public Sub New()
       MyClass.InitializeComponent()
       Me.srcImg = Bitmap.FromFile("C:\image.bmp")
   End Sub

   Private Sub Button1_Click() Handles Button1.Click

       If (Me.tmpImg IsNot Nothing) Then
           Me.tmpImg.Dispose()
       End If

       Me.tmpImg = Me.SetOpacity(Me.srcImg, 0.25) ' 25%
       Me.PictureBox1.BackgroundImage = Me.tmpImg

   End Sub

    Public Function SetOpacity(ByVal img As Image, ByVal opacity As Single) As Image

        If (opacity < 0.0F) OrElse (opacity > 1.0F) Then
            Throw New ArgumentOutOfRangeException(paramName:="opacity")

        Else
            Dim bmp As New Bitmap(img.Width, img.Height)

            Using g As Graphics = Graphics.FromImage(bmp)

                Dim matrix As New ColorMatrix
                matrix.Matrix33 = opacity

                Using ia As New ImageAttributes

                    ia.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
                    g.DrawImage(img, New Rectangle(0, 0, bmp.Width, bmp.Height),
                                0, 0, bmp.Width, bmp.Height,
                                GraphicsUnit.Pixel, ia)

                End Using

            End Using

            Return bmp

        End If

    End Function

End Class


Saludos
#4120
Foro Libre / Re: Debate elecciones 2015
22 Diciembre 2015, 20:04 PM
A ver si vamos calmando ya el tono "todos" y evitamos seguir poniendo mensajes AGRESIVOS. Por cosas así se cierran los temas, ¿y no queremos que se cierre un tema tan interesante, verdad?.




@Programatrix:

En mi humilde opinión, apoyar a PODEMOS o CIUDADANOS no convierte a esa persona en extremista. No se de que ideologías exageradas o extremas estarás hablando solamente por que otros partidos como el PP o PSOE las llamen "EXTREMISTAS" para meter esa idea en la sociedad y quedarse con votos, estúpidas técnicas de marketing de imagen y lavado de cabeza del ciudadano, que por desgracia siempre tienen éxito con la mentalidad de la mitad de los españoles que piensan con el culo, como de costumbre, la gente vota sin argumento a la primera marioneta televisiva que les diga las cosas que quieren escuchar, el defecto de siempre por excelencia del ser humano, vaya.

Y yo no veo ideas extremistas; serían más bien cambios realistas, necesarios, oportunos y gratificantes para la sociedad, excepto para los ricachones que se quieran seguir llenando los bolsillos aprovechándose de la pseudo-democracia del gobierno bipartidista de Rajoy ...claro está.

Saludos!