Cita:
Empezado por kbaby
Bueno, yo he leido los dos post y pienso que entiendes como si yo no hiciera eso. Claro que lo hago, pero llega un momento que lo que yo he aprendido me pone una barrera que no me deja acceder a otras cosas. Yo solo puedo hacer cosas limitadas. Eso sí, nos dejaron indagar en libros, internet, foros, para aprender cosas nuevas e implantarlas en el proyecto final. Por eso estoy aquí, preguntando cosas de las que NUNCA he odio hablar.
|
kbaby, en ningún momento te he dicho que seas flojo. Sino que estás un poco impaciente. Lo mejor es hacer las cosas a su ritmo.
Con respecto a lo que te había comentado antes, si te lo digo es porque al intentar explicarte el uso de inc() tu mismo dijiste que no puedes poner nada que no haya sido visto.
Y si no puedo estar seguro de que has visto o no haz visto... ¿de que modo te puedo ser de ayuda?
Ahora, si estás aqui con la finalidad de ver cosas nuevas y mejorar el código. Entonces, aquel comentario que mi hiciste sobre de que no puedes poner nada visto está de más y tus preguntas debieron hacerse de otro modo para que nosotros si te pudieramos ofrecer alternativas.
Por el modo en que redactabas tus dudas se vee reflejado el deseo de "apagar un incendio" y no de ver buscar alternativas.
Si para el trabajo final puedes poner otras cosas y sustituir algunos códigos te sugeriría que te evitaras ese código para abrir y guardar en el archivo.
Es mucho más cómodo el método LoadFromFile y SaveToFile del cual disponen tanto el TStringGrid como como el TListBox y te aseguras de que lo está "escrito" en pantalla se guardará.
También podría ser útil el uso de funciones y procedimientos.
Mucho código del cual empleas puede concentrarse en unas pocas funciones y/o procedimientos y con ello evitar repitir código.
En ocasiones tener un:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var Indice: integer;
begin
Indice:= BuscarPaciente(Edit1.Text; BUSCAR_POR_DNI);
if Indice <> -1
then ...
else MessageBox(....)
end;
Es mucho más conveniente que estar implementando en varios controles el mismo o similar código. En este ejemplo, BuscarPaciente es una función que recibe en el primer parámetro el texto a buscar, el segundo parámetro es una constante definida y sirve para establecer el criterio de búsqueda.
Si Se diseña un algoritmo que busque por cualquier criterio, puede usarse en distintas partes y sin ningún cambio, sólo basta con suministrar el criterio adecuado.
El algoritmo que te yo te di como ejemplo puede fácilmente ser adaptado a esta necesidad con unos pocos cambios.
[quote=kbaby;290150]
Con respecto a la estetica... fue un programa que hice en 10 o 15 minutos rapidamente para que veas como lo tengo organizado en el aula de informatica... pero allí uso 3 formularios, imagenes, paneles.... En mi casa lo que hago es pensar en un codigo para luego, ponerlo allí, pues solo tengo 1 hora de informatica y alli no puedo pensarlo. En mi casa lo pienso y lo pruebo y me lo apunto en mi libreta de delphi.
[/delphi]
El comentario que te hice sobre estética no fue con la intención de atacar. Sino un comentario que debe ser tomado con ligereza. Si lees bien, he dicho: "pero ese no es el problema".
Y no lo es porque yo pongo atención a la lógica y no a la pantalla... Yo dejo la interfaz para el último, y si tengo que ir haciendola, la hago burdamente.
Sólo lo hice para recordarte de que al final debes mejorarla.
El problema de la gran mayoría de los sistemas es de lógica y no de interfaz. Por eso a mi poco me importa como se vea... fue un simple recordatorio para cuando termines.
Cita:
Empezado por kbaby
Yo pienso que hago todo lo posible por aprender, no he llegado al extremo de imaginarme esas cosas que me dijiste el final, pero si a dibujarlo e intentar solucionar las cosas "dificiles" con procedimientos faciles...
|
Ninguno nace aprendiendo.
Yo no me creo genio, ni un experto. Esta profesión, como cualquier otra requiere de
constancia. Y las cosas no salen de un día a otro.
De hecho, hay un algoritmo que yo todavía lo tengo trabado (pero gracias a Dios, no es vital) y el compañero Seoane me lo dió vueltas en una patada.
Hay cosas que nos salen, otras que no.
Y con el tiempo comprenderás que lo que cuesta ahora en un futuro lo verás como (perdón por la palabra) una estupidez.
Yo te he recalcado algo: analizalo en frio.
Y es así porque he notado que en el momento en que posteabas te quedabas esperando a que posteara. Y ni bien yo posteaba no pasaban muchos minutos y ya había un post tuyo diciendo que tenías problemas para entender mis propuestas.
Algunas veces las soluciones no se hallan en minutos ni en días. Aprenderás esta lección cuando estés estudiando en la universidad y/o salgas a la calle.
No desesperes, porque es lo último que debes perder.
Cita:
Empezado por kbaby
Lo de "t" a la <rejilla> y lo de l al <listbox> tienen ese nombre porque así me enseño mi profesor. Nos dijo que para ser mas rapidos, usaramos variables cortas y facil de recordar... en ningun momento lo eleji yo.
|
Es cierto lo que te comenta el profesor. Es preferible variables cortas. ¿Pero una sola letra?
kbaby, los extremos son peligrosos: Muchas son muchas, pocas son pocas.
¿Te gusta leer esto?:
Código Delphi
[-]ComboQueTieneLosHorariosDeLosPacientes.ItemIndex := 5;
¿Y esto otro?:
En el primero tenemos un caso en que hay demasiado información. En el segundo en el que hay poca.
Mientras que el primer caso se sobre entiende que se trata de un Combo, en el segundo, No sabemos que es a, y el porqué existe lo que pareciera ser una Propiedad llamada Expr que vaya a saber que hace.
Lamento decirlo pero tu profesor tiene razón parcialmente.
Cita:
Empezado por kbaby
Hoy estuve en informatica, ya me queda muy poco por acabar. Os cuento de lo que hace mi proyecto ^^
- Añade a personas (al listbox)
- Las borra (la que tu quieras)
- Las modifica (aunque al modificar una, se borra todas del .txt).
- Puedes bucar a personas por DNI, apellidos, telefono (gracias Delphius).
- Puedes ver el estado del hotel (% de habitaciones ocupado, gente dentro...)
- Mi super boton close; (para salir :P)
¿Qué me queda?
- Arreglar lo de modificar a las personas y que se guarde.
- Poder buscar y ver en el StrinGrid1 (lo dije bien ehh) todas las personas que sus apellidos sean MARTINEZ LOPEZ y no solo, la primera.
|
Me alegra saber que te queda poco.
Creo que te he dado buenas pistas. ¿Las repasamos desde tu punto de vista como la entiendes? Yo entiendo el problema... hace falta que aquí comprendamos tu visión de la propuesta.
Te propongo que redactes lo que entiendes de mi propuesta.
Para el caso de la búsqueda de todos los pacientes con determinado apellido, el algoritmo que tienes en volcar te debe ser de orientación.
De hecho haste esta pregunta ¿Que diferencia existe entre volcar toda la información de un TListBox de volcar sólo la que coincide con cierto criterio?
Una pista más:
Por "cada item" hacer:
1. ¿Es igual a criterio?.
1.1. SI: entonces agreamos sus datos a la rejilla
1.2. NO: entonces no hacemos nada.
Lo de guardar los datos es la inversa de volcar. Pasar lo que haya en el TStringGrid hacia el TListBox. He aquí que para hacerlo debemos contemplar una situación que ya he explicado y me gustaría "oir" que es lo que entiendes y no entiendes de mi propuesta. ¿Cómo te lo estabas imaginando?
Cita:
Empezado por kbaby
Espero que no pienses que soy un vago que lo quiere todo hecho. Me he leido la caraocultadedelphi, el libro que me compre en la feria del libro por 1€ (si ese), he consultado en personas que saben (sin encontrar ayuda por parte de ellas), he venido al foro y entré, desde el primer miomento que di programacion. Yo tengo aun la idea en mi mente de poder ser informatico, alomejor programando no valgo (cosa que no me preocupa, intentare conseguir la meta) pero dentro de la informatica hay muchisimos campos.
Gracias.
|
No pienso que eres vago, sino que estás apresurado. Y ello ye hace no ver las cosas del mejor modo.
Es bueno que leas libros, son de ayuda. Pero en los libros es posible que no encuentres la receta para preparar el algoritmo para buscar más de un paciente. Esto, lamentablemente, se aprende por ensayo y error.
Yo me vivo dando golpes con código kbaby... por algo he dicho y sigo sosteniendo: es una actividad mental, muy humana. Y al ser humanos, nos vemos movidos por miles de cosas.
Me alegro que sientas la convicción y ganas de estudiar sobre informática.
No digo que seas mal programador. Nunca he dicho eso...
Sólo te digo estas cosas para que te prepares, mentalmente, para cuando tengas dificultades.
No es agradable darse golpes... hay que aprender a vivir con ellos. Y no sólo en la vida profesional, sino en lo personal, en lo anímico, en lo sentimental, en lo existencial.
Muy cierto que la informática es amplia, y como te había comentado por MP: debes informarte y asesorarte bien sobre que del amplio abanico de posibilidades deseas enfocarte.
Yo no prefiero darte código kbaby... y me parece que es la decisión adecuada. Porque es necesario que logres ver donde está el problema... el porque te cuesta hallar el paso inverso (StringGrid a TListBox). Creeme que es lo mejor para ti, porque no sólo te sentirás mejor por encontrar tu mismo hecho el algoritmo sino porque comprenderás al problema y lograrás formular una solución.
Y creeme que te digo que la solución está en tus narices. Cuando la encuentres dirás, posiblemente algo como esto: "Pero que g... que soy. Si había sido una tontera".
¿Que diferencia a un TListBox de un TStringGrid?
Pues yo veo a un TStringGrid como una varios TListBox horizontales, uno debajo del otro.
ListBox1: [0][1][2][3][4]
ListBox2: [0][1][2][3][4]
....
ListBoxN: [0][1][2][3][4]
Puede que eso te sirva de ayuda.
Cita:
Empezado por kbaby
PD: Lo de apellidos compuesto ya se porque me tiro error, por el error de "dedo".
Gracias
|
No hay de que agradecer.
Puede que esa metida de dedo sea por impaciencia...
Hazme caso... redacta la comprensión que tienes de mis propuestas y vemos ¿Si?
No te sientas atacado. Si asi te has sentido, lo lamento, disculpa.
Lo que quiero es hacerte ver que esto es mucho más mental que lo que algunos piensan.
Y si deseas irte por las ingenierías, con más razón. Yo diría que repases por las dudas un poco de matemática, física y química. ¿Porqué crees que en los primeros años de la carrera verás más números que a la PC? ¿Sólo para hacer a las carreras más duras? ¿Porque son relleno? Cada materia tiene su propósito, no sólo forma parte de la cultura general.
kbaby, te deseo que tengas triunfos en la carrera. No cometas el mismo error que yo: no desesperes por unas cuantas LDC (lineas de código).
Saludos,