PDA

Ver la Versión Completa : Class


jakuna
25-08-2007, 23:21:17
Hola a todos despues de muxo tiempo visito los foros, despues de 1 año y medio q no programo y francamente me siento en la luna....en una clase me dieron un laboratorio con dos preguntas para resolver la primera me parecio sencilla pero al resolverla encontre problemas q con muxo esfuerzo y amanecidas leyendo codigos antiguos :) logre recordar. Sin embargo, la segunda pregunta me demostro q si yo soy ingrato con la programacion ella tb lo va a ser conmigo olvide como funcionan las clases inclusive como declararlas y no tenia codigo alguno q haya hexo para recordarlo solo tenias los exe y eso no me sirvio de nada, poco a poco he ido recordando como declara una clase sin embargo no puedo resolver un simple problema....

El problema es el sgt tengo q accesar la informacion de una empresa especificamente de los empleados de esta empresa, debo verificar q no se repita el codigo del empleado dos veces y debo actualizar un campo al cumplirse una condicion..... si me ayudaran a recodar se los agradeceria con esas dos cosas puedo recordar facilmente y terminar el programa hasta encontrar mas duda o cosas q no recuerde....

una duda mas tengo eso

OrdenaVector;
Listbox2.Items.Add('El Numero Mayor es: '+IntToStr(Mayor));
Listbox2.Items.Add('------------------------------------------------------------');
Listbox2.Items.Add('Numeros Menores al Promedio '+'(Promedio: '+(FloattoStr(Promedio))+')');
Listbox2.Items.Add('------------------------------------------------------------');

como puedo hacer q las lineas ocupen el ancho del listbox lo intente con un for pero lo hace saltando las lineas y como se usaba el format xq el promedio me sale x ejemplo 8.33333333333333 y quiero ponerlo como 8.3 naa mas

Gracias

xEsk
26-08-2007, 00:28:50
El format: Format('Numeros Menores al Promedio (Promedio: %.1f)', [Promedio]);

Lo de las líneas de '-', una forma rápida y poco pensada seria esa:

var
n: Integer;
sLine: String;

begin
sLine:='';
for n:=0 to 10 do // en lugar de 10 pon los q quieras!
sLine:=sLine + '-';
ListBox.Items.Add(sLine);

Lo demás, ya no lo veo tan "rápido" y directo de explicar, es ya cosa de la imaginación de cada uno...

Saludos.

jakuna
26-08-2007, 00:42:33
Tienes razon xEsk creo q mejor implemento la clase y la adjunto para q me puedan ayudar...

Gracias por lo del format y lo de los '-', no quiero sonar espeso pero lo q no queria usar era un numero al azar como el 10 y estoy pensando en algo con el ancho del listbox una function q me devuelva el ancho del listbox y luego aplicar lo q me sugieres

xEsk
26-08-2007, 01:07:36
Quizás te parecerá chorra mi solución, pero visualmente es efectiva! xDD Y es poner casi tantos '-' según el width del ListBox...

Con un ejemplo se entiende mejor:// función para crear la línea de texto
function StringLine(const LineChar: Char; const Len: Integer): String;
var
n: Integer;

begin
Result:='';
for n:=1 to Len do Result:=Result + LineChar;
end;

Usando la función y el "truco":// usando la función para crear una línea de '-'
ListBox1.Items.Add(StringLine('-', ListBox1.Width div 4));

Por qué divido por 4? La respuesta es porqué los guiones (-) tienen una anchura superior a 1 píxel, así pues no necesito tantos guiones para cubrir la anchura del ListBox. Eso sí, si cambias el ancho del ListBox en tiempo de ejecución, se jodió el invento!! xD.

Sé que quizás la solución que te he propuesto, es realmente estúpida y quizás mala, pero es la primera que se me ha ocurrido en 1 minuto xD Si se me ocurre algo mas profesional, te lo comento...!! :o

Saludos.

jakuna
26-08-2007, 01:42:20
xEsk me parece muy buena solucion yo la estaba viendo con el ancho tb pero no sabia cuantos guiones entraban en ese espacio y bien con el dato no sabia q los guiones tenian mas de un pixel.
Gracias