![]() |
punteros en delphi
como realizar en delphi con punteros el avesedario es para ya porfa :)
|
karen08,
Bienvenido/a a ClubDelphi. Como recién te ingresas, te recomiendo una lectura a la guia de estilo. Sobre todo considerando el hecho de que pides una "tarea" de mala manera. Aqui no hacemos las cosas con urgencia. Espero que sepas entender que aqui ayudamos desinteresadamente y empleamos el tiempo libre que dispongamos para ofrecer dicha ayuda. Con respecto a tu pregunta, ¿Podrías detallar y profundizar más tu pregunta? No te cobramos por la cantidad de palabras. No logro entender y captar tu problema. Saludos, |
punteros en delphi
hola
disculpa por lo anterior.... solo que necesito saber como resover un ejercicio en delphi utilizando punteros, este consiste en que el programa debe mostrar el abesedario completo en una lista en un lis box |
karen08,
No es por malo... ¿Puedes indicar si lo que deseas es emplear una lista (estructura de datos abstracta) para mostrar el abecedario o por el contrario deseas mostrar en un ListBox? O en un tercer caso... ¿tienes una lista (la estructura de datos) y deseas mostrar dicha lista en un ListBox? Como te dije, no te cobramos por las palabras. Cuanto más nos puedas decir mejor y es para ti y más fácil para nosotros tratar de encontrar una solución a los problemas. Si tienes hecho ya un código sería bueno que lo expongas. Para que el código sea entendible, al copiarlo aquí encierralo entre las etiquetas DELPHI. Algo así: [ DELPHI ] (sin los espacios) aqui viene tu código... [ /DELPHI ] (sin los espacios) Si encuentro un moderador le pido que mueva este hilo a Varios que es el lugar indicado en donde tratar el tema. ¿Te parece? Saludos, |
punteros en delphi
Cita:
if primernodo^.letras> nuevonodo^.letras then begin nuevo^.putsig(primernodo) primernodo:=nuevonodo; |
karen08, ese código no basta para saber donde tienes el problema. Debes proporcionar mayor información.
Se que cada uno tiene sus tiempos y sus prisas, pero con prisas y exponer menos que lo mínimo para poder ver tu problema no solucionas nada. Se más consciente por favor y permite a los demás que te ayudemos. Da a conocer tu código con mayor claridad, con esas líneas poco puedo decirte. Te lo pido de la mejor manera posible, ayudanos a ayudarte. Sin ver más no puedo saber donde está el problema. Saludos, |
punteros en delphi
:confused:hola
saludos la presente es para pedir una ayuda para resolver un problema que anteriormente habia anunciado en el club. :(el problema consiste en diseñar e implementar una clase que permita crear una lista simple ordenada ascendentemente; y cada nodo debe almacenar una letra del alfabeto. unit Uplista; interface type TPclase=^TClistletras; TClistletras=OBJECT letras:string; sig:TPclase; procedure putletras(_letras:string); procedure putsig(_sig:tpclase); function getletras:string; function getsig:tpclase; constructor init; destructor liberar; procedure insertar(otronodo:tpclase); end; var primernodo,anteriornodo,nuevonodo:tpclase; implementation uses Unit1; { TClistnum } function TClistletras.getletras: string; begin Result:=letras; end; function TClistletras.getsig: tpclase; begin Result:=sig; end; constructor TClistletras.init; begin New(nuevonodo); end; procedure TClistletras.insertar(otronodo: tpclase); begin IF primernodo = NIL THEN begin primernodo:= otronodo; anteriornodo:= otronodo; anteriornodo^.sig:= nil; End else Begin anteriornodo^.sig:=otronodo; anteriornodo:= otronodo; anteriornodo^.sig:= nil; End; while primernodo <> nil do if primernodo ^.letras > nuevonodo ^.letras then begin nuevonodo ^.putsig(primernodo); primernodo:=nuevonodo; end; end; destructor TClistletras.liberar; begin dispose(nuevonodo); end; procedure TClistletras.putletras(_letras: string); begin letras:= _letras; end; procedure TClistletras.putsig(_sig: tpclase); begin sig:= _sig; end; end. |
karen08,
Mil disculpas. Me he enredado con otros asuntos y se me olvidó de esto. Estuve buscando entre mis apuntes de lenguaje aquellos ejercicios de punteros pues creía recordar que hice uno así... pero no los encontré. Quedaron en en Limbo del viejo disco duro... No recuerdo mucho de pilas, colas y listas con punteros... por lo que no lo tengo demasiado fresco. Se que es algo simple, es cuestión de que haga memoria... y si me das hasta mañana te puedo adelantar algo como para que veas. No quiero hacerte alegrar demasiado. Por lo que veo a simple vista hay unos errores: La declaración correcta para conformar los nodos es así:
En tu código estás mezclando objetos con la declaración de los nodos. ¿Debes crear una clase que implemente dichos procedimientos y que use internamente a la lista de nodos? Si es así, la declaración de la clase es:
Según mi percepción Lo que se debe hacer es que si se necesita armar el abecedario sólo basta con emplear Agregar() que lo que hace es insertar al final de la lista el siguiente nodo con la info necesaria, y la función GetLetra que se encargaría de regresar la letra que se encuentre en la posición Posic (siempre y cuando existan una cantidad de nodos al menos igual a Posic) De hecho... (según entiendo yo) para el uso de la clase no tendría sentido la función Agregar. Sino más bien que en Create tranquilamente se puede conseguir armar el abecedario en forma "automática". Ya que disponder de un Agregar() puede llevarnos a algo como esto: ABDFTRUV y como bien sabemos... esto no es el abecedario. Es decir que lo que yo haría es mover la declaración Agregar en private y llamarla dentro de Create. Algo así:
Y bueno... también debería disponer de un Eliminar, de modo que en Destroy podríamos hacer algo así:
Obviamente Eliminar debería hacerlo desde el final o el principio (según como te resulte más cómodo). Espero que te resulte útil estos tips. Como dije... dame un tiempito y te doy una muestra sencilla. Saludos, |
Bueno. Lo prometido es deuda.
me tomé unos minutos y desarrollé un ejemplo implementando una estructura LIFO. Es decir una Cola. Lo que hice es implementar una classe TABC que viene con el código encapsulado para agregar, borrar, inicializar, etc.. ¿Porqué una clase? Pues a mi me da la impresión de que quieres intentar hacer una clase por lo de:
Me he acostumbrado a codificar en Inglés o pseudoInglés... espero que no te moleste. Agregué los comentarios que me parecieron indicados exponer. Bueno. La unidad es como sigue:
Un ejemplo de uso, cargando un ListBox:
Creería que con eso puedes darte una idea de como implementarlo con otras estructuras, por ejemplo FIFO. Si tienes dudas, avisa. Saludos, PD: Si algún moderador pasa por aquí, que mueva a este hilo a la sección adecuada ya que el tema no correspondería al subforo Internet. |
componentes en delphi
hola
muchas gracias por lo del ejercicio del alfabeto me fue de mucha ayuda. pero esta vez estoy necesitando de nuevo su ayuda necesito un ejercicio cual sea que contenga varios componentes de la barra standard o la aditional de delphi pero.. el ejercicio debe ser lo mas sencillo posible lo menos codigo posible pero que sea algo educativo. si esta a su alcance hacerme ese favor se lo voy a agradecer siempre igual que el anterior. pueder ser que sume numeros lo que sea pero utilizando varios componentes de las barras de delphi chaito y de nuevo gracias saludos:) |
Me siento usado
Cita:
No es que esté enojado pero prefiero hacerte llamar por segunda vez que leas la guia de estilo. Lo siento, esta vez no te voy a preparar un ejemplo. Aquel código que te expuse lo hice sólo con el fin de guia, y tu debías adaptarlo a tu entendimiento sobre el tema. Tal parece, y asi lo intuyo, que sólo te limitaste a usarla. Ya te lo he pedido la otra vez: Explica mejor el problema. Da la mayor cantidad de detalles. Se bien descriptiva con la consigna y copia aquí el código que llevas hecho. Esta vez serás tú quien logre resolverlo. Aquí estaré para ayudarte en algunos detalles técnicos más no para armar un ejemplo. No estoy de malas, pero eres tu quien debe aprender a programar. Tu vienes a consultarnos y deberías ser tu quien ponga de su esfuerzo para conseguir la enseñanza y el aprendizaje. Para mi lo otro fue un repazo, ya pasé por eso. Tienes en tus manos la ayuda de Delphi. Si desconoces lo que hacen los componentes tan sólo debes seleccionarlo, presionar F1 y accederás a la ayuda descriptiva de cada uno. Ante mayores dudas, aqui pueden ser discutidas. Pero primero, como ya he dicho y espero que haya quedado en claro, aqui no te vamos a hacer la tarea. Lamento decirtelo así, busqué las palabras menos ofensivas posibles. Espero que sepas entender que aqui nadie nos paga por venir y ayudar a los demás. Lo hacemos altruistamente y en el tiempo libre que dispongamos. Saludos, |
sonidos con delphi
hola
entendi muy bien el mensaje de la otra vez, y es cierto ustedes solo son una ayuda, disculpa de todas formas por haber sido asi. hoy le quiero contar que estoy trabajando un programita muy sencillo con un combobox que desapliega una lista de numeros del 1 al 10 y los muestra al frente con un label pero, me encantaria meterle algo de sonido y no se que componente usar ni como usarlo y no se si usted me podria ayudar explicando me esto, abajo le envio el codigo que tengo. mi idea es que cuando se escoja el numero salga la voz que yo grabaria diciendo el numero. le agradesco escribirme en español si no es mucha molestia saludos:) [ Unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; ComboBox1: TComboBox; Button1: TButton; procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ComboBox1Change(Sender: TObject); begin case combobox1.ItemIndex of 0:label1.Caption:= 'ONE'; 1:label1.Caption:= 'TWO'; 2:label1.Caption:= 'THREE'; 3:label1.Caption:= 'FOUR'; 4:label1.Caption:= 'FIVE'; 5:label1.Caption:= 'SEX'; 6:label1.Caption:= 'SEVEN'; 7:label1.Caption:= 'EIGHT'; 8:label1.Caption:= 'NINE'; 9:label1.Caption:= 'TEN'; END; end; procedure TForm1.Button1Click(Sender: TObject); begin CLOSE; end; end. ] |
Hola, karen08, te recomiendo que leas la guía de estilo. Para una nueva duda debes crear un nuevo hilo en el lugar adecuado.
Para hacer lo que necesitas puedes usar el componente TMediaPlayer de la pestaña 'System'. Un saúdo. |
Hola Karen08, me alegro de que hayas entendido mis palabras y no haya malentendidos.
Con respecto a tu problema lo puedes solucionar con el TMediaPlayer, un componente de la paleta System. Dicho componente tiene una propiedad FileName, allí le ingresas el Path completo del archivo audio, luego cuando desees reproducir el archivo debes llamar a Open y seguidamente a Play. Puedes consulta el buscador de los foros porque el tema fue tratado. Por cierto: si no te gusta la apariencia del TMediaPlayer, lo ocultas poniendo visible a False. Ya que estoy por aqui, y no por ser cortante. Como tus dudas vienen a ser der otra temática, lo correcto sería que hubieras abierto otro hilo. Esto está expresado en la guia de estilo, pero no hay problema... te estás adaptando. Saludos, |
sonidos con delphi
hola
disculpa pero mi interogante es como se programa ese componente porque para mi es desconocido, nunca lo habia usado que pena solo necesito una pequeña esxplicacion y yo estoy segura que lo hago. saludos:confused: |
Karen08,
Arrastra el componente, y el evento onChange del Combo, debes hacer algo como esto:
Obviamente no debes sustituir tu código anterior. Sino que debes adapta al código que te muestro de la forma que mantenga la coherencia con el tuyo. Por ejemplo, dentro del case:
No tiene demasiada ciencia el TMediaPlayer. Si tienes más dudas, haz una búsqueda que en reiteradas ocasiones se ha preguntado sobre el componente. Saludos, |
sonidos con delphi
hola
tambien me digeron que utizara el procedimiento beep que sabe usten de eso, como lo utilizaria para poner el sonido a cada numero cuando sea seleccionado. ahh la ubicacion de de la cancion que voy mostrar con media player es por ejemplo SI LA TENGO EN DISCO D o en mis documentos. saludos.:) |
Cita:
Beep no se ajusta a lo que buscas. Este procedimento se limita a emitir un sonido como los de advertencia. Por otro lado, ¿que has querido decir con el hecho de que si tienes el archivo de audio en Disco D, o en mis documentos? La Path completa está constituída por el directorio donde está el archivo más el nombre y la extensión de dicho archivo. Por ejemplo: Código:
C:\BLA\BLA\unarchivo.mp3Saludos, |
sonidos con delphi
hola
tengo lo siguiente pero, unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer; type TForm1 = class(TForm) Label1: TLabel; ComboBox1: TComboBox; Button1: TButton; MediaPlayer1: TMediaPlayer; procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ComboBox1Change(Sender: TObject); begin MediaPlayer1.FileName := 'D:\bajados\date la vuelta.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; case combobox1.ItemIndex of 0: begin Label1.Caption := ' '; MediaPlayer1.FileName := 'D:\bajados\one.mp3'; end; 0:label1.Caption:= 'ONE'; 1:label1.Caption:= 'TWO'; 2:label1.Caption:= 'THREE'; 3:label1.Caption:= 'FOUR'; 4:label1.Caption:= 'FIVE'; 5:label1.Caption:= 'SEX'; 6:label1.Caption:= 'SEVEN'; 7:label1.Caption:= 'EIGHT'; 8:label1.Caption:= 'NINE'; 9:label1.Caption:= 'TEN'; END; end; procedure TForm1.Button1Click(Sender: TObject); begin CLOSE; end; end. lo deseado es que para cada numero me salga una musica si me entiendes, yasi saldra un solo sonido para todos. la idea es que cuando yo seleccione del combobox el numero el muestre el nombre en el label1 que esta en blanco y salga el sonido one, cuando coja el 1, two cuando coja el 2 y asi.............................. que me sugieres saludos:confused: |
Karen08,
Por favor emplea las etiquetas [delphi] y [/delphi] Para que el código delphi quede resaltado y se entienda mejor. Con respecto al problema se soluciona dentro del mismo case. La estructura debe repetirse para cada valor, tu sólo lo haz hecho para el UNO.
Saludos, |
Eso que preguntas te lo respondió Delphius en uno de los post anteriores. Te recomiendo el uso de las etiquetas para hacer el código más entendible.
Un saúdo. |
sonidos con delphi
hola
como hago para que los sonidos salgan automaticos solamente al escoger la opcion en el combobox y ademas que archivo colocaria en el procedimiento anterior si ya he asignado cada archivo de sonido en el case de cada uno. |
sonidos con delphi
hola
Código Delphi [-] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer; type TForm1 = class(TForm) Label1: TLabel; ComboBox1: TComboBox; Button1: TButton; MediaPlayer1: TMediaPlayer; procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ComboBox1Change(Sender: TObject); begin MediaPlayer1.FileName := 'D:\bajados\sonidos\'; MediaPlayer1.Open; MediaPlayer1.Play; end; case combobox1.ItemIndex of 0: begin Label1.Caption := 'ONE'; MediaPlayer1.FileName := 'D:\bajados\one.mp3'; end; 1: begin Label1.Caption := 'TWO'; MediaPlayer1.FileName := 'D:\bajados\two.mp3'; end; 2: begin Label1.Caption := 'THREE'; MediaPlayer1.FileName := 'D:\bajados\three.mp3'; end; 3: begin Label1.Caption := 'FOUR'; MediaPlayer1.FileName := 'D:\bajados\four.mp3'; end; 4: begin Label1.Caption := 'FIVE'; MediaPlayer1.FileName := 'D:\bajados\five.mp3'; end; 5: begin Label1.Caption := 'SIX'; MediaPlayer1.FileName := 'D:\bajados\six.mp3'; end; 6: begin Label1.Caption := 'SEVEN'; MediaPlayer1.FileName := 'D:\bajados\seven.mp3'; end; 7: begin Label1.Caption := 'EIGHT'; MediaPlayer1.FileName := 'D:\bajados\eight.mp3'; end; 8: begin Label1.Caption := 'NINE'; MediaPlayer1.FileName := 'D:\bajados\nine.mp3'; end; 9: begin Label1.Caption := 'TEN'; MediaPlayer1.FileName := 'D:\bajados\ten.mp3'; end; end; // fin case MediaPlayer1.Open; MediaPlayer1.Play; 0:label1.Caption:= 'ONE'; 1:label1.Caption:= 'TWO'; 2:label1.Caption:= 'THREE'; 3:label1.Caption:= 'FOUR'; 4:label1.Caption:= 'FIVE'; 5:label1.Caption:= 'SEX'; 6:label1.Caption:= 'SEVEN'; 7:label1.Caption:= 'EIGHT'; 8:label1.Caption:= 'NINE'; 9:label1.Caption:= 'TEN'; END; end; procedure TForm1.Button1Click(Sender: TObject); begin CLOSE; end; end. Código Delphi [-] procedure TForm1.ComboBox1Change(Sender: TObject); begin MediaPlayer1.FileName := 'D:\bajados\sonidos\----------.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; como hago para que los sonidos salgan automaticos solamente al escoger la opcion en el combobox y ademas que archivo colocaria en el procedimiento anterior si ya he asignado cada archivo de sonido en el case de cada uno.:) |
Cita:
Un saúdo |
Karen08,
¿Eso te compila?:confused: Yo le veo un par de errores. Lo que tu deseas realizar debe ir todo en el evento onChange. Así:
No es por malo, pero deberías prestar mayor atención a la lógica de tu aplicativo. Compara tu código con este. Lo que está en comentarios o es porque está de más o es para hacer algunas notas aclaratorias. Los códigos que te vinimos proporcionando debías ajustarlo a tus necesidades, tal parece que el error se debió a que viniste copiando y pegado y haciendo pruebas... No está mal, asi se aprende. Así aprendí yo. Recuerda que preferimos dar TIPs antes de ofrecer una solución, al menos yo, considero que de esta manera se invita al que inició el hilo a pensar y fomentar el arte de la lógica, y por consiguiente comprende por si mismo donde está su error. Espero que no te moleste. Saludos, |
| La franja horaria es GMT +2. Ahora son las 01:21:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi